Привет. Начну с середины. Так как пока не описал как устанавливать и настраивать систему мониторинга cacti. Эта статья подразумевает, что вы уже имели дело с cacti и кое что умеете. Как то я захотел мониторить свои параметры, а не те, что заданы шаблонами SNMP. Наткнулся на хороший пример «мониторинг погоды Yandex«, но он мне не помог. В этом примере в крации раскрыта «Философия Cacti» помогает для пониманя происходящего. Попробовав и потерпев неудачу открыл Help Simplest Method of Going from Script to Graph и о чудо, мне открылась тайна вселенной. И так на примере мониторинга погоды Yandex, средствами cacti установленной на Windows server 2008, я покажу как всё просто. И так начну:
1. Источник погоды.
Для начала нужна(нужен) установленная и работающая cacti. Далее ищем источник погоды. Это будет Yandex серваер, отдающий погоду в XML.
http://export.yandex.ru/weather/?city=27612
Где: 27612 — москва.
Список городов можно получить здесь:
http://weather.yandex.ru/static/cities.xml
2. Скрипт получения погодя.
В качестве языка написания скрипт я выбрал Powershell. Вот собственно сам скрипт.
# получение погоды с яндекса
#################
#
# Получения XML с погодой от Yandex.ru
#
#################
function get-YandexXMLweather()
{
$apiUrl = ‘http://export.yandex.ru/weather/?city=27612’ # 27612 — москва
$client = new-object System.Net.WebClient
$client.Headers.Add(«Content-Type», «application/x-www-form-urlencoded»)
$client.Encoding = [System.Text.Encoding]::UTF8
$quote = $client.UploadString($apiUrl, ‘method=getQuote&format=xml’ )
Return $quote
}
#########SCRIPT BLOCK####################
CLS
#Запрос к Ya
[xml]$xml = get-YandexXMLweather
#Температура
[string]$t = $xml.weather.temperature
Write-host «YA-temperature:$t» -nonewline
#Давление
[string]$p = $xml.weather.pressure
Write-host » YA-pressure:$p» -nonewline
#Влажность
[string]$d = $xml.weather.dampness
Write-host » YA-dampness:$d» -nonewline
Скачать скрипт Get-YaWeather.ps1.
Есть нюанс. Если мы хотим из скрипта передать несколько значений, то нужно соблюсти формат вывода, иначе cacti не прочитает значения. Формат таков: Имя-переменной:значени. Пример:
YA-temperature:+15 YA-pressure:747 YA-dampness:53
Другой нюанс. Я не придумал как из cacti запускать Powershell скрипты и по этому написал батник который запускает POSH.
@ECHO OFF
powershell.exe -file c:\inetpub\cacti\scripts\win\Get-YaWeather.ps1
Третий нюанс. Нужно убедиться, что в системе разрешён запуск не подписаных POSH скриптов, запустив Get-ExecutePolicy, и проверить работу скрипта.
Скрипт Powershell отправляет запрос к Web серверу, получает ответ в виде XML. Далее явно задаём тип переменной [xml] и присваиваем ей полученное значение от get-YandexXMLweather. После плучаем соответствующее значение из XML.
3. Создание графика в cacti.
Логинемся 8). Открываем раздел «Data Input Methods» и создаём новый метод. см картинку ниже:
- Настройка Data Input Methods в cacti
Output Fields должны совпадать с именами переменных выводимых скриптом (раздел 2 статьи)
Далее идём в раздел «Data Sources» и создаём источники данных. см картинку ниже
Data Template Selection — оставляем оба поля none. Указываем имя Ya-template-source, выбераем input method. Я не стал выбирать ежеминутную запись, а начал с 5 минутной.
- Настройка cacti Data Source (на примере температуры)
И так же делаем с давлением(pressure)
Настройка cacti Data Source
и влажностью (dampness)
- Настройка cacti Data Source
Теперь пришло время создать график из источников данных которые только что создали.
Открываем «Graph Management». Graph Template Selection оставляем оба поля none. Далее по картинке:
Содаём пункты графика- Graph Items, значения которые будут выводится на график и коментарии к ним. Их параметрв видны на скриншоте.
Нюан здесь такой: Так как давление имеет на много большее значение чем температура и влажность, график получается не очень красивый. По этому я создал отдельный график только с температурой.
4 Добавление графика в просмотр
Идём в «Graph Trees» там можно создать отдельный раздел для своего не типичного графика(там всё интуитивно просто). После того как выбрали нужный раздел жмём Add. Вот и всё.
По мотивам «Настройка cacti» О cacti