Если в вашей сети есть важные производственные серверы или критически важные службы, использование инструментов мониторинга становится обязательным.
В случае каких-либо аппаратных или программных сбоев, важно как можно скорее получать оповещения и предпринимать соответствующие действия для устранения сбоя.
В этой статье я хотел бы взглянуть на checkmk – мощное программное обеспечение для мониторинга, разработанное tribe29 GmbH со множеством вариантов конфигурации и удобным WebGUI-интерфейсом, которое может помочь вам полностью автоматизировать операции мониторинга вашего оборудования и операционных систем.
checkmk поставляется в виде пакета программного обеспечения, включающего такие базовые сервисы, как Apache, Nagios или Cron.
В этой статье я установлю 1.6.0p7 raw edition из пакета RPM на CentOS 8.
Установим сервер checkmk на CentOS 8 из пакета RPM
Предварительные требования
Настройте брандмауэр, чтобы разрешить доступ к HTTP-серверу с помощью checkmk WebGUI:
firewall-cmd --add-service http --permanent
success
firewall-cmd --reload
success
Если вы включили SELinux в режиме Enforcing, разрешите HTTP-серверу с checkmk WebGUI подключаться к сети посредством включения приведенной ниже логической переменной SELinux (добавьте параметр -P, чтобы значение логической переменной сохранялось при перезагрузке):
# setsebool -P httpd_can_network_connect on
Установите пакет graphviz-gd из репозитория PowerTools, необходимый для checkmk:
# dnf --enablerepo=PowerTools install graphviz-gd
1. Скачайте пакет RPM checkmk:
wget https://checkmk.com/support/1.6.0p7/check-mk-raw-1.6.0p7-el8-38.x86_64.rpm
# dnf localinstall check-mk-raw-1.6.0p7-el8-38.x86_64.rpm
# omd create wcss
Adding /opt/omd/sites/wcss/tmp to /etc/fstab.
Creating temporary filesystem /omd/sites/wcss/tmp...OK
Restarting Apache...OK
Created new site wcss with version 1.6.0p7.cre.
The site can be started with omd start wcss.
The default web UI is available at http://chronos/wcss/
The admin user for the web applications is cmkadmin with password: ugvR3qzw
(It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.
)
Please do a su - wcss for administration of this site.
Сохраните учетные данные администратора и адрес веб-интерфейса!
# omd start wcss
Starting mkeventd...OK
Starting rrdcached...OK
Starting npcd...OK
Starting nagios...OK
Starting apache...OK
Initializing Crontab...OK
http://check_mk-server-ip/wcss/
Более того, инструмент поставляется из коробки с программным обеспечением агента в форматах RPM и DEB для дистрибутивов RHEL и Debian, поэтому я собираюсь использовать его для установки агента checkmk на моем первом контролируемом хосте, который является сервером Fedora 30.
Установка агента checkmk на Fedora 30 Server из пакета RPM
Стандартный репозиторий Fedora включает RPM-пакет агента checkmk, но он немного устарел, поэтому я собираюсь скачать новейшие RPM-пакеты прямо из моего checkmk WebGUI.
RPM пакет агента (и многое другое) можно найти в разделе «Monitoring Agents » в меню «WATO – CONFIGURATION» (левая боковая панель):
wget http://check_mk-server-ip/wcss/check_mk/agents/check-mk-agent-1.6.0p7-1.noarch.rpm
2. Установите агент checkmk из загруженного RPM
dnf localinstall check-mk-agent-1.6.0p7-1.noarch.rpm
3. Установите пакет сервера xinetd
Чтобы избежать постоянного использования ресурсов (ЦП, ОЗУ) на отслеживаемом хосте, агент checkmk запускается как служба xinetd (а не как демон systemd), поэтому ему необходимо установить и настроить службу xinetd на отслеживаемом агенте host.kmk из загруженного RPM
dnf install xinetd
4. Откройте TCP порт 6556 на брандмауэре
Агент checkmk перенаправляет свой вывод через сокет xinetd на порт 6556 / TCP, поэтому мы должны открыть его на брандмауэре (мой интерфейс xinetd принадлежит к зоне public):
firewall-cmd --zone public --add-port 6556/tcp --permanent
success
firewall-cmd --reload
success
5. Протестируйте проверку подключения агента checkmk
Теперь проверьте подключение к контролируемому хосту с сервера checkmk с помощью простой команды telnet:
# telnet phobos 6556 | head -n 10
Trying 192.168.1.1...
Connected to phobos.
Escape character is '^]'.
Version: 1.6.0p7
AgentOS: linux
Hostname: phobos
AgentDirectory: /etc/check_mk
DataDirectory: /var/lib/check_mk_agent
SpoolDirectory: /var/lib/check_mk_agent/spool
Добавим контролируемый хост в checkmk
1. Создайте новую папку, чтобы помочь классифицировать отслеживаемые хосты
Прежде чем добавить новый хост, рекомендуется создать новую папку для группировки наших отслеживаемых хостов.
В разделе «Hosts» нажмите «Create new folder»:
Введите хотя бы название новой папки.
Я создаю папку KVM для хранения здесь всех виртуальных машин, работающих на моем гипервизоре KVM.
Заполните как минимум два поля, чтобы добавить новый хост:
- BASIC SETTINGS -> Hostname
- NETWORK ADDRESS -> IPv4 Address
Наконец, нажмите Save & Test.
Теперь checkmk попытается установить связь с новым хостом, используя доступные методы связи, например, связь с клиентом checkmk или стандартный протокол SNMP.
Мой новый добавленный хост использует клиент checkmk вместо клиентов SNMP, поэтому только связь типа Ping и Agent была успешной:
Теперь нажмите на ссылку service discovery на зеленой панели, и вы будете перенаправлены прямо на экран сервисов хоста, где checkmk выполнит полную проверку доступных сервисов на хосте.
Включить почтовые уведомления на основе правил с сервера checkmk
Вы можете включить опцию checkmk для отправки уведомлений об изменениях статуса вашего хост-сервиса на ваш адрес электронной почты, чтобы получать мгновенные уведомления в случае потенциальных сбоев.
ВАЖНО: checkmk не включает механизм SMTP релэй для отправки почты, поэтому необходимо настроить SMTP-ретранслятор (промежуточный узел / нулевой клиент) на базовом сервере, чтобы получать уведомления по электронной почте от checkmk. Для настройки узла ретрансляции вы можете использовать Postfix, Sendmail, Exim или любое другое программное обеспечение, которое можно настроить как нулевой клиент.
2. Измените правило уведомления
Перейдите в раздел «Notifications » в меню левой панели, там уже есть предопределенное правило, поэтому я собираюсь улучшить существующее, но вы, конечно, можете создать новое, если это необходимо.
Отредактируйте правило и добавьте необходимых пользователей в раздел CONTACT SELECTION, чтобы они могли получать уведомления:
Не забудьте нажать оранжевую кнопку «Change» в верхнем левом углу, чтобы применить ожидающие изменения.
Примечание: в сценарии, основанном на правилах, когда появляется критическое уведомление и нет правила для его обработки, никто не будет уведомлен по электронной почте, убедитесь, что правила уведомления созданы правильно, включая всех затронутых пользователей. Еще один способ избежать неправильно настроенных правил уведомления – настроить резервный адрес электронной почты.
Настроим резервный адрес электронной почты для уведомлений
Если у вас уже настроены уведомления на основе правил, можно настроить резервный адрес электронной почты на тот случай, если уведомление не будет соответствовать доступным правилам.
Перейдите в меню «Global Settings» на левой панели и введите резервный адрес электронной почты для уведомлений в разделе NOTIFICATIONS: