Предприятие где я работаю довольно большое, свыше 4 тыс сотрудников, серверных компонентов тоже довольно много.

Мы применяем zabbix как одну из систем мониторинга, но речь пойдет не о мониторинге систем как таковом (хотя о нем я могу многое рассказать), а о необходимости поддерживать в актуальном состоянии список пользователей который заведен в мониторинге.

Зачем заводить пользователей в мониторинге:

  1. для распределения прав доступа к ИС на просмотр через веб
  2. для наделение прав на создание / изменения шаблонов и их линковку к хостам
  3. для добавление коллег в нужные группы рассылок, для получения уведомлений только по нужным для того или иного специалиста системам

Авторизация в мониторинге прикручена к ldap AD предприятия.

Все учетные записи в мониторинге заведены с точно такими же именами пользователей как и в AD все красиво. При первичном заведении учетки в мониторинге мы создаем пользователя в мониторинге, подкидываем ему нужных групп на просмотр, групп рассылок, добавляем почту и другие атрибуты для отправки на телефон. Когда сотрудник переходит из отдела в отдел к нам приходят и говорят какие группы рассылок убрать, а какие добавить.

Но при увольнении учетка в мониторинге остается активной и мониторинг продолжает слать уже уволенному сотруднику уведомления — это неправильно и это можно автоматизировать

Полгода как реализованный механизм работает у нас, запускаясь по крону несколько раз в судки, зеркалирует состояние учетных записей в мониторинге на основе их состояние в AD

zbbx_account_dismissed

На чистой Ubuntu 20.04 LTS мне потребовалось поставить несколько пакетов и в общем то все заработало

# apt-get install libjson-perl libnet-ldap-perl

Что нужно сделать чтоб завелось:

1) скачать репозитарий zbbx_account_dismissed, разложить файлы

/etc/zabbix/lib
/etc/zabbix/zbbx_account_dismissed.pl
/etc/zabbix/zbbx_main.conf


В папке /etc/zabbix/lib/ две мои библиотеки:

/etc/zabbix/lib/Add/lib_zabbix_api.pm
/etc/zabbix/lib/Add/lib_config.pm


Остальные нужны чтоб функционал завелся.

Привожу их все скопом, чтоб функционал завелся, хотя вы можете сами скачать их с сети и поставить.

2) создать в мониторинге группу пользователей с именем "_Disabled", нужно у группы проставить атрибуты:

Состояние группы пользователейДеактивировано
Доступ к веб-интерфейсуДеактивировано

3) Если имя созданное группы отличается от "_Disabled", нужно в файле zbbx_account_dismissed.pl найти и поправить на свое имя

4) Нужна учетная запись в мониторинга с админскими правами, нужен работающий api забикса, заходим в файл /etc/zabbix/zbbx_main.conf и поправляем в нем на свои параметры

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

В файле /etc/zabbix/zbbx_account_dismissed.pl нужно будет вписать параметры учетки и дополнить еще некоторыми простыми атрибутами.

В самом скрипте /etc/zabbix/zbbx_account_dismissed.pl приведено много комментариев, по этому не запутаетесь.

Вначале запускаем скрипт руками.

После если все ок, добавляем /etc/zabbix/zbbx_account_dismissed.pl в планировщик.

В общем то все, всем добра.