Cacti + lm_sensors + SNMP addon for speedfan в CentOS 6

1. Ставим кактус.  В силу природной лени, мы не будем собирать пакет самостоятельно, а просто подключим репозиторий epel и поставим его оттуда:

rpm -iUhv http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
yum install cacti

Конфигурим:

в php.ini:

safe_mode=Off
safe_mode_gid=Off

Создаём базу данных, пользователя, таблицы:

mysql -u root -p
 mysql>create database cacti;
 mysql>grant all privileges on cacti.* to cacti@localhost identified by 'blablabla';
 mysql>flush privileges;
 mysql>exit
mysql -u cacti -p cacti</usr/share/doc/cacti-0.8.7g/cacti.sql

Раскомментируем в /etc/cron.d/cacti поллер. В /etc/cacti/db.php пропишем пользователя mysql и пароль для доступа к базе данных. Ну и в конфиге апача указываем с какого адреса нам можно к нему подключаться. Логинимся, и вперёд, к победе чего-то там…

Ах, да – возможно, ещё надо будет сказать:
yum install net-snmp-utils rrdtool patch rrdtool-php
yum install php-pdo php-odbc php-mysql php-mcrypt php-mhash php-gd php-mbstring php-pear php-pear-MDB2 php-adodb php-pear-MDB2-Driver-mysql php-pear-File php-pear-DB php-pear-Net-URL php-pear-Date php-ldap

2. Предполагаю, что у вас уже есть настроенный и работающий lm_sensors. Его конфигурация дело совершенно творческое и описывать процесс полностью я не буду. Каждая новая материнка, это русская рулетка – найдёт, не найдёт, покажет правильные данные или полный бред. Потому, предполагаю, что с этим шагом вы справились самостоятельно. 🙂
Для отображения данных из lm_sensors воспользуемся плагином для SpeedFan, вернее не самим плагином, а шаблонами для кактуса, используемыми плагином OID snmp и самодельным скриптом для snmpd.
Итак, SNMP.
В конфиг демона /etc/snmp/snmpd.conf добавляем строчку:
pass .1.3.6.1.4.1.30503.1 /bin/sh /usr/local/bin/sensors_snmp

В этой ветке snmp отдаёт свои данные SpeedFan SNMP Extension. Чтобы не изобретать велосипед, переписывать теплэйты для кактуса воспользуемся той же таблицей:

OID Description
.1.3.6.1.4.1.30503.1.1.1 Temperature count
.1.3.6.1.4.1.30503.1.1.2 Fan speed count
.1.3.6.1.4.1.30503.1.1.3 Voltage count
.1.3.6.1.4.1.30503.1.2.x Temperatures
.1.3.6.1.4.1.30503.1.3.x Fan speeds
.1.3.6.1.4.1.30503.1.4.x Voltages

Качаем скрипт и кладём его по указанному маршруту. Перезапускаем демон snmpd.
Проверяем:

[root@blablbalba ~]# sensors
w83627thf-isa-0290
Adapter: ISA adapter
VCore: +0.64 V (min = +0.00 V, max = +1.92 V)
+12V: +12.04 V (min = +10.82 V, max = +13.19 V)
+3.3V: +3.38 V (min = +3.14 V, max = +3.47 V)
+5V: +4.99 V (min = +4.75 V, max = +5.25 V)
V5SB: +4.95 V (min = +4.76 V, max = +5.24 V)
PWR Fan: 2973 RPM (min = 2657 RPM, div = 2)
CPU Fan: 2556 RPM (min = 1997 RPM, div = 4)
M/B Temp: +43.0°C (high = -31.0°C, hyst = +65.0°C) sensor = thermistor
CPU Temp: +47.5°C (high = +80.0°C, hyst = +75.0°C) sensor = diode
beep_enable:enabled

[root@blablbalba ~]# snmpwalk -v 2c -c community 127.0.0.1 .1.3.6.1.4.1.30503.1
SNMPv2-SMI::enterprises.30503.1.1.1 = INTEGER: 2
SNMPv2-SMI::enterprises.30503.1.1.2 = INTEGER: 2
SNMPv2-SMI::enterprises.30503.1.1.3 = INTEGER: 5
SNMPv2-SMI::enterprises.30503.1.2.1 = INTEGER: 4300
SNMPv2-SMI::enterprises.30503.1.2.2 = INTEGER: 4650
SNMPv2-SMI::enterprises.30503.1.3.1 = INTEGER: 2973
SNMPv2-SMI::enterprises.30503.1.3.2 = INTEGER: 2576
SNMPv2-SMI::enterprises.30503.1.4.1 = INTEGER: 64
SNMPv2-SMI::enterprises.30503.1.4.2 = INTEGER: 1200
SNMPv2-SMI::enterprises.30503.1.4.3 = INTEGER: 330
SNMPv2-SMI::enterprises.30503.1.4.4 = INTEGER: 500
SNMPv2-SMI::enterprises.30503.1.4.5 = INTEGER: 495

Если в полученном выводе snmpwalk у нас данные похожи на вывод sensors – всё хоккей. Если нет – я тут ни при чём. 🙂
Ах да – скрипт отдаёт температуру и напряжение * 100.

3. Теперь, сам кактус. Можно скачать шаблоны с странички проекта, но там они написаны под предыдущую версию SpeedFan SNMP Extension и OID отличаются от используемых сейчас.  Потому – качаем отсюда уже исправленные. Содержимое папки templates импортируем через вэб-интерфейс, содержимое папки resources кладём в соотвествующую папку кактуса.

Вот, собственно, и всё. Теперь, в настройках хоста в cacti добавляем в “Associated Data Queries”  запросы с названием SpeedFan, создаём графики и любуемся получившейся хренью.

Отображение данных lm_sensors в cacti

 


P.S. Если данные по snmp в кактусе не отдаются, или отдаются не для всех графиков – попробуйте увеличить SNMP Timeout в параметрах хоста. На некоторых старых машинах я ставил до 600 мс.

P.P.S. У нас получились отдельные графики для каждого сенсора, вентилятора, напряжения питания. Однако, это слишком много. Потому, предлагаю воспользоваться чей-то чужой разработкой, и немного её подправить .

В архиве несколько теплэйтов,  которые надо импортировать в кактус. В результате, у нас добавится несколько новых графических шаблонов: SpeedFan – Fans, SpeedFan – Temperatures (4 датчика температуры), SpeedFan – Temperatures2 (два датчика), SpeedFan – Voltages ,  которые придётся вручную добавлять для каждого интересующего нас хоста. Однако, результат того стоит:

Данные sensors одного типа в одном месте
Да, я знаю, что на графиках подписи не соовтествуют данным, но после пары часов переделывания шаблонов мне уже было в лом исправлять названия графиков…

Обсуждение закрыто.