Установка и базовая настройка системы мониторинга Zabbix 3.0 LTS на Ubuntu Server 14.04 LTS

Установка и базовая настройка системы мониторинга Zabbix 3.0 LTS на Ubuntu Server 14.04 LTS

Мелкие и средние компании зачастую пренебрегают таким компонентом IT инфраструктуры, как мониторинг разных узлов локальной сети. При возникновении проблем в таких компаниях может проходить достаточно много времени, пока инженеры поймут, что происходит в их IT инфраструктуре, что, само по себе, очень критично для бизнеса. Имплементация и правильная настройка системы мониторинга облегчает жизнь IT специалиста на порядок, но стоит заметить, что на начальном этапе сбора и анализа информации в системе мониторинга увеличивается количество рабочих часов. Почему? Всплывают те ошибки, которые вы могли не замечать или просто игнорировали в течении долгого периода времени. При этои рынок программного обеспечения предлагает целый ряд продуктов, так или иначе связанных с мониторингом. В ряде широко используемых продуктов присутствуют такие, как Microsoft System Center Operations Manager (SCOM), Nagios, Zabbix, Cacti и т.д.

Если взять SCOM, то он хорошо “заточен” под программное обеспечение от Microsoft, прекрасно отслеживает требуемое, но очень “толстый”, и чтобы его развернуть в Enterprise режиме, нужно задействовать несколько серверов. Как показывает моя практика, SCOM не могут себе позволить развернуть даже некоторые крупные компании, не говоря уже о мелком и среднем бизнесе.

Иначе обстоят дела с Zabbix. Этот продукт позволяет развернуть себя на старом Desktop’e и предоставлять результат. Для мониторинга Windows-систем Zabbix функционально не так богат, как SCOM, но в симбиозе с технологией Windows Event Subscriptions мы можем получить вполне эффективную систему мониторинга.

Если говорить про Linux или Unix системы и их сервисы (MySQL, FTP, SMTP, HTTP, SSH, Exim, Squid и т.п.), то Zabbix предоставляет множество уже готовых шаблонов для их мониторинга.

В современной гетерогенной IT инфраструктуре для достижения максимальной эффективности и гибкости нужно использовать как коммерческие продукты, такие как SCOM, так и СПО, такое как Zabbix.

Применительно к Zabbix, в этой заметке мы рассмотрим пример следующих действий:

  • Установка Zabbix на Ubuntu 14.04
  • Настройка LDAP аутентификации на базе Active Directory
  • Установка Zabbix агентов на ОС Windows и Linux
  • Настройка оповещений через e-mail и Telegram
Установка Zabbix на Ubuntu 14.04

Сама установка Zabbix 3.0 LTS сервера на Ubuntu Server 14.04 LTS очень тривиальна и не доставляет особых проблем. Многие зададутся вопросом, почему для установки Zabbix 3.0 не взять дистрибутив Ubuntu к примеру 15-16 версии, но на данный момент Zabbix не поддерживает эти версии Ubuntu. И при попытке установки Zabbix сервера на Ubuntu 15-16 получим ошибку:

Особо ленивые могут скачать Zabbix Appliance, развернуть и протестировать, но как можно прочитать “The Appliance is not intented for serious production use at this time

Мы установим Zabbix из пакетов, даем последовательно ряд команд. Скачаем и установим пакет, который добавит репозиторий для Zabbix сервера:

Обновим кэш менеджера пакетов и убедимся в том, что репозиторий для Zabbix добавился:

Наш Zabbix-сервер будет хранить всю информацию в MySQL и поэтому устанавливаем пакет для Zabbix сервера с поддержкой MySQL:

Сразу установим Zabbix-агента на Zabbix-сервер, чтобы сервер мог мониторить сам себя, а к настройкам агента вернёмся позже:

Теперь нужно создать в MySQL базу данных. Подключимся к MySQL:

Здесь MySQL запросит пароль. Укажем тот пароль, который мы задавали при установке пакета zabbix-server-mysql В контексте MySQL создаем базу данных с именем Zabbix и даем полные права на вновь созданную базу данных пользователю zabbix@localhost :

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

Теперь нужно указать Zabbix-серверу какую базу данных использовать:

Конечные настройки моего конфигурационного файла для Zabbix-сервера:

Теперь заходим в конфигурацию веб-сервера Apache:

Цитата из документации:

It's necessary to uncomment the “date.timezone” setting and set the correct timezone for you. After changing the configuration file restart the apache web server.

После правки конфигурационного файла перезапускаем Apache:

Возможно вы увидите, что apachе2 выдает предупреждение:

В таком случае снова заходим в конфигурационный файл Apache и задаем параметр ServerName:

После этого предупреждение должно исчезнуть.

Далее открываем веб-консоль Zabbix:

Будет запущен мастер первоначальной конфигурации. Каждый шаг этого мастера описывать нет смысла, так как мастер очень простой. Конечный результат:

Для аутентификации используем UserName: Admin Password: zabbix – регистр важен – это Linux.

Как видите, все элементарно просто. Установка занимает не более 30 минут.

Настройка LDAP аутентификации на базе Active Directory

Первое, что мы сделаем после установки, - настроим аутентификацию на нашем Zabbix сервере через Active Directory.

Создаем в Active Directory пользователя, к примеру zabbix:

Я обычно ставлю галочку Password never expires, но решать вам.

По умолчанию этот пользователь входит в группу Domain Users и этого достаточно. Почему-то многие дают этому пользователю чрезмерно большие права доступа, по типу Domain Admins. Делать этого не нужно.

Далее идем в Zabbix (используем UserName: Admin Password: zabbix для аутентификации) и создаем пользователя с именем, как в Active Directory:

В поле Alias и Name пишем точно так же как в Active Directory в поле User SamAccountName:

Далее перелогиниваемся вновь созданным пользователем zabbix и переходим:

Нажимаем Test и если все хорошо, то нажимаем Update.

Откуда взять Bind DN для пользователя (в моем примере zabbix):

Откуда взять Base DN для вашего домена Active Directory:

После того, как мы переключимся на LDAP аутентификацию, пользователем UserName: Admin Password: zabbix мы уже не зайдем, так как пользователя Admin c паролем zabbix в нашей Active Directory просто нет, но есть другой пользователь zabbix. Используем для входа именно этого пользователя. Подобным образом на Zabbix-сервере создаем учетные записи для всех ответственных инженеров.

Не забываем дать Permissions пользователю и назначить в определенную группу.

Таким образом, если учетная запись в Active Directory существует – это еще не значит, что мы сможем залогиниться с помощью этой учётной записи на Zabbix-сервер. На Zabbix-сервере нужно создать ассоциированную учетную запись, такую же как в Active Directory.

Возможна ситуация, когда LDAP хост “упал”, а у нас вся аутентификация завязана на Active Directory, и при попытке входа на Zabbix сервер будет выводиться сообщение о некорректных учётных данных:

В таком случае можно переключиться на internal аутентификацию, чтобы в последующем, к примеру, переключиться на другой LDAP сервер. Для этого подключаемся к MySQL …

Команда отключит LDAP и активирует internal аутентификацию. После этой команды на Zabbix сервер можно будет зайти с использованием учётной записи Admin / zabbix.

Установка Zabbix агентов на ОС Windows и Linux

Начнем с Linux, так как на этой ОС всё это делается элементарно. В наличии у нас Ubuntu Linux 14.04 LTS и и в репозитории Ubuntu zabbix-agent уже представлен, правда версии 2.2:

Можно обойтись и этой версией агента, но мы хотим использовать последнюю версию Zabbix-агента:

После того, как мы установили агента, идем по пути /etc/zabbix/zabbix_agentd.conf (для Ubuntu, путь в зависимости от конкретного дистрибутива может отличаться) и вносим настройки:

После внесения изменений не забываем перезапускать Zabbix агента:

