Автоматический запуск ZABBIX Server после перезагрузки ОС я обычно реализовывал с помощью init-скриптов, которые идут вместе с исходными кодами. В Debian 8 произошли некоторые изменения в использовании системы инициализации – теперь по умолчанию используется systemd 1 2 3 вместо sysvinit ранее:
We exercise our power to decide in cases of overlapping jurisdiction (6.1.2) by asserting that the default init system for Linux architectures in jessie should be systemd.
Таким образом, чтобы не отставать от технологий, нужно настроить запуск ZABBIX через SystemD. Этим я и займусь далее.
Внимание! Содержимое статьи устарело. На данный момент выполнять описанную последовательность операций при установке Zabbix агента из репозиториев нет смысла.
Если вам интересна тематика ZABBIX, рекомендую обратиться к основной статье – Система мониторинга ZABBIX, в ней вы найдете дополнительную информацию.
Если у вас используется SysV, а не SystemD, настройку автозапуска для этой системы инициализации вы можете найти в головной статье – Автозапуск ZABBIX.
Запуск ZABBIX через SystemD
Создаем .service-скрипт:
1 |
nano /etc/systemd/system/zabbix-server.service |
Вставляем содержимое:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[Unit] #описание сервиса Description=Zabbix Server Daemon #для запуска сервера zabbix обязательно должен быть запущен mysql Requires=mysql.service #сервер zabbix запускается только после групп сервисов syslog, network и демона mysql After=syslog.target network.target mysql.service [Service] #zabbix запустится как классический демон Type=forking #команда для запуска ExecStart=/usr/local/sbin/zabbix_server #команда для перезапуска ExecReload=/usr/local/sbin/zabbix_server -R config_cache_reload #расположение .pid-файла для отслеживания основного процесса PIDFile=/tmp/zabbix_server.pid #пользователь и группа, под которым будет запущен сервис User=zabbix Group=zabbix [Install] #многопользовательский режим без графики WantedBy=multi-user.target |
Изменяем права на файл:
1 |
chmod 755 /etc/systemd/system/zabbix-server.service |
Возможно у вас будет другое расположение сервиса ZABBIX, найти его можно командой:
1 |
find / -name 'zabbix_server' |
Далее необходимо включить созданный ранее юнит в автозапуск при загрузке системы:
1 |
systemctl enable zabbix-server.service |
Запускаем сервис:
1 |
systemctl start zabbix-server.service |
Только что мы настроили автозапуск сервера, аналогичное нужно проделать и для агента.
Создаем .service-скрипт:
1 |
nano /etc/systemd/system/zabbix-agentd.service |
Вставляем содержимое:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[Unit] #описание сервиса Description=Zabbix Agent Daemon #сервер zabbix запускается только после групп сервисов syslog и network After=syslog.target network.target [Service] #zabbix запустится как классический демон Type=forking #команда для запуска ExecStart=/usr/local/sbin/zabbix_agentd #команда для перезапуска ExecReload=/usr/local/sbin/zabbix_agentd -R config_cache_reload #расположение .pid-файла для отслеживания основного процесса PIDFile=/tmp/zabbix_agentd.pid #пользователь и группа, под которым будет запущен сервис User=zabbix Group=zabbix [Install] #многопользовательский режим без графики WantedBy=multi-user.target |
Изменяем права на файл:
1 |
chmod 755 /etc/systemd/system/zabbix-agentd.service |
Включаем созданный ранее юнит в автозапуск при загрузке системы:
1 |
systemctl enable zabbix-agentd.service |
Запускаем сервис:
1 |
systemctl start zabbix-agentd.service |
В принципе задача выполнена. Нужно сказать пару слов про zabbix_agent 4 и zabbix_agentd 5. По идее первый рассчитан на init.d-версию и на данный момент уже лежит в архиве мануала.
Если у вас возникают сложности с написанием юнитов для systemd, можете обратиться к обзорам 6 7 8 в интернете.
Notes:
- SystemD ↩
- Default init system for Debian ↩
- 2.2.3. Новая система инициализации по умолчанию (systemd) ↩
- 6 Archive: Zabbix agent (UNIX, Inetd version) ↩
- 3 Zabbix agent (UNIX) ↩
- Systemd за пять минут ↩
- Systemd для администраторов, часть 3: HOW-TO: преобразование SysV init-скрипта в systemd service-файл ↩
- systemd ↩