Вы здесь

Мониторинг доступности OpenVPN с помощью Zabbix

Всем доброго времени суток! Сегодня я расскажу как мониторить с помощью Zabbix доступность на удаленном сервере службы OpenVPN.

На одном из моих серверов у меня поднят OpenVPN, к интернету он подключается по PPPOE, соответственно IP хоть и "белый", но динамический, при разрыве соединения меняется, я написал bash-скрипт отправляющий новый IP мне на email, и правящий конфиг OpenVPN, указывая в нем новый IP-адрес, и затем рестартующий службу OpenVPN.

Получилось так, что пару раз OpenVPN не перезапускалась, и я решил добавить в мониторинг Zabbix статус этой службы.

1. Идем в Configuration -> Hosts и выбираем хост, на котором установлен OpenVPN. Переходим в раздел Items и нажимаем Create item. Заполняем необходимые параметры элемента:

Type -> Zabbix Agent
Key -> net.tcp.service[tcp,,1194]
Update Interval - 180
History storage period – 7
Trend storage period – 365
Storage value – As is
Show value – Service state
Applications-OpeVPN service
Enabled-Yes
Add

Если у вас выбран русский язык, то настройки будут выглядеть так:

Мониторингн доступности OpenVPN в Zabbix

Я выбрал тип проверки - Zabbix Agent, так как при простой проверке сервер мониторинга Zabbix (находится внутри локальной сети, выход в интернет не имеет) пытается установить соединение с хостом по TCP-протоколу на указанный порт (1194), а сервер OpenVPN слушает порт 1194 на внешнем IP с внешним белым IP, а не внутри локалки, простой проверкой обойтись не получится.

Основные типы проверок в Zabbix:

  • Zabbix агент. Устанавливается на наблюдаемую машину и отправляет данные на сервер мониторинга.
  • SNMP агент. Чаще всего присутствует на устройстве (сетевое оборудование, маршрутизаторы, сетевые принтеры и т.д)., либо может быть установлен на сервер.
  • Simple check - простые проверки. Выполняются непосредственно на сервере zabbix с помощью встроенных инструментов, не требуют установки Zabbix - агента на хост. В документации указываюся следующие сервисы: ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet
  • External checks - внешние проверки. Как и простые проверки выполняются на сервере мониторинга, но не встроенными средствами, а внешними скриптами, я таким образом осуществляю мониторинг состояния RAID-массива.

2. Создаем триггер который в случае возврата в последних трех проверках значения итемом 0, будет отправлять уведомление о том, что служба недоступна. Для этого идем в раздел Triggers -> Create trigger. Заполняем параметры элемента:

Triggers->Create trigger
Name-OpenVPN service is down on {HOST.NAME}
Expression-{Template App OpenVPN Service:net.tcp.service[tcp,,1194].max(#3)}=0
Severity-High
Enabled-Yes

3. Ждем несколько минут и переходим в Latest data проверить поступаемые значения:

Zabbix OpenVPN

Триггер проверяет запущен ли сервис и отвечает ли он на TCP подключения и возвращает два значения:

  • 0 - сервис недоступен
  • 1 - сервис работает

Как видим, у нас возвращается 0, т.е сервис работает. Чтобы проверить сработку триггера, зайдите на сервер с OpenVPN и остановить службу, и в течении 5 минут вам должно прийти уведомление о недоступности службы, а в последних поступивших значениях будет стоять 1.

Высоких вам аптаймов, и поменьше сработок триггеров!;)

Рубрики: