Задача: Хочу поставить на мониторить сервис ProFTPd
Постепенно наращиваю функционал своего мониторинга на базе Zabbix 5.0 LTS
, в частности решил поставить сервис организации FTP
доступа на сайте компании, хотя как по мне проще использовать то то есть, а именно SCP
и только одна точка входа, но раз мой начальник привык к FTP
, то никуда не деться. Хотя! На всех новых порталах которые я выполняют по задачам FTP
нет, только SCP
. Ну да ладно, сегодня соберу стенд и разберу как поставить сервис на мониторинг.
В данной заметке будут использовать две виртуальные машины с сервисами:
srv-bionic: 172.33.33.102 (ProFTPd)
srv-zabbix: 172.33.33.112 (Zabbix 5.0 LTS)
Шаг №1:
Сервис ProFTPd
установлен на Ubuntu 18.04 Server
опираясь на свою заметку.
Шаг №2:
Заходим в добавленный хост и создаем Web
—сценарий:
http://IP&DNS — user&pass — Configuration — Hosts — srv-bionic — Create web scenario
вкладка Scenario
Name: Web
Update interval: 1m
Attemps: 5
Agent: Zabbix
Enabled: отмечаем галочкой
вкладка Steps — Add
Name: FTP Check
URL: ftp://ftp1:Aa1234567@172.33.33.102:21
Post type: Form data
Retrieve mode: Body
Timeout: 15s
Required status code: 226
и после нажимаю Add
, а затем Add
данный код 226
получается когда мы успешно авторизуемся на хосте, к примеру:
ekzorchik@srv-dbionic:~$ ftp 172.33.33.102 21 Connected to 172.33.33.102. 220 ProFTPD 1.3.5e Server (srv-bionic) [172.33.33.102] Name (172.33.33.102:ekzorchik): ftp1 331 Password required for ftp1 Password: 230 User ftp1 logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list -rwxrwx--- 1 33 www-data 612 Nov 26 20:38 index.nginx-debian.html 226 Transfer complete
Шаг №3:
Создаю триггер на проверку:
http://IP&DNS — user&pass — Configuration — Hosts — srv-bionic — Triggers — Create trigger
вкладка Triggers
Name: FTP Check
Severity: High
Expression: {srv-bionic:web.test.fail[Web].last()}>0
OK event generation: Expression
PROBLEM event generation mode: Single
OK event closes: All programs
Allow manual close: отмечаю галочкой
Enabled: отмечаю галочкой
и нажимаю Add
Шаг №4:
Смотрим последние данные:
http://IP&DNS — user&pass — Monitoring — Latest data -
Hosts: Select
— нахожу свой узел srv-bionic
и нажимаю Apply
Шаг №5:
Если остановить сервис ProFTPd
, то сработает мониторинг:
ekzorchik@srv-bionic:~$ sudo systemctl stop proftpd.service
http://IP&DNS — user&pass — Monitoring — Dashboard
ekzorchik@srv-bionic:~$ sudo systemctl start proftpd.service
Триггер пропадает
Шаг №6:
Еще можно настроить элемент данных на простую проверку порта 21
:
Возвращаемые значения net.tcp.service
0 | сервис недоступен |
1 | сервис доступен |
http://IP&DNS — user&pass — Configuration — Hosts — srv-bionic — Items — Create item
вкладка Item
Name: FTP Service
Type: Simple check
Key: net.tcp.service[ftp,,21]
Host interface: 172.33.33.102:8
Type of information: Numeric (unsigned)
Update intervals: 30s
Custom intervals: Flexible
History storage period: Storage period: 90d
Trend stroage period: Storage period: 365d
Show valud: выбираю Service State
Enabled: отмечаю галочкой
и нажимаю Add
теперь в Последних данных по данному хосту srv-bionic
если сервис включен значение 1
, если выключен то 0
и уже по этой простой проверке можно сделать триггер:
Name: FTP Service
Expression: {srv-bionic:net.tcp.service[ftp,,21].last(#2)}=0
т. е. Если 2
(два) последних значение были равны 0
, то срабатывает триггер.
Либо именование триггер указать более осмысленным, как FTP service is down on {HOST.NAME}
Отлично это уже что-то и на основе этой заметке можно настраивать базовый мониторинг различных служб. Мой Вам совет, начните делать для себя и это Вам на 100%
окупится, как окупается для меня.
На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.