Мониторинг серверов · 4 min read · Oct 18, 2025
Мониторинг температур серверов Linux и Unix с помощью Opsview
Мониторинг температур серверов Linux и Unix с помощью Opsview
Управление потреблением энергии в дата-центре является ключевым фактором для снижения общих затрат на энергоснабжение бизнеса и обеспечения оптимальной работы серверов. Перегрев может привести к увеличению затрат на охлаждение и также создает риск сбоев серверов.
Программное обеспечение мониторинга серверов Opsview может использоваться для проверки и оповещения о температуре серверов, а также о температуре отдельных компонентов внутри сервера (память, процессор и жесткие диски). Можно установить пороги и оповещения на случай превышения критических температур, что поможет контролировать работу перегревающихся серверов.
В этом блоге описывается, как настроить Opsview для мониторинга температуры серверов Linux и Unix.
Шаги:
[ Примечание: Этот гид предполагает, что система, которую мы хотим мониторить, уже имеет установленный агент Opsview]
1. В качестве root нам нужно установить “lm_sensors” и “hddtemp” (названия могут отличаться в зависимости от дистрибутивов Linux); в CentOS/RHEL они устанавливаются через “ yum install lm_sensors hddtemp “.
2. После установки этих компонентов нам нужно запустить “sensors-detect” от имени root, чтобы обнаружить элементы, температуру которых мы хотим мониторить. После завершения мы должны сохранить это (просто нажмите ENTER), и процесс sensors-detect завершен.
3. Теперь, когда lm_sensors и hddtemp установлены, мы можем протестировать их локально, как показано ниже:
Температура HDD:
[root@rhelserver ~]# hddtemp /dev/sda/dev/sda: ST3120811AS: 31°Clm_sensors:
[root@rhelserver ~]# sensorscoretemp-isa-0000Adapter: ISA adapterCore 0: +38.0°C (high = +84.0°C, crit = +100.0°C)Core 1: +39.0°C (high = +84.0°C, crit = +100.0°C)Core 2: +37.0°C (high = +84.0°C, crit = +100.0°C)Core 3: +38.0°C (high = +84.0°C, crit = +100.0°C)
i5k_amb-isa-0000Adapter: ISA adapterCh. 0 DIMM 0: +67.0°C (low = +110.5°C, high = +124.0°C)Ch. 1 DIMM 0: +62.0°C (low = +110.5°C, high = +124.0°C)
Мы можем видеть по приведенному выше выводу, что наши датчики и их показания температуры обнаружены и функционируют как задумано, теперь нам нужно добавить плагины, чтобы получать этот вывод на основе “каждого датчика”, чтобы мы могли добавить его к проверке сервиса для мониторинга температуры сервера.
4. Скачайте плагин “check_lm_sensors” по ссылке здесь и скопируйте его в /usr/local/nagios/libexec. После этого извлеките его с помощью
tar -zxvf check_lm_sensors-3.1.1.tar.gz5. Мы можем протестировать наш новый плагин как root, запустив:
/usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors –listчто снова должно вывести список датчиков и их температур. Если это не работает или выдает ошибки Perl, отредактируйте файл check_lm_sensors с помощью nano/vim и в начале скрипта добавьте следующее:
use lib "/usr/local/nagios/perl/lib/";6. Чтобы мы могли запускать эту команду от имени пользователя “nagios” (что требуется для проверок сервиса check_nrpe), нам нужно:
chmod +x /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensorschown –R nagios:nagios /usr/local/nagios/libexec/check_lm_sensors-3.1.1/7. Нам также нужно добавить строку в файл /etc/sudoers. В качестве root пользователя добавьте следующую строку в конец /etc/sudoers:
nagios ALL=(root) NOPASSWD:/usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensorsЭто позволяет пользователю nagios запускать check_lm_sensors от имени root без необходимости аутентификации через пароль.
8. Теперь нам нужно добавить наши команды проверки к нашему агенту, так как мы будем выполнять их локально на сервере и передавать вывод обратно на наш сервер Opsview через команду check_nrpe (NRPE - это N agios R emote P lugin E xecutor). Для этого нам нужно определить, что представляют собой наши команды и как мы будем их называть. Для этого нам нужно отредактировать файл “overrides.cfg”, расположенный по адресу /usr/local/nagios/etc/nrpe_local/override.cfg.
9. Нам нужно отредактировать этот файл с помощью текстового редактора, такого как vim или nano, т.е.
nano /usr/local/nagios/etc/nrpe_local/override.cfgи добавить строки, подобные следующим:
check_command[core0_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Core0=45,55
check_command[core1_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Core1=45,55
check_command[core2_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Core2=45,55
check_command[core3_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Core3=45,55
check_command[dimm0_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Ch.0DIMM0=60,75
check_command[dimm1_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Ch.1DIMM0=60,75
check_command[sda_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high sdaTemp=60,75Это создаст 7 новых команд, таких как “core0_temp”, которые выполняют полный путь, указанный справа от “=”,.
10. Далее нам нужно перезагрузить агента Opsview, запустив
service opsview-agent restartнапример.
11. Теперь мы можем протестировать эти новые команды как пользователь nagios, перейдя в /usr/local/nagios/libexec и запустив команду, как показано ниже:
./check_nrpe –H localhost –c dimm0_tempЭто выведет результат, как показано ниже, если завершится успешно:
[nagios@rhelserver libexec]$ ./check_nrpe -H localhost -c dimm0_temp
LM_SENSORS WARNING - Ch.0DIMM0=67.0|Ch.0DIMM0=67.0;60;75;;12. Теперь, когда все подтверждено как работающее, нам просто нужно создать наши проверки сервиса в Opsview и добавить их к хосту. Для этого просто войдите в Opsview и перейдите в “ НАСТРОЙКИ > ПРОВЕРКИ СЕРВИСА “, затем нажмите зеленый символ “ПЛЮС”. Это загрузит новую страницу, которую вам нужно заполнить различными настройками, такими как имя, группа сервиса и т.д.
Важные разделы для этого примера - это Плагин и аргументы; в “Плагин” мы должны выбрать check_nrpe, а в аргументах мы должны ввести что-то подобное “ -H $HOSTADDRESS$ -c dimm0_temp “; где “dimm0_temp” - это команда, которую мы запускали ранее и добавили в наш файл overrides.cfg.

13. После того как мы создали проверки сервиса для всех строк, которые мы добавили в “overrides.cfg” на нашем сервере, мы можем перейти в “ НАСТРОЙКИ > ХОСТЫ“, кликнуть на соответствующий хост (или добавить его, если его еще нет в Opsview), и перейти на вкладку МОНИТОРЫ, где вы можете выбрать ваши новые проверки сервиса, как показано ниже:

14. После добавления нам наконец нужно перезагрузить Opsview, чтобы применить наши изменения, через “ НАСТРОЙКИ > ПРИМЕНИТЬ ИЗМЕНЕНИЯ “ и “перезагрузить конфигурацию”. После перезагрузки мы можем перейти к нашему хосту и просмотреть наши новые мониторы температуры сервера, как показано ниже:
15. Теперь мы можем начать создавать профили уведомлений на основе температур, т.е. “Уведомите меня, если температура становится критической для любого из моих серверов в дата-центре ‘XYZ’ в эти часы”, например. Таким образом, мы можем убедиться, что мгновенно узнаем, когда температура сервера становится критической, через SMS/электронную почту/уведомления iOS, и немедленно расследовать.

Get new posts in your inbox
No spam. Unsubscribe anytime.