Кстати по параметру Server в конфигурационном файле zabbix агента, приведу такую цитату:

Note that hostnames must resolve hostname→IP address and IP address→hostname.

То есть, когда в DNS будем создать A-запись для Zabbix сервера, то не забываем создать и PTR запись.

Еще момент для параметра Server:

List of comma delimited IP addresses (or hostnames) of Zabbix servers. Incoming connections will be accepted only from the hosts listed here.

То есть наш Zabbix агент может работать одновременно с разными Zabbix серверами. Просто стоит указать их FQDN или IP-адрес через запятую.

Вернемся к нашим параметрам для Zabbix агента. Как можно было заметить, я внес минимальные изменения в .conf файл Zabbix агента. По моему опыту в небольших инсталляциях (реальная цифра из жизни - 20 Linux-серверов) этого вполне хватает. По параметрам конфигурационного файла дополнительно можно почитать по ссылке , но интуитивно все и так понятно.

Если кто-то сталкивался с тонкой настройкой конфигурационного файла Zabbix агента, просьба поделиться информацией в комментариях.

Далее идем на наш Zabbix сервер и указываем ему FQDN и IP адрес нашего клиента:

В поле DNS name я пишу неполный FQDN наблюдаемого хоста, так как у меня корректно настроена сеть на Zabbix сервере:

Далее идем на вкладку Templates:

Без применения шаблона или шаблонов на конкретный хост никакие параметры подвергаться мониторингу не будут.

Возвращаемся на вкладку Hosts:

И видим, что индикатор ZBX зеленый – это значит, что Zabbix сервер и агент взаимодействуют между собой и так же появились Items и Triggers, потому что мы применили шаблон для OS Linux, т.е. какой-то набор параметров начал мониториться. Можно нажать на Items и Triggers и увидеть, что именно мы наблюдаем.

Можно в ручном режиме изменять или добавлять. К примеру Items:

Zabbix – это конструктор.

Итак, давайте добавим SSH шаблон и проверим, как он отработает.

Выключаем SSH руками на наблюдаемом сервере и смотрим на нашу dashboard на zabbix сервере:

Теперь попробуем установить zabbix агента на Windows Server 2012 R2.

Первое, что надо сделать это скачать агента с сайта Zabbix:

Далее распаковываем полученный архив и копируем путь до установочных файлов:

Открываем CMD от имени администратора изменяем путь до исполняемых файлов zabbix агента. Когда путь будет изменен выполняем команду:

Если выполнить команду в таком исполнении, то файл конфигурации должен находиться по пути C:\zabbix_agentd.conf

Интересная возможность:

Теперь, если посмотреть на оснастку управления службами, можно увидеть службу и для zabbix агента:

Кстати, Zabbix агент установиться без проблем даже если Windows Server установлен в режиме Core.

Теперь нужно создать конфигурационный файл для Zabbix агента и его можно будет запустить. Так как я устанавливал агента без указания дополнительных параметров для пути конфигурационного файла и не собираюсь это делать при запуске агента, мой конфигурационный файл будет располагаться по умолчанию в C:\zabbix_agentd.conf

Копируем конфигурационный файл по умолчанию:

И вносим точно такие же изменения, как для Linux клиента (смотри настройку Zabbix агента для Linux, которую мы делали ранее).

Не забываем переименовать конфигурационный файл. По умолчанию он имеет вид zabbix-agentd.win.conf:

Теперь можно запустить службу Zabbix агента и добавить Windows хост на Zabbix сервер.

Процедура добавления Windows клиента на Zabbix сервер точно такая же, как и для Linux клиента за исключением того, что здесь мы применяем шаблон именно для Windows OS.

Если на системе с Windows-агентом Zabbix включён Windows Firewall, то нужно добавить разрешающее правило для Zabbix агента – разрешить входящие подключения на порт TCP 10050

Настройка оповещений через e-mail и Telegram

Подошло время настроить систему уведомлений.

В Zabbix присутствуют несколько вариантов уведомлений это:

Не забываем о скриптах, которые могут выполняться в зависимости от определенного события:

Мы настроим уведомления через Email и Telegram

Переходим Administration –> Media Types (как на скриншоте выше) и нажимаем Email:

К примеру, для реально работающего почтового сервера на Zimbra:

Далее активируем Action:

И последний шаг - включаем e-mail уведомления для наших пользователей или группы пользователей:

Мой пользователь входит в группу администраторов, и дополнительных настроек на указанной вкладке я не делаю:

И пробуем протестировать придет письмо или нет.

Обычно я захожу на консоль виртуальной машины Linux сервер и останавливаю SSH службу:

И включаем обратно SSH:

Email уведомления у нас работают, но формат сообщения не очень удобен. Давайте попробуем поправить. Я оставляю минимум информации - на каком хосте произошло событие, и что именно “сломано”:

Сделаем еще одно улучшение. Уменьшим кол-во уведомлений на разные события - убираем галочки:

События класса Information and Warning мы всегда сможем увидеть на DashBoard

Чуть порассуждаем, прежде чем начать настраивать следующий вид уведомлений. Есть компании, которые свою IT инфраструктуру располагают на той же физической площадке, где и располагается офис компании, т.е. есть отдельная оборудованная серверная комната. Но есть компании, которые полностью “живут” в дата-центрах, и конечным работникам нужен только монитор, RDP или ICA терминал, мышка и клавиатура и “шнурок”, который позволит выходить в Интернет. Я работал в компаниях, как первого типа, так и второго, и везде внедрял Zabbix, но уведомления я организовывал по разному.

В первом сценарии, когда серверная комната находится на той же физической площадке, я настраивал как минимум E-mail уведомления и SMS уведомления, либо только SMS. Почему? Довольно часто я встречал проблемы с интернет провайдером - или полностью падал линк, или частично, к примеру HTTP и HTTPS работает, а вот другие протоколы уже нет. Таким образом, получается, что когда IT персонал находится вне офиса, о проблемах в нашей IT инфраструктуре через e-mail уведомления мы не узнаем. Но у нас есть SMS уведомления, которые нас благополучно уведомят о проблемах. Можно выставить расписание, как пример: e-mail уведомления, когда мы находимся в офисе, а SMS-уведомления, когда мы находимся вне офиса.

Стоит заменить, что в первом случае для SMS уведомлений я всегда использовал локальный SMS девайс – это был корпоративный телефон специально выделенный для Zabbix или USB модем. В случае использования внешнего интернет SMS шлюза и падения интернет-канала наш Zabbix будет “молчать” для нас.

Описывать то, как это сделать, я не буду, так как в интернатах “куча” инфы и для каждого GSM девайса нужен отдельный подход, универсальных “рецептов” нет.

Второй сценарий - вся IT инфраструктура находится в дата-центре. Сразу скажем, вряд ли упадет интернет канал, так как обычно у нормального дата-центра их целая “пачка”. За электричество мы тоже можем быть спокойны, в отличие от локальной серверной комнаты. За IT инфраструктуру отвечают инженеры из разных стран. И я долго думал, что же мне использовать для уведомлений в такой ситуации и решил остановить свой выбор на Telegram.

Как же я сделал выбор при поиске скрипта для Telegram? Зашел по ссылке и дал запрос:

Сам проект Zabbix-in-Telegram находится на GitHub . Там есть официальная инструкция, но я попытаюсь описать свой опыт.

Первое, что надо сделать - это зарегистрироваться в Telegram, поставить клиента Telegram и зайти в него.

Далее мы создадим бота в Telegram для нашего Zabbix сервера. Новые боты создаются через BotFather. Находим BotFather по имени :

Далее даем последовательно команды, т.е например пишем /start и нажимаем кнопку Send:

После того как вы зададите имя (на скриншоте выше это zabbix), нужно будет еще указать UserName для вашего бота:

Все, ваш бот создан и готов работать.

Далее переходим на Zabbix сервер и устанавливаем Python и PIP (что такое PIP можно почитать на WikiPedia ):

Далее переходим в директорию, из которой Zabbix сервер может запускать внешние скрипты (этот путь прописывается в конфигурационном файле Zabbix сервера /etc/zabbix/zabbix_server.conf):

И создаем два скрипта в этой директории:

  • zbxtg.py - скрипт используется для отправки сообщения конкретному человеку
  • zbxtg_settings.py - тут прописана вся "механика" как взаимодействовать с Telegram

Назначаем на скрипты владельца и группу zabbix. Так как у нас zabbix сервер работает от zabbix пользователя, таких разрешений должно хватить. Делаем скрипты исполняемыми:

Далее открываем по порядку ссылки zbxtg.py и zbxtg_settings.py , копируем содержимое соответствующих скриптов и вставляем содержимое во вновь созданные Python скрипты.

Далее настроим “главный” скрипт zbxtg_settings.py . Открываем его и вносим изменения:

Нужно изменить два параметра, второй параметр (стрелочка два) опциональный. Первый параметр – это tg_key (Token to access the HTTP API) формируется при создании бота:

Теперь можно проверить работоспособность (запускаем скрипт из папки /usr/lib/zabbix/alertscripts):

UserName если забыли, можно посмотреть тут:

Теперь нужно настроить Zabbix сервер.

Создаем media types для Telegram:

Параметр --debug опциональный.

Далее можно создать отдельный Actions для каждого media types или использовать один.

Я использую один.

Так как я использую один Actions для всех media types, формат сообщений от zabbix у меня один :

Теперь нужно назначить вновь созданный media types (Telegram) нужному пользователю:

Теперь настроим, чтобы наш бот слал уведомления на чат группу.

Первое, что нужно сделать, это создать чат группу в Telegram и добавить нашего бота в эту чат группу.

Далее добавляем параметр –-group.:

Моя чат группа в Telegram называется ZabbixAivonin:

На этом настройка оповещение ботом чат группы закончена.

Работу так же можно протестировать из командной строки:

Прошу поделиться вашими идеями и реализациями мониторинга в вашей локальной сети.

Спасибо за внимание.

Теперь заходим в конфигурацию веб-сервера Apache:

Цитата из документации:

It's necessary to uncomment the “date.timezone” setting and set the correct timezone for you. After changing the configuration file restart the apache web server.

После правки конфигурационного файла перезапускаем Apache:

Возможно вы увидите, что apachе2 выдает предупреждение:

В таком случае снова заходим в конфигурационный файл Apache и задаем параметр ServerName:

После этого предупреждение должно исчезнуть.

Далее открываем веб-консоль Zabbix:

Будет запущен мастер первоначальной конфигурации. Каждый шаг этого мастера описывать нет смысла, так как мастер очень простой. Конечный результат:

Для аутентификации используем UserName: Admin Password: zabbix – регистр важен – это Linux.

Как видите, все элементарно просто. Установка занимает не более 30 минут.

Настройка LDAP аутентификации на базе Active Directory

Первое, что мы сделаем после установки, - настроим аутентификацию на нашем Zabbix сервере через Active Directory.

Создаем в Active Directory пользователя, к примеру zabbix:

Я обычно ставлю галочку Password never expires, но решать вам.

По умолчанию этот пользователь входит в группу Domain Users и этого достаточно. Почему-то многие дают этому пользователю чрезмерно большие права доступа, по типу Domain Admins. Делать этого не нужно.

Далее идем в Zabbix (используем UserName: Admin Password: zabbix для аутентификации) и создаем пользователя с именем, как в Active Directory:

В поле Alias и Name пишем точно так же как в Active Directory в поле User SamAccountName:

Далее перелогиниваемся вновь созданным пользователем zabbix и переходим:

Нажимаем Test и если все хорошо, то нажимаем Update.

Откуда взять Bind DN для пользователя (в моем примере zabbix):

Откуда взять Base DN для вашего домена Active Directory:

После того, как мы переключимся на LDAP аутентификацию, пользователем UserName: Admin Password: zabbix мы уже не зайдем, так как пользователя Admin c паролем zabbix в нашей Active Directory просто нет, но есть другой пользователь zabbix. Используем для входа именно этого пользователя. Подобным образом на Zabbix-сервере создаем учетные записи для всех ответственных инженеров.

Не забываем дать Permissions пользователю и назначить в определенную группу.

Таким образом, если учетная запись в Active Directory существует – это еще не значит, что мы сможем залогиниться с помощью этой учётной записи на Zabbix-сервер. На Zabbix-сервере нужно создать ассоциированную учетную запись, такую же как в Active Directory.

Возможна ситуация, когда LDAP хост “упал”, а у нас вся аутентификация завязана на Active Directory, и при попытке входа на Zabbix сервер будет выводиться сообщение о некорректных учётных данных:

В таком случае можно переключиться на internal аутентификацию, чтобы в последующем, к примеру, переключиться на другой LDAP сервер. Для этого подключаемся к MySQL …

Команда отключит LDAP и активирует internal аутентификацию. После этой команды на Zabbix сервер можно будет зайти с использованием учётной записи Admin / zabbix.

Установка Zabbix агентов на ОС Windows и Linux

Начнем с Linux, так как на этой ОС всё это делается элементарно. В наличии у нас Ubuntu Linux 14.04 LTS и и в репозитории Ubuntu zabbix-agent уже представлен, правда версии 2.2:

Можно обойтись и этой версией агента, но мы хотим использовать последнюю версию Zabbix-агента:

После того, как мы установили агента, идем по пути /etc/zabbix/zabbix_agentd.conf (для Ubuntu, путь в зависимости от конкретного дистрибутива может отличаться) и вносим настройки:

После внесения изменений не забываем перезапускать Zabbix агента:

Кстати по параметру Server в конфигурационном файле zabbix агента, приведу такую цитату:

Note that hostnames must resolve hostname→IP address and IP address→hostname.

То есть, когда в DNS будем создать A-запись для Zabbix сервера, то не забываем создать и PTR запись.

Еще момент для параметра Server:

List of comma delimited IP addresses (or hostnames) of Zabbix servers. Incoming connections will be accepted only from the hosts listed here.

То есть наш Zabbix агент может работать одновременно с разными Zabbix серверами. Просто стоит указать их FQDN или IP-адрес через запятую.

Вернемся к нашим параметрам для Zabbix агента. Как можно было заметить, я внес минимальные изменения в .conf файл Zabbix агента. По моему опыту в небольших инсталляциях (реальная цифра из жизни - 20 Linux-серверов) этого вполне хватает. По параметрам конфигурационного файла дополнительно можно почитать по ссылке , но интуитивно все и так понятно.

Если кто-то сталкивался с тонкой настройкой конфигурационного файла Zabbix агента, просьба поделиться информацией в комментариях.

Далее идем на наш Zabbix сервер и указываем ему FQDN и IP адрес нашего клиента:

В поле DNS name я пишу неполный FQDN наблюдаемого хоста, так как у меня корректно настроена сеть на Zabbix сервере:

Далее идем на вкладку Templates:

Без применения шаблона или шаблонов на конкретный хост никакие параметры подвергаться мониторингу не будут.

Возвращаемся на вкладку Hosts:

И видим, что индикатор ZBX зеленый – это значит, что Zabbix сервер и агент взаимодействуют между собой и так же появились Items и Triggers, потому что мы применили шаблон для OS Linux, т.е. какой-то набор параметров начал мониториться. Можно нажать на Items и Triggers и увидеть, что именно мы наблюдаем.

Можно в ручном режиме изменять или добавлять. К примеру Items:

Zabbix – это конструктор.

Итак, давайте добавим SSH шаблон и проверим, как он отработает.

Выключаем SSH руками на наблюдаемом сервере и смотрим на нашу dashboard на zabbix сервере:

Теперь попробуем установить zabbix агента на Windows Server 2012 R2.

Первое, что надо сделать это скачать агента с сайта Zabbix:

Далее распаковываем полученный архив и копируем путь до установочных файлов:

Открываем CMD от имени администратора изменяем путь до исполняемых файлов zabbix агента. Когда путь будет изменен выполняем команду:

Если выполнить команду в таком исполнении, то файл конфигурации должен находиться по пути C:\zabbix_agentd.conf

Интересная возможность:

Теперь, если посмотреть на оснастку управления службами, можно увидеть службу и для zabbix агента:

Кстати, Zabbix агент установиться без проблем даже если Windows Server установлен в режиме Core.

Теперь нужно создать конфигурационный файл для Zabbix агента и его можно будет запустить. Так как я устанавливал агента без указания дополнительных параметров для пути конфигурационного файла и не собираюсь это делать при запуске агента, мой конфигурационный файл будет располагаться по умолчанию в C:\zabbix_agentd.conf

Копируем конфигурационный файл по умолчанию:

И вносим точно такие же изменения, как для Linux клиента (смотри настройку Zabbix агента для Linux, которую мы делали ранее).

Не забываем переименовать конфигурационный файл. По умолчанию он имеет вид zabbix-agentd.win.conf:

Теперь можно запустить службу Zabbix агента и добавить Windows хост на Zabbix сервер.

Процедура добавления Windows клиента на Zabbix сервер точно такая же, как и для Linux клиента за исключением того, что здесь мы применяем шаблон именно для Windows OS.

Если на системе с Windows-агентом Zabbix включён Windows Firewall, то нужно добавить разрешающее правило для Zabbix агента – разрешить входящие подключения на порт TCP 10050

Настройка оповещений через e-mail и Telegram

Подошло время настроить систему уведомлений.

В Zabbix присутствуют несколько вариантов уведомлений это:

Не забываем о скриптах, которые могут выполняться в зависимости от определенного события:

Мы настроим уведомления через Email и Telegram

Переходим Administration –> Media Types (как на скриншоте выше) и нажимаем Email:

К примеру, для реально работающего почтового сервера на Zimbra:

Далее активируем Action:

И последний шаг - включаем e-mail уведомления для наших пользователей или группы пользователей:

Мой пользователь входит в группу администраторов, и дополнительных настроек на указанной вкладке я не делаю:

И пробуем протестировать придет письмо или нет.

Обычно я захожу на консоль виртуальной машины Linux сервер и останавливаю SSH службу:

И включаем обратно SSH:

Email уведомления у нас работают, но формат сообщения не очень удобен. Давайте попробуем поправить. Я оставляю минимум информации - на каком хосте произошло событие, и что именно “сломано”:

Сделаем еще одно улучшение. Уменьшим кол-во уведомлений на разные события - убираем галочки:

События класса Information and Warning мы всегда сможем увидеть на DashBoard

Чуть порассуждаем, прежде чем начать настраивать следующий вид уведомлений. Есть компании, которые свою IT инфраструктуру располагают на той же физической площадке, где и располагается офис компании, т.е. есть отдельная оборудованная серверная комната. Но есть компании, которые полностью “живут” в дата-центрах, и конечным работникам нужен только монитор, RDP или ICA терминал, мышка и клавиатура и “шнурок”, который позволит выходить в Интернет. Я работал в компаниях, как первого типа, так и второго, и везде внедрял Zabbix, но уведомления я организовывал по разному.

В первом сценарии, когда серверная комната находится на той же физической площадке, я настраивал как минимум E-mail уведомления и SMS уведомления, либо только SMS. Почему? Довольно часто я встречал проблемы с интернет провайдером - или полностью падал линк, или частично, к примеру HTTP и HTTPS работает, а вот другие протоколы уже нет. Таким образом, получается, что когда IT персонал находится вне офиса, о проблемах в нашей IT инфраструктуре через e-mail уведомления мы не узнаем. Но у нас есть SMS уведомления, которые нас благополучно уведомят о проблемах. Можно выставить расписание, как пример: e-mail уведомления, когда мы находимся в офисе, а SMS-уведомления, когда мы находимся вне офиса.

Стоит заменить, что в первом случае для SMS уведомлений я всегда использовал локальный SMS девайс – это был корпоративный телефон специально выделенный для Zabbix или USB модем. В случае использования внешнего интернет SMS шлюза и падения интернет-канала наш Zabbix будет “молчать” для нас.

Описывать то, как это сделать, я не буду, так как в интернатах “куча” инфы и для каждого GSM девайса нужен отдельный подход, универсальных “рецептов” нет.

Второй сценарий - вся IT инфраструктура находится в дата-центре. Сразу скажем, вряд ли упадет интернет канал, так как обычно у нормального дата-центра их целая “пачка”. За электричество мы тоже можем быть спокойны, в отличие от локальной серверной комнаты. За IT инфраструктуру отвечают инженеры из разных стран. И я долго думал, что же мне использовать для уведомлений в такой ситуации и решил остановить свой выбор на Telegram.

Как же я сделал выбор при поиске скрипта для Telegram? Зашел по ссылке и дал запрос:

Сам проект Zabbix-in-Telegram находится на GitHub . Там есть официальная инструкция, но я попытаюсь описать свой опыт.

Первое, что надо сделать - это зарегистрироваться в Telegram, поставить клиента Telegram и зайти в него.

Далее мы создадим бота в Telegram для нашего сервера мониторинга. Новые боты создаются через BotFather. Находим BotFather по имени :

Далее даем последовательно команды, т.е например пишем /start и нажимаем кнопку Send:

После того как вы зададите имя (на скриншоте выше это zabbix), нужно будет еще указать UserName для вашего бота:

Все, ваш бот создан и готов работать.

Далее переходим на сервер мониторинга и устанавливаем Python и PIP (что такое PIP можно почитать на WikiPedia ):

Далее переходим в директорию, из которой Zabbix сервер может запускать внешние скрипты (этот путь прописывается в конфигурационном файле Zabbix сервера /etc/zabbix/zabbix_server.conf):

И создаем два скрипта в этой директории:

  • zbxtg.py - скрипт используется для отправки сообщения конкретному человеку
  • zbxtg_settings.py - тут прописана вся "механика" как взаимодействовать с Telegram

Назначаем на скрипты владельца и группу zabbix. Таких разрешений должно хватить. Делаем скрипты исполняемыми:

Далее открываем по порядку ссылки zbxtg.py и zbxtg_settings.py , копируем содержимое соответствующих скриптов и вставляем содержимое во вновь созданные Python скрипты.

Далее настроим “главный” скрипт zbxtg_settings.py . Открываем его и вносим изменения:

Нужно изменить два параметра, второй параметр (стрелочка два) опциональный. Первый параметр – это tg_key (Token to access the HTTP API) формируется при создании бота:

Теперь можно проверить работоспособность (запускаем скрипт из каталога /usr/lib/zabbix/alertscripts):

UserName если забыли, можно посмотреть тут:

Теперь нужно настроить сервер мониторинга.

Создаем media types для Telegram:

Параметр --debug опциональный.

Далее можно создать отдельный Actions для каждого media types или использовать один.

Я использую один.

Так как я использую один Actions для всех media types, формат сообщений от zabbix у меня один :

Теперь нужно назначить вновь созданный media types (Telegram) нужному пользователю:

Теперь настроим, чтобы наш бот слал уведомления на чат группу.

Первое, что нужно сделать, это создать чат группу в Telegram и добавить нашего бота в эту чат группу.

Далее добавляем параметр –-group.:

Моя чат группа в Telegram называется ZabbixAivonin:

На этом настройка оповещение ботом чат группы закончена.

Работу так же можно протестировать из командной строки:

Прошу поделиться вашими идеями и реализациями мониторинга в вашей локальной сети.

📎📎📎📎📎📎📎📎📎📎