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

Введение

Тема повторных уведомлений хорошо освещена в официальной документации заббикс. В разделе про Эскалации рассказано, как управлять оповещениями, в том числе делать их повторными. Сам я без проблем разобрался на основе документации, но тем не менее для полноты картины настройки zabbix, подробно раскрою эту тему у себя на конкретном примере.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 8.
  2. Настройка CentOS 8.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 10, если предпочитаете его:

  1. Установка Debian 10.
  2. Базовая настройка Debian.
  3. Установка и настройка zabbix на debian.

Дальнейшие действия я буду выполнять в системе CentOS 7 и версии Zabbix сервера 3.4.6. Все описанное ниже будет актуально и для других систем и версий заббикса, так как разработчики стараются максимально сохранять совместимость между версиями.

Введение

Настройка Zabbix мониторинга, это самое главное что должен делать каждый нормальный системный администратор.

Главных причин по которым вам надо использовать мониторинг несколько:

  • Не возможно качественно поддерживать работоспособность сети без постоянного анализа её параметров;
  • Вы первый будете в курсе при возникновении проблемы на обслуживающем оборудовании.

Конечно, настройка системы мониторинга дело не простое и требует много времени при первоначальном внедрении. На практике я настраиваю систему мониторинга только клиентам которые заключают договор на абонентское обслуживание.

Иногда руководители просто не понимают в чем разница между приглашением специалиста по вызову и заключением договора на абонентское обслуживание.

Например, один клиент поймал шифровальщик файлов и восстановление данных ему обошлось в кругленькую сумму. Другой, который заключил договор на обслуживание (я успел на 80 % выполнить работы по защите баз данных и мониторинга сети) отделался легким испугом.

Главный принцип и подход разработчиков остается неизменным. В системе нет ничего лишнего и порой кажущееся усложнение на практике оказывается удобным механизмом упрощающим жизнь системному администратору контролирующему большой парк разнообразной техники.

Можно часами рассказывать о всех прелестях работы с этой системой, но не буду этого делать. Постараюсь внести понимание того из чего состоит и как работает эта система. Я посвятил много времени на изучение системы пока до меня не дошли элементарные вещи которые необходимо знать при работе с комплексом Zabbix.

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

Zabbix. Видео урок №4. Настройка email оповещений. Часть 2 (zabbix gmail)

In видео уроки, системы мониторинга, ubuntu, zabbix  With 24 comments  Предполагается что вы уже ознакомились с первой частью и вы уже можете отправлять сообщения из консоли вашего zabbix сервера. Если же вы еще настроили ssmtp, то читать дальше – нет смысла.Перейдем к описанию настроек. Имеется сервер с zabbix 2.0 установленный в virtualbox.

Два сетевых интерфейса, один настроен как NAT(для интернета), другой как virtualbox host-only(для подключения к серверу). Создан хост (мой компьютер) и к нему привязан шаблон с двумя элементами данных (ping и loss). Подробная инструкция о том, как создать шаблон с элементами данных описана в предыдущем уроке.

Здесь же я просто приведу несколько скриншотов Хост

Шаблон

Выберем элемент данных ping

В итоге должно получиться что-то в этом роде:

Жмем “вставить”. И сохраняем

Должно получиться следующее:

Если в колонке “ошибка” у вас горит красный квадрат, просто обновите страницу через секунд 5-10.

sudo vi /usr/local/etc/zabbix_server.conf

Находим там строчку AlertScriptsPath, раскомментируем ее или допишем ниже, указав нужный нам путь

После этого необходимо перезагрузить zabbix-сервер.

Создадим сам скрипт в указанной нами папке

sudo vi /home/cooper/zabbix/alertscripts/send_mail.sh

с следующим содержанием

#!/bin/bashto=$1subject=$2body=$3

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

в итоге в условиях должно получиться следующее:

и настроим операции

На этом настройка окончена. Для проверки можно отключить у себя на компьютере интерфейс virtialbox host-only секунд на 10-15, затем снова включить и проверить в Мониторинг->События

Если проверите указанный вами почтовый ящик, то должны обнаружить там два письма, о пропаже ping-a и о его восстановлении.

Рекомендуется смотреть в HD качестве

Share This:  

Шаг третий: получаем событие и отображаем уведомления

  • иконки, соответствующие критичностям триггеров;
  • звуковое сопровождение всплывающих уведомлений;
  • выполнение действия по нажатию на уведомление (SSH-логин, открытие ссылки, заведение тикета о проблеме и т. д.).

terminal-notifier

terminal-notifier

  • можно устанавливать разные иконки для разных критичностей;
  • можно формировать ссылки на графики в Zabbix и открывать их по клику на уведомление;
  • можно реализовать открытие SSH-ссылок: увидели нотификацию -> кликнули -> сразу зашли на хост.

Growl

Для включения установите growl_enabled = True в settings.cfg.

  • возможно, у вас приложение уже установлено;
  • можно выбрать разные иконки под разные критичности;
  • так же, как и в terminal-notifier, можно настроить действия по нажатию на уведомления.

Проверка оповещений в Zabbix

Частенько возникают всякие нюансы в механизме отправки уведомлений в Zabbix. К сожалению, в самом заббиксе нет удобного средства мониторинга отправки уведомлений. И если возникают какие-то проблемы, не всегда бывает просто определить, где ошибка. Я рекомендую следующую последовательность действий при разборе ошибок отправки уведомлений zabbix с авторизацией по smtp. Без авторизации чаще всего все в порядке.

  1. Открываем dashboard и смотрим на сработавший триггер. В столбце Actions должны быть цифра 1, означающая, что уведомление было отправлено. При наведении мышки на эту цифру появится дополнительная информация.
  2. Затем идем в раздел Administration -> Notifications и смотрим на счетчик email уведомлений. Он должен увеличиваться при каждом новом срабатывании тригера.
  3. Если эти два условия выполняются, значит zabbix нормально отрабатывает событие отправки уведомления на почту. Если же нет, то нужно проверять настройки самого заббикса касательно отправки сообщений. Аккуратно проверить все разделы, которые имеют к этому отношения.
  4. Дальше нужно смотреть почтовый лог — /var/log/maillog. Там должны быть записи об отправке сообщения. Это будут либо успешные отправки, либо сообщения об ошибках. Если есть ошибки, то нужно разбираться с почтовым клиентом, в котором настроена авторизация smtp и скриптом отправки сообщений.
  5. Если все в порядке, а уведомления все равно не приходят, то можно попробовать сменить почтовый сервер. Идеальным был бы вариант почтового сервера, к логам которого у вас есть доступ. Так проще всего отладить работу, так как если в скрипте отправки есть какая-то ошибка, которую не видно на клиенте, ее можно заметить на сервере.

E-mail оповещения ZABBIX 2

Ищем папку для скриптов. Для этого смотрим файл конфигурации zabbix-сервера:
root@debian7:~# nano /usr/local/etc/zabbix_server.conf

Нам нужна опция «AlertScriptsPath«. Видим закомментированную строчку:# AlertScriptsPath=${datadir}/zabbix/alertscripts

Необходимо определить папку, в которой будут храниться скрипты и назначить её параметру «AlertScriptsPath«:AlertScriptsPath=/usr/local/bin/alertscripts

Поскольку такой папки изначально не было, надо её создать:
root@debian7:~# mkdir /usr/local/bin/alertscripts

Вставляем в него следующий текст:#!/bin/sh

Небольшая заметка: я не являюсь автором этого скрипта, он был взят отсюда, но надо сказать, что в исходном виде он работать не будет, т.к. параметры «$2» и «$3» передаются без кавычек. Поскольку в этих параметрах передается тема и текст сообщения, а они обычно всегда идут с пробелами, скрипт у вас отрабатывать не будет. Такая же проблема встретилась авторам этого поста.

Вернемся в корневую директорию:
root@debian7:/usr/local/bin/alertscripts# cd /root/

Небольшая подсказка: вводить аргументы для проверки работы скрипта нужно точно в таком же порядке, в каком они стоят в самом скрипте (см. последнюю строчку), то есть так — адрес отправителя, адрес получателя, тема сообщения, текст сообщения, адрес smtp-сервера с портом, имя учетной записи для авторизации, пароль.

Получаем ошибку:

Дело в том, что я использую mail.ru и с недавнего времени они запретили использовать незащищенные соединения. Произошло это примерно с сентября 2014 года и заметил это я конечно же на своих продакшн-серверах, поскольку они тоже используют ящики на mail.ru. Отлично, раз так, придется немного изменить скрипт, добавив в него в самом конце «-o tls=yes«. В итоге весь скрипт будет выглядеть следующим образом:#!/bin/sh

Однако и тут получим ошибку:

И снова получаем ошибку:

В топике «invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 332» —
есть решение проблемы. Оказывается это баг и он даже есть на багрепортах — «Debian Bug report logs — #679911«.
Надо сказать, что и два года назад, когда я впервые ставил ZABBIX, эта ошибка тоже была и кажется ситуация за это время не изменилась. Придется исправлять вручную.

Открываем файл:
root@debian7:~# nano /usr/share/perl5/IO/Socket/SSL.pm

Ищем строчкуm{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1?))$}i
и заменяем наm{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1?))}i
Сохраняем изменения.

Пробуем после этого отправить сообщение:

Все получилось! Теперь можно быть уверенным в корректной работе скрипта, идем дальше.

Переходим в веб интерфейс, идем в «Администрирование/Способы оповещений», создаем новый способ оповещения:

Теперь необходимо назначить пользователю способ оповещения. Для этого переходим в «Администрирование/Пользователи», выбираем нужного пользователя и переходим во вкладку «Оповещения»:

Настроим действие на срабатывание триггера — «Настройка/Действия» — создать действие. В сообщение по умолчанию я использую следующий шаблон:

<html><body><font size=»4″ color=»black» face=»Arial»><B>Name:</B> {HOST.NAME}<BR><B>Trigger:</B>{TRIGGER.NAME}<BR><B>Status:</B> {TRIGGER.STATUS}<BR><BR>

<B>Last Value:</B> {{HOSTNAME}:{TRIGGER.KEY}.last(0)}<BR></font></body></html>

Полные настройки выглядят так:

Переходим на вкладку «Условие», тут оставляем как есть.

Далее надо настроить операции — вкладка «Операции» — «Новый». Нас интересует отправка уведомлений всего одному пользователю, поэтому настройки для группы пользователей оставляем как есть. Остальные настройки будут выглядеть как на скриншоте. Не забываем нажать «Добавить», но не в самом низу, а сразу под «Условия».

В конечном счете все будет выглядеть примерно так:

На этом настройка уведомлений завершена. Позже приложу примеры работы.

Использованные источники, кроме упомянутых выше:

comments powered by HyperComments

Проверка оповещений в Zabbix

Частенько возникают всякие нюансы в механизме отправки уведомлений в Zabbix. К сожалению, в самом заббиксе нет удобного средства мониторинга отправки уведомлений. И если возникают какие-то проблемы, не всегда бывает просто определить, где ошибка. Я рекомендую следующую последовательность действий при разборе ошибок отправки уведомлений zabbix с авторизацией по smtp. Без авторизации чаще всего все в порядке.

  1. Открываем dashboard и смотрим на сработавший триггер. В столбце Actions должны быть цифра 1, означающая, что уведомление было отправлено. При наведении мышки на эту цифру появится дополнительная информация. 
  2. Затем идем в раздел Administration -> Notifications и смотрим на счетчик email уведомлений. Он должен увеличиваться при каждом новом срабатывании тригера. 
  3. Если эти два условия выполняются, значит zabbix нормально отрабатывает событие отправки уведомления на почту. Если же нет, то нужно проверять настройки самого заббикса касательно отправки сообщений. Аккуратно проверить все разделы, которые имеют к этому отношения.
  4. Дальше нужно смотреть почтовый лог — /var/log/maillog. Там должны быть записи об отправке сообщения. Это будут либо успешные отправки, либо сообщения об ошибках. Если есть ошибки, то нужно разбираться с почтовым клиентом, в котором настроена авторизация smtp и скриптом отправки сообщений.
  5. Если все в порядке, а уведомления все равно не приходят, то можно попробовать сменить почтовый сервер. Идеальным был бы вариант почтового сервера, к логам которого у вас есть доступ. Так проще всего отладить работу, так как если в скрипте отправки есть какая-то ошибка, которую не видно на клиенте, ее можно заметить на сервере.

Настройка уведомлений Zabbix через Email.

Настройка почтового клиента.

1. Для возможности отправки сообщений на почту адресата нам необходимо скачать, установить и настроить smtp клиент.

В открывшемся файле добавляем следующие строки, отдельно пояснять думаю нет смысла. Почта для исходящих сообщений на gmail от имени Zabbix.

Настройка zabbix для отправки уведомлений на почту Email.

3. Далее идем “Настройка – Действия – Создать действия”. 3.1 На вкладке Действие задаем Имя. 3.2. Переходим на вкладку “Операции” и Создаем новый шаг.

Длительность шага операции по умолчанию:Отправлять пользователям:Отправлять только через:Добавить.

На вкладке “Операции восстановления” настраиваем аналогично предыдущему пункту.

Теперь проверяем – отключаем порт , который стоит на мониторинге, ждем оповещения на почту. Также можно настроить уведомления на Telegram.

источник

Триггеры

Это логические выражения со значениями FALSE, TRUE и UNKNOWN, которые используются для обработки данных. Их можно создать вручную. Перед использованием триггеры возможно протестировать на произвольных значениях.

У каждого триггера существует уровень серьезности угрозы, который маркируется цветом и передается звуковым оповещением в веб-интерфейсе.

  • Не классифицировано (Not classified) — серый.
  • Информация (Information) — светло-синий.
  • Предупреждение (Warning) — жёлтый.
  • Средняя (Average) — оранжевый.
  • Высокая (High) — светло-красный.
  • Чрезвычайная (Disaster) — красный.

Некоторые функции триггеров

  • abschange — абсолютная разница между последним и предпоследним значением (0 — значения равны, 1 — не равны).
  • avg — среднее значение за определенный интервал в секундах или количество отсчетов.
  • delta — разность между максимумом и минимумом с определенным интервалом или количеством отсчетов.
  • change — разница между последним и предпоследним значением.
  • count — количество отсчетов, удовлетворяющих критерию.
  • date — дата.
  • dayofweek — день недели от 1 до 7.
  • diff — у параметра есть значения, где 0 — последнее и предпоследнее значения равны, 1 — различаются.
  • last — любое (с конца) значение элемента данных.
  • max\min — максимум и минимум значений за указанные интервалы или отсчеты.
  • now — время в формате UNIX.
  • prev — предпоследнее значение.
  • sum — сумма значений за указанный интервал или количество отсчетов.
  • time — текущее время в формате HHMMSS.

Прогнозирование

Триггеры обладают еще одной важной функцией для мониторинга — прогнозированием. Она предугадывает возможные значения и время их возникновения

Прогноз составляется на основе ранее собранных данных.

Анализируя их, триггер выявляет будущие проблемы, предупреждает администратора о возникшей вероятности. Это дает возможность предотвратить пики нагрузки на оборудование или заканчивающееся место на жестком диске.

Функционал прогнозирования добавили с обновлением системы 3.0, вышедшим в феврале 2016 года.

Разные оповещения о разных событиях

Далее показываю на примере, как можно слать уведомления в личку и в группу, одновременно и по отдельности, в зависимости от настроенных условий. По каким-то действиям пишем в личку, по каким-то в группу. Достаточно просто сделать 2 отдельных пользователя для этого. Одному настроить в качестве способа оповещений личные сообщения, а второму указать группу. Затем в действиях, указывая, какому пользователю отправлять сообщение, выбирать способы уведомлений.

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

Если учетка техническая, только для оповещений, то доступ к веб интерфейсу можно не делать. Даем ей права доступа на чтение только к группе Zabbix servers, так как будем слать уведомления только по триггерам этого хоста.

Теперь добавляем пользователя и помещаем его в эту группу.

Добавляем ему telegram группу в способы оповещения. Добавлять можно не по id, а по имени группы, так удобнее.

Так же добавим персональные уведомления telegram пользователю admin. Здесь уже указываем id учетной записи .

Настраиваем действия. В данном примере я делаю отправку всех уведомлений пользователю Admin, у которого в способах оповещений указана личка telegram. А сообщения по конкретному триггеру Zabbix server: Zabbix agent is not available (for 3m) пользователю tg-group, у которого указана группа telegram.

Думаю, идею вы поняли. Можно очень гибко настроить уведомления в Zabbix и это очень круто и удобно. И работает из коробки. Проверим теперь, как будут выглядеть оповещения в telegram. Останавливаем на сервере zabbix-agent и ждем работы триггера с оповещениями.

Проверяем телеграм и видим там одинаковые уведомления и в группе, и в личке.

После обновления проблемы или закрытия, придут свои оповещения.

При этом, если сработает любой другой триггер, уведомление придет только в личку. В группу ничего не будет отправлено.

Шаблоны и графики в уведомлениях можете настраивать по своему вкусу

Обращаю внимание на графики. Они приходят в отдельных сообщениях

Далее я покажу еще один скрипт для уведомлений в telegram. Он немного по-другому работает — прикрепляет сразу ссылки на историю и триггер, а так же вкладывает графики в то же сообщение, что и текст.

Обращаю внимание. Для того, чтобы отправлялся график в telegram, он должен существовать в системе мониторинга

Если его нет, то вы будете получать ошибку, вместо графика. Но текстовое оповещение будет приходить нормально.

Если у вас возникают ошибки с отправкой графиков, то проверить их работу можно в консоли. Вот пример запроса.

# sudo -u zabbix ./zbxtg.py zeroxzed test "$(echo -e 'zbxtg;graphs: \nzbxtg;graphs_period=3600\nzbxtg;itemid:23301\nzbxtg;title:ololo')"
zbxtg.py: Bad Request: PHOTO_INVALID_DIMENSIONS
zbxtg.py: Zabbix user couldn't get graph (probably has no rights to get data from host), check script manually, see https://github.com/ableev/Zabbix-in-Telegram/wiki/Graphs

Это нормальный вывод ошибки, которая указывает на то, что выбран itemid 23301, которого либо не существует, либо к нему нет доступа, либо для него нет графика. Если выбрать правильный itemid, то после выполнения скрипта никакого вывода не будет, а в телеграм будет отправлен выбранный график.

Как научить Zabbix отправлять уведомления о проблемах прямо на рабочий стол +57

  • 01.08.18 06:01


ableev

#418907

Хабрахабр

8700

Системное администрирование, Настройка Linux, Блог компании Badoo

Картинка: источник
Привет, Хабр! Меня зовут Илья Аблеев, я работаю в отделе мониторинга Badoo.
Можно долго холиварить на тему того, какая система мониторинга круче. Основным инструментом для реакции на проблемы в Badoo является Zabbix, и мы неоднократно делились опытом его кастомизации.
«Из коробки» узнавать о новых проблемах можно либо через веб-интерфейс, либо по почте/SMS. Это хорошо работает и до определённого момента нас устраивали эти способы.
На сегодняшний день в нашей системе несколько инстансов сервера, тысячи хостов, сотни тысяч проверок и примерно столько же триггеров, на которые нужно как можно более оперативно реагировать. После ряда инцидентов, когда только на обнаружение проблемы мы тратили до десяти минут (что совершенно недопустимо), мы осознали, что нам жизненно необходимы другие способы уведомления о проблемах. Тогда, возможно, наша реакция была бы быстрее.
Оптимальным решением, на наш взгляд, был бы вывод важных уведомлений поверх всех окон (браузеров, чатов, консолей). В этой статье речь пойдёт о том, как мы допилили Zabbix, научив отправлять их прямо на рабочий стол.
Кому подойдёт данное решение:

  • дежурным администраторам, которые не только круглосуточно смотрят в монитор, но и занимаются решением других задач;
  • всем остальным администраторам, которым не нравится просматривать простыню PROBLEM и OK`ов в почте или SMS, но которые хотят своевременно узнавать о критичных проблемах.
  1. Zabbix отправляет алерт на какое-то событие.
  2. Скрипт-отправщик на сервере отправляет данные клиенту на десктоп по UDP.
  3. Скрипт-получатель принимает уведомление, и инициирует появление всплывающего сообщения посредством дополнительного приложения.

Оповещения в telegram со ссылками на график и триггер

Расскажу про еще один интересный скрипт для отправки красивых и функциональных оповещений в telegram, в котором помимо всего прочего сразу же публикуются ссылки на триггер, график и некоторые другие полезности. Вот он на гитхабе — https://github.com/xxsokolov/Zabbix-Notification-Telegram. Инструкция от автора в некоторых местах не очень понятная, так что я немного повозился, прежде чем все получилось. В основном c xml были проблемы, но обо всем по порядку.

Клонируем к себе репозиторий.

# cd ~
# git clone https://github.com/xxsokolov/Zabbix-Notification-Telegram

Копируем в /usr/lib/zabbix/alertscripts папку zbxTelegram_files и файлы _config.yml, zbxTelegram.py, .requirements и zbxTelegram_config.example.py. Последний переименовываем в zbxTelegram_config.py.

Делаем пользователя zabbix владельцем этих файлов и разрешаем исполнение скрипта.

# chown -R zabbix. /usr/lib/zabbix/alertscripts
# chmod +x zbxTelegram.py

Автор скрипта предлагает запускать его в виртуальном окружении, поэтому поставим пакет virtualenv.

# dnf install virtualenv

Переходим в /usr/lib/zabbix/alertscripts, создаем виртуальное окружение и активируем его.

# cd /usr/lib/zabbix/alertscripts
# virtualenv venv --python=python3
# source venv/bin/activate

Ставим зависимости и деактивируем окружение.

# pip install -r .requirements
# deactivate

Редактируем конфигурационный файл zbxTelegram_config.py. Список параметров, которые нужно поменять.

tg_proxy = False
tg_token = '1393668911:AFGHTRDVdfJ28R-wxKfvH1RTR6-vdNw'
zabbix_api_url = 'http://10.20.1.23/zabbix/'
zabbix_api_login = 'Admin'
zabbix_api_pass = 'zabbix'

В url на конце должен обязательно быть слеш. Дальше делаем все то же самое, что и ранее. Идем в Способы оповещений и добавляем новый тип, где в качестве скрипта указываем zbxTelegram.py.

Шаблоны тем сообщений можете настроить как вам больше нравится. Автор предлагает такие:

{Problem} {TRIGGER.SEVERITY} `TRIGGER`.`SEVERITY`: {EVENT.NAME}
{Resolved} {TRIGGER.SEVERITY} `TRIGGER`.`SEVERITY` {EVENT.NAME}
{Update} {TRIGGER.SEVERITY} `TRIGGER`.`SEVERITY` {EVENT.NAME}
  • {Problem} — мапинг значений Problem\Resolved\Update в emoji (config: zabbix_status_emoji_map)
  • `TRIGGER`.`SEVERITY` — мапинг значений Severity в emoji (config: zabbix_status_emoji_map)

В поле Сообщение копируется xml конфиг полностью, который приведен в файле actions.example. Копируйте его 1 в 1.

Во все шаблоны можете его вставить без изменений. Я немного попытался его править, но каждый раз потом получал ошибку парсинга xml. В итоге бросил. Автор перечисляет значение каждого парметра, так что можете попытаться настроишь шаблоны на свой вкус.

  • <graphs></graphs> — прикреплять график (True\False)
  • <graphlinks>True</graphlinks> — прикрепить ссылку url на History (True\False)
  • <triggerlinks>True</triggerlinks> — прикрепить ссылку url из триггера (True\False)
  • <tag>True</tag> — прикрепить теги (True\False)
  • <graphs_period></graphs_period> — период графика в секундах
  • <itemid></itemid> — передача itemid {ITEM.ID1}
  • <triggerid></triggerid> — передача triggerid {TRIGGER.ID}
  • <eventid></eventid>- передача eventid {EVENT.ID}
  • <title></title> — заголовок графика {HOST.HOST} — {EVENT.NAME}
  • <triggerurl></triggerurl> — передача url из триггера {TRIGGER.URL}
  • <tags></tags> — передача списка тэгов из триггера {EVENT.TAGS}

Проверим работу уведомлений. Сначала через консоль.

# ./zbxTelegram.py @serveradmin_zabbix_group test test

В данном случае слова test менять нельзя. Именно они инициируют отправку тестового сообщения. Вот как оно выглядит.

То же самое можно сделать через web интерфейс.

Если все в порядке, подключайте данный тип уведомлений к пользователю, указывайте его в действиях и проверяйте. Уже не буду это подробоно описывать, так как устал. Материал и так очень объемный получился. В итоге уведомления в телеграме от этого скрипта будут выглядеть вот так:

Текст более информативен по дефолту и выглядит приятнее, графики в одном сообщении с текстом. В последней строке есть готовые ссылки на триггер, историю по итему. Только имейте ввиду, что url для ссылок берется из конфига и если у вас там указан localhost, то только с него и можно будет их посмотреть. Так что указывайте внешний, а не локальный url. Из минусов отмечу тоненькие графики без заливки. В скрипте от ableev они более наглядные.

Создание бота в telegram

Первым делом создадим бота, через которого будем слать оповещения из заббикса. Для этого добавляем себе в контакты @BotFather и пишем ему сначала /start, потом /newbot.

Мы создали бота для оповещений и получили для него token, который нам понадобится далее. Теперь нужно добавить в свой список контактов созданного бота. Для этого найдите его по имени. В моем случае имя @serveradminru_bot.

Теперь проверим, как работает отправка уведомлений через нашего бота. Для этого в консоли сервера набираем примерно такую команду:

# curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"210806260","text":"Проверяю отправку оповещений ботом"}' "https://api.telegram.org/bot1393668911:AAHDfgghTHgfhdfyX28R-wxKfvH1WR6-vdNw/sendMessage"

Бот пришлет оповещение.

В моем запросе изменяемые данные следующие:

210806260 id моего аккаунта. Чтобы его узнать, добавьте бота @my_id_bot и напишите ему /start
Проверяю работу бота Текст сообщения
bot1393668911:AAHDfgghTHgfhdfyX28R-wxKfvH1WR6-vdNw Слово bot и дальше token бота. Пишется все в одно слово.

Если все в порядке, двигаемся дальше. Это самая простая часть, тут не должно быть затруднений.

Настройка ssmtp для авторизации на почтовом сервере

Для отправки уведомлений на почту с помощью smtp авторизации нам понадобится почтовый клиент ssmtp. Установим его:

Если у вас еще не подключен репозиторий Epel, сделайте это. Пакет устанавливается оттуда. Теперь нужно настроить почтовый клиент на отправку писем через указанную учетную запись. Для этого открываем файл /etc/ssmtp/ssmtp.conf и приводим его к следующему виду для отправки через почтовый сервер Яндекса:

Если вы хотите использовать учетную запись gmail то настройки ssmtp должны быть следующие:

И редактируем там же файл revaliases, добавляя одну строку для яндекса:

Теперь проверим работу почтового клиента. Отправляем через консоль тестовое письмо:

Все в порядке, письмо улетело. Если что, логи работы почтового клиента можно посмотреть в файле /var/log/maillog.

Проверка оповещений в Zabbix

Частенько возникают всякие нюансы в механизме отправки уведомлений в Zabbix. К сожалению, в самом заббиксе нет удобного средства мониторинга отправки уведомлений. И если возникают какие-то проблемы, не всегда бывает просто определить, где ошибка. Я рекомендую следующую последовательность действий при разборе ошибок отправки уведомлений zabbix с авторизацией по smtp. Без авторизации чаще всего все в порядке.

  1. Открываем dashboard и смотрим на сработавший триггер. В столбце Actions должны быть цифра 1, означающая, что уведомление было отправлено. При наведении мышки на эту цифру появится дополнительная информация.
  2. Затем идем в раздел Administration -> Notifications и смотрим на счетчик email уведомлений. Он должен увеличиваться при каждом новом срабатывании тригера.
  3. Если эти два условия выполняются, значит zabbix нормально отрабатывает событие отправки уведомления на почту. Если же нет, то нужно проверять настройки самого заббикса касательно отправки сообщений. Аккуратно проверить все разделы, которые имеют к этому отношения.
  4. Дальше нужно смотреть почтовый лог — /var/log/maillog. Там должны быть записи об отправке сообщения. Это будут либо успешные отправки, либо сообщения об ошибках. Если есть ошибки, то нужно разбираться с почтовым клиентом, в котором настроена авторизация smtp и скриптом отправки сообщений.
  5. Если все в порядке, а уведомления все равно не приходят, то можно попробовать сменить почтовый сервер. Идеальным был бы вариант почтового сервера, к логам которого у вас есть доступ. Так проще всего отладить работу, так как если в скрипте отправки есть какая-то ошибка, которую не видно на клиенте, ее можно заметить на сервере.

Простое описание работы Zabbix

Система Zabbix это клиент-серверное решение. На всех контролируемых узлах должен быть установлен клиент (агент) который собирает данные для мониторинга узла.

Когда начнете изучать вы поймете что если описывать все доскональна, то статья получиться очень большая и нудная. Надеюсь из ниже сказанного основную суть вы поймёте.

Порты работы

Один из важных моментов который надо учитывать при настройке это знать на каких портах по умолчанию работает Zabbix.

Порта всего два:

  1. 10051 — по нему сервер получает данные от активных агентов. Порт должен быть открыть на сервере;
  2. 10050 — по нему сервер опрашивает клиентов и забирает данные. Порт должен быть открыть на клиенте.

Клиенты

Клиент  может быть двух видов:

  • Обычный агент — сервер получает доступ к узлу мониторинга и забирает данные;
  • Активный агент — клиент сам отправляет данные серверу.

Далеко не сразу я смог разобраться в нюансах использования активного агента. Из статьи вы узнаете как правильно пользоваться мониторингом компьютеров которые не имеют статического IP адреса.

Шаблоны

Шаблоны это основа системы Zabbix. Разработчик добавил большое количество шаблонов для разных систем и настолько грамотно и взвешено подошел к их разработке, что они подходят под основные требования мониторинга. Кроме того, на просторах интернета вы можете встретить огромное количество шаблонов созданных пользователями. Для использования сторонних шаблонов вам достаточно загрузить их в свою систему и произвести минимальные настройки.

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

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

Для мониторинга кроме стандартных параметров существуют и те что невозможно указать в жестко. Например, количество и буквы разделов жестких дисков. Для этого в шаблоне присутствует раздел правила обнаружения в котором и указаны правила обнаружения жестких дисков, сетевых интерфейсов и служб (для Windows систем).

Триггеры

Триггеры это то на чем держится и в чем заключается вся прелесть мониторинга

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

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

Заключение

Ситуаций, где полезно использование повторяющихся уведомлений очень много. К примеру, у меня есть материал, где описан мониторинг делегирования домена или ssl сертификата. На такие события не требуется мгновенная реакция. Она может последовать и через несколько дней. Но когда откладываешь действие на несколько дней вперед, очень легко забыть о нем. Тут придут на помощь ежедневные напоминания о проблеме. Я их настроил вот так:

Если вы настроили мониторинг бэкапов, который выполняется ночью, то его тоже не обязательно чинить в ту же минуту, можно отложить на вечернее время. Чтобы не забыть, можно настроить уведомления раз в 2 часа. И так далее. Смысл, я думаю, понятен.

Еще раз обращаю внимание на ссылку в самом начале на документацию заббикса. Там описаны более замысловатые, но тем не менее простые в настройке последовательности отправки уведомлений

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: