Шаблон Zabbix для мониторинга обновлений пакетов APT

Zabbix

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

В один прекрасный день мне надоело заходить на каждый свой deb-подобный сервер и проверять состояние обновления там. Путём не долгого, но очень увлекательного путешествия по интернету, я наткнулся на GitHub‘e на интересную реализацию данной задачи. Выложил её пользователь под ником — The Ranger. В чём заключается суть (беру описание со страницы автора):

Этот шаблон использует параметр моделирования обновления apt-get -s upgrade. По этой причине пользователю Zabbix не нужно предоставлять привилегии суперпользователя.

Однако для обновления репозиториев APT требуется root-доступ. Поскольку Zabbix запускается под управлением выделенного пользователя, это можно сделать либо с помощью sudo в приведенном ниже сценарии настройки агента (используя выделенную запись crontab для периодического вызова apt-get update), либо используя функциональность APT::Periodic, встроенную в саму систему APT. Поддержка APT::Periodical включена в эту настройку.

Поскольку APT::Periodic выполняется с помощью уже существующего скрипта обслуживания APT, расположенного в cron.daily, то минимальный период обновления репозиториев составляет один раз в день. Если требуется чаще проверять — используйте отдельный cron.hourly для почасового выполнения.

Как производится установка

Создаём дополнительную конфигурацию APT:

nano /etc/apt/apt.conf.d/02periodic

Заносим следующие данные:

APT::Periodic::Enable "1";
APT::Periodic::Update-Package-Lists "1";

После сохранения добавляем конфигурационный файл в Zabbix-agent (для zabbix-agent’а первой версии):

nano /etc/zabbix/zabbix_agentd.d/apt.conf

Или конфигурационный файл в Zabbix-agent2 (для zabbix-agent’а второй версии):

nano /etc/zabbix/zabbix_agent2.d/apt.conf

и вносим следующие настройки:

# Treat security and regular updates differently
# This is just a simulation, that can be run under zabbix user
# Since updating packages lists (apt-get update) requires root user,
# use APT::Periodic or some other functionality for that
# UserParameter=apt.all,apt-get -s dist-upgrade | grep -ci '^\s*Inst.*security.*' | tr -d '\n'
UserParameter=apt.all,apt-get -s dist-upgrade | grep -ci '^\s*Inst.*.*' | tr -d '\n'
UserParameter=apt.security,apt-get -s upgrade | grep -ci ^inst.*security | tr -d '\n'
UserParameter=apt.updates,apt-get -s dist-upgrade | grep -Pc '^Inst(?:(?!security).)*$' | tr -d '\n'

Строка «UserParameter=apt.all,apt-get -s dist-upgrade | grep -ci ‘^\s*Inst.*.*’ | tr -d ‘\n’» собирает информацию о всех обновлениях, строка «UserParameter=apt.security,apt-get -s upgrade | grep -ci ^inst.*security | tr -d ‘\n’» отображает информацию об обновления безопасности, а строка «UserParameter=apt.updates,apt-get -s dist-upgrade | grep -Pc ‘^Inst(?:(?!security).)*$’ | tr -d ‘\n’» — обо всех оставшихся обновлениях.

Последним этапом по настройке агента осталось перезапустить службу Zabbix-agent.

Для zabbix-agent’а первой версии:

systemctl restart zabbix-agent

Для zabbix-agent’а второй версии:

systemctl restart zabbix-agent2

Для настройки на Zabbix-сервере необходимо импортировать шаблон. Скачать его можно здесь или по ссылке в конце страницы.

Источник: https://github.com/theranger/zabbix-apt

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх