Примеры элементов данных для Zabbix

В этой статье я приведу несколько примеров элементов данных для Zabbix агента и сервера.

Вот пример подсчета количества активных процессов (Тип элемента — Zabbix агент, таким образом я часто считаю количество процессов nginx, apache2, sshd, named, radiusd и т.д., а для значения 0 можно сделать триггер, что процесс не работает):

Читать далее «Примеры элементов данных для Zabbix»

Установка Zabbix Server 3.4 в Ubuntu 16.04

На тесте установлю Zabbix Server 3.4 в Ubuntu Server 16.04.

Первым делом установим репозиторий с версией Zabbix 3.4 для Ubuntu 16.04, так как в официальном репозитории Ubuntu доступна старая версия:

sudo wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
sudo apt update

Теперь выполним команду установки Zabbix Server и Zabbix Agent:

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

Подключимся к MySQL:

mysql -uroot -p

Создадим базу данных и пользователя:

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'PASSWORD';
quit;

Импортирую таблицы в созданную базу:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

Откроем файл конфигурации в текстовом редакторе и где «DBPassword» укажем пароль к базе данных:

sudo nano /etc/zabbix/zabbix_server.conf

Перезапустим Zabbix Server и Zabbix Agent, а также добавим их в автозагрузку:

systemctl restart zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent

Перезапустить еще можно так:

sudo service zabbix-server start

В php.ini укажем date.timezone, например Europe/Kiev, или раскомментируем в /etc/zabbix/apache.conf если он будет копироваться в конфигурацию веб сервера:

sudo cp /etc/zabbix/apache.conf /etc/apache2/sites-enabled/zabbix.conf

Либо сделаем ссылку куда нам нужно:

sudo ln -s /usr/share/zabbix/ /var/www/html/

Открываем веб интерфейс по адресу http://SERVER/zabbix/ и следуем подсказкам для дальнейшей установки.
По умолчанию имя пользователя для входа через веб-интерфейс — admin, пароль — zabbix.

Смотрите также мою статью:
Установка и настройка Zabbix Server в Linux Ubuntu

Мониторинг web сайта в Zabbix

Приведу пример настройки мониторинга web сайта в Zabbix:

1) Выберем или добавим узел сети за которым будем наблюдать.

2) Добавим узлу сети «Веб-сценарий», указав в первой вкладке:
Имя: любое
Агент: например Internet Explorer 11.0
во вкладке «Шаги» добавим шаг:
Имя: любое
URL: например http://example.com
Требуемая строка: любая строка которая присутствует на сайте
Требуемые коды состояния: 200

3) Добавим график для созданного «Веб-сценария», чтобы видеть скорость загрузки, выбрав Download speed for scenario «example.com check».

4) Добавим триггер который сработает после 3 неудачных попыток доступа к сайту:
Имя: любое, например «Сайт example.com недоступен»
Важность: любая
Выражение:

{example.com:web.test.fail[example.com check].last(#3)}<>0

Готово.

Мониторинг nf_conntrack в Zabbix

Исправлял однажды ошибку на одном сервере, читайте об этом мою статью Решение ошибки «nf_conntrack: table full, dropping packet»
И возникла идея контролировать nf_conntrack в Zabbix.

Читать далее «Мониторинг nf_conntrack в Zabbix»

Мониторинг Linux ISG в Zabbix

Сегодня захотелось сделать мониторинг Linux ISG сессий в Zabbix.

Введя команду на одном из серверов:

/opt/ISG/bin/ISG.pl show_count

Увидел следующее:

Approved sessions count: 2021
Unapproved sessions count: 2

Zabbix агент на сервере уже был установлен, поэтому открыл его конфигурационный файл (в редакторе nano клавиши Ctrl+X для выхода, а y/n для сохранения или отмены изменений):

nano /etc/zabbix/zabbix_agentd.conf

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

UserParameter=isg.approved, /opt/ISG/bin/ISG.pl show_count | grep "Approved sessions count:" | awk '{print $4}'
UserParameter=isg.unapproved, /opt/ISG/bin/ISG.pl show_count | grep "Unapproved sessions count:" | awk '{print $4}'

Разрешим работу Zabbix агента под root пользователем указав:

AllowRoot=1

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

sudo /etc/init.d/zabbix-agent restart

На Zabbix сервере создадим шаблон ISG, добавим в него элементы данных, указав тип — Zabbix агент, а ключи: isg.approved, isg.unapproved.
Создадим графики для созданных элементов данных.

Применим шаблон к нужным узлам сети.

Готово.

Мониторинг Postfix в Zabbix

Сперва выполним настройку Zabbix агента.

Создадим файл (в редакторе nano клавиши Ctrl+X для выхода, а y/n для сохранения или отмены изменений):

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

Добавим в него:

UserParameter=postfix.maildrop, find /var/spool/postfix/maildrop -type f | wc -l
UserParameter=postfix.deferred, find /var/spool/postfix/deferred -type f | wc -l
UserParameter=postfix.incoming, find /var/spool/postfix/incoming -type f | wc -l
UserParameter=postfix.active, find /var/spool/postfix/active -type f | wc -l
UserParameter=postfix.queue, mailq | grep -v "Mail queue is empty" | grep -c '^[0-9A-Z]'

Либо можно просто добавить строки выше в файл конфигурации Zabbix агента.

Также откроем файл конфигурации Zabbix агента:

nano /etc/zabbix/zabbix_agentd.conf

Разрешим работу Zabbix агента под root пользователем указав:

AllowRoot=1

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

sudo /etc/init.d/zabbix-agent restart

Теперь перейдем к Zabbix серверу.
Создадим шаблон Postfix, добавим в него элементы данных, указав тип — Zabbix агент, а ключи: postfix.maildrop, postfix.deferred, postfix.incoming, postfix.active, postfix.queue.
Создадим графики для созданных элементов данных.

Также можно создать элемент данных считающий количество процессов Postfix, указав тип — Zabbix агент, а ключ:

proc.num[,postfix]

Также создадим триггер сообщающий когда процессов 0.

Скачать готовый шаблон можно тут — Zabbix шаблон для Postfix

Оповещения Zabbix по телефону через Asterisk

Однажды ночью на станции отключились кондиционеры и начала подниматься температура, естественно мне пришли email уведомления на телефон, но так как была ночь, увидел я их только утром, поэтому понадобилось для таких экстренных случаев быстро сделать возможность уведомлений звонком на телефон.

Наведу пример варианта оповещений Zabbix используя телефонный вызов через Asterisk.

У Asterisk должен быть загружен модуль, для этого откроем файл конфигурации модулей, например в редакторе nano (Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/asterisk/modules.conf

Читать далее «Оповещения Zabbix по телефону через Asterisk»

Примеры триггеров для Zabbix

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

Допустим есть элементы данных, исходя из них будем создавать триггеры.

Пример триггера сообщающего что трафик на порту коммутатора больше допустимого:

Читать далее «Примеры триггеров для Zabbix»

Мониторинг размера MySQL базы или таблицы в Zabbix

Чтобы увидеть таблицу со списком баз данных и их размером в мегабайтах можно выполнить SQL запрос:

Читать далее «Мониторинг размера MySQL базы или таблицы в Zabbix»

Мониторинг Samba в Zabbix

Приведу пример наблюдения за количеством запущенных Samba процессов, а также создания триггера сообщающего когда нет запущенных процессов.
В системе с Samba должен быть установлен Zabbix-агент.
Смотрите мои популярные статьи о Zabbix.

Создадим шаблон, например с именем «Template Service Samba» и добавим в него следующий элемент данных:

Имя: Количество процессов nmbd
Тип: Zabbix агент
Ключ: proc.num[nmbd]

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

proc.mem[nmbd,,sum]

А также добавим для них графики.

Теперь добавим для каждого процесса триггер, чтобы видеть когда процесс не запущен:

Имя: Не работает nmbd на {HOST.NAME}
Выражение: {Template Service Samba:proc.num[nmbd].max(1)}<1

Все.