Cacti — open-source веб-приложение, система позволяет строить графики при помощи RRDtool. Cacti собирает статистические данные за определённые временные интервалы и позволяет отобразить их в графическом виде. Преимущественно используются стандартные шаблоны для отображения статистики по загрузке процессора, выделению оперативной памяти, количеству запущенных процессов, использованию входящего/исходящего трафика.
Установка
#apt-get install cacti
Пароль root от базы MySql
Пользовательский пароль для доступа Cacti к базе данных
Выбор веб-сервера
После установки надо завершить настройку для этого в браузере прейдите по адресу http://192.16.1.1/cacti - где 192.16.1.1 это айпи сервера где установлен Cacti
Как только нажмете на кнопку "Finish" Вы должны быть перенаправлены на главную страницу Cacti.
Создание устройства
Перейдите по ссылке в консоли Cacti "Management>Device>Add"
Devices >General Host Options> Description = Описание
Devices >General Host Options> Hostname = айпи адрес или доменное имя
Devices >General Host Options> Host Template = шаблон для определения шаблонов графиков и запросов данных
Devices >SNMP Options>SNMP Version = версия snmp
Devices > SNMP Options>SNMP Community = сообщество
Теперь cacti настроен.
Получение даннх S.M.A.R.T. через snmp
Для мониторинга S.M.A.R.T. нужно создать запрос для получения индексированных данных из SNMP для Cacti и поместить его в файл /usr/share/cacti/resource/snmp_queries /smartdrive.xml.
в этой статье http://andy.od.ua/news_49.html написано как настроить snmp для отдачи S.M.A.R.T.
Прежде чем создать запрос надо узнать OID'ы тех значений которые нам нужны.
С начало запрос с MIB для сравнения:
#snmpwalk -c ServerRO -v 2c localhost NET-SNMP-EXTEND-MIB::nsExtendObjects NET-SNMP-EXTEND-MIB::nsExtendNumEntries.0 = INTEGER: 7 NET-SNMP-EXTEND-MIB::nsExtendCommand."model" = STRING: /etc/snmp/attrsmart.sh NET-SNMP-EXTEND-MIB::nsExtendCommand."device" = STRING: /etc/snmp/attrsmart.sh ..... NET-SNMP-EXTEND-MIB::nsExtendOutLine."device".1 = STRING: sda NET-SNMP-EXTEND-MIB::nsExtendOutLine."device".2 = STRING: sdb NET-SNMP-EXTEND-MIB::nsExtendOutLine."seekerrorrate".1 = STRING: 0 NET-SNMP-EXTEND-MIB::nsExtendOutLine."seekerrorrate".2 = STRING: 713406629
и запрос c OID
#snmpwalk -c ServerRO -On -v 2c localhost NET-SNMP-EXTEND-MIB::nsExtendObjects .1.3.6.1.4.1.8072.1.3.2.1.0 = INTEGER: 6 .1.3.6.1.4.1.8072.1.3.2.2.1.2.5.109.111.100.101.108 = STRING: /etc/snmp/hddtemp.sh .1.3.6.1.4.1.8072.1.3.2.2.1.2.6.100.101.118.105.99.101 = STRING: /etc/snmp/hddtemp.sh .1.3.6.1.4.1.8072.1.3.2.2.1.2.11.116.101.109.112.101.114.97.116.117.114.101 = STRING: /etc/snmp/attrsmart.sh .1.3.6.1.4.1.8072.1.3.2.2.1.2.12.114.97.119.114.101.97.100.101.114.114.111.114 = STRING: /etc/snmp/attrsmart.sh ...... .1.3.6.1.4.1.8072.1.3.2.4.1.2.6.100.101.118.105.99.101.1 = STRING: sda .1.3.6.1.4.1.8072.1.3.2.4.1.2.6.100.101.118.105.99.101.2 = STRING: sdb .1.3.6.1.4.1.8072.1.3.2.4.1.2.13.115.101.101.107.101.114.114.111.114.114.97.116.101.1 = STRING: 0 .1.3.6.1.4.1.8072.1.3.2.4.1.2.13.115.101.101.107.101.114.114.111.114.114.97.116.101.2 = STRING: 713406629
Данные находятся в "NET-SNMP-EXTEND-MIB::nsExtendOutLine." далее это имя значения "seekerrorrate" и индекс ".1"
Для NET-SNMP-EXTEND-MIB::nsExtendOutLine."seekerrorrate".1
будет OID
.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.115.101.101.107.101.114.114.111.114.114.97.116.101.1
убираем индекс в конце ".1" и получаем нужный нам OID
.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.115.101.101.107.101.114.114.111.114.114.97.116.101
теперь можно составлять файл запроса.
Содержимое файла smartdrive.xml
<interface> <name>Get Monitored Smart</name> <oid_index>.1.3.6.1.4.1.8072.1.3.2.4.1.2.6.100.101.118.105.99.101</oid_index> <index_order>smDescriptions:smDevices</index_order> <index_order_type>numeric</index_order_type> <index_title_format>SMART#|chosen_order_field|</index_title_format> <fields> <smDevices> <name>Index</name> <method>walk</method> <source>value</source> <direction>input</direction> <oid>.1.3.6.1.4.1.8072.1.3.2.4.1.2.6.100.101.118.105.99.101</oid> </smDevices> <smDescriptions> <name>Description</name> <method>walk</method> <source>value</source> <direction>input</direction> <oid>.1.3.6.1.4.1.8072.1.3.2.4.1.2.5.109.111.100.101.108</oid> </smDescriptions> <smTemperature> <name>Temperature</name> <method>walk</method> <source>value</source> <direction>output</direction> <oid>.1.3.6.1.4.1.8072.1.3.2.4.1.2.11.116.101.109.112.101.114.97.116.117.114.101</oid> </smTemperature> <smRawReadErrorRate> <name>Raw_Read_Error_Rate</name> <method>walk</method> <source>value</source> <direction>output</direction> <oid>.1.3.6.1.4.1.8072.1.3.2.4.1.2.12.114.97.119.114.101.97.100.101.114.114.111.114</oid> </smRawReadErrorRate> <smSeekErrorRate> <name>Seek_Error_Rate</name> <method>walk</method> <source>value</source> <direction>output</direction> <oid>.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.115.101.101.107.101.114.114.111.114.114.97.116.101</oid> </smSeekErrorRate> <smReallocatedSectorCt> <name>Reallocated_Sector_Ct</name> <method>walk</method> <source>value</source> <direction>output</direction> <oid>.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.114.101.108.111.99.115.101.99.99.111.117.110.116</oid> </smReallocatedSectorCt> </fields> </interface>
Создание шаблона данных.
В консоли Cacti нажимаем на ссылку "Data Templates" и добавляем "Ссылка с права вверху Add " каждое поле (smTemperature, smRawReadErrorRate, smSeekErrorRate, smReallocatedSectorCt)
Data Source>Name = |host_description| - SMART Temp |query_smDescriptions| (Заголовок шаблона данных = "Название хоста" название параметра и описание ).
Data Source Item> Internal Data Source Name = smTemperature (параметр который будет отображен на графике).
точно так добавляются и все остальные параметры.
Создание шаблона графика.
Переходим по ссылке в консоли cacti "Graph Templates">"Add"
Graph Template>Title (--title) = Название которое будет использоваться на графике (|host_description| - SMART Temperature |query_smDescriptions|)
Добавление элементов на график.
После создание шаблона графика на него добавляем элементы значение которых будут получены в результате запроса и т.п.
Item # 1
Item # 2
Graph Item Inputs
Создание запроса данных.
Переходим по ссылке в консоли "Collection Methods> Data Queries" и добавляем " ссылка с права вверху Add" запрос данных.
Форма добавление
в XML Path указываем расположение файла с запросом /resource/snmp_queries/smartdrive.xml
В "Associated Graph Templates" ассоциируем с ранее созданными шаблонами графиков
Осталось создать график для устройства
Для этого надо добавить запрос данных S.M.A.R.T. к устройству в меню кликаем на "Management>Device" выбираем устройство из списка и добавляем запрос данных к устройству
Кликаем слева в меню на "Create>New Graphs" выбираем "Host" и выбираем диск и тип графика с нужным атрибутом S.M.A.R.T.
в результате получаем вот такой график