При настройке fping   в zabbix можем получить следующую ошибку

fping failed: «/usr/local/sbin/fping: can’t create raw socket (must run as root?) : Operation not permitted»

root@zabbix# chown root:zabbix /usr/bin/fping
root@zabbix# chmod 710 /usr/bin/fping
root@zabbix# chmod ug+s /usr/bin/fping

установка битов SUID или SGID позволит пользователям запускать исполняемые файлы от имени владельца (или группы) запускаемого файла.

Мы установили SUID на исполняемый файл /usr/bin/fping, то обычный пользователь сможет использовать эту команду без использования sudo, так, что она будет выполнятся от имени пользователя root.

Восьмеричные значения для SUID и SGID — 4000 и 2000.
Символьные: u+s и g+s.

  1. Мониторинг web ресурсов

4.1.1. Создаем Host group для более удобного наблюдения за сайтами (Configuration → Host groups → Create hostgroup)

В Group name пишем Web monitoring.
4.1.2.        Добавляем Host или Сайт в Zabbix (Configuration → Hosts → Create hosts) Вкладка Host — Указываем Host name и DNS name, выбираем нужную Group.
4.1.3.        Добавляем элементы данных в наш сайт (Configuration → Hosts → Applications → Create application)
В Name пишем имя сайта – www.site.ru
4.1.4.        Создадим сценарий для сайта (Configuration → Web → Create scenario)
В Application выбираем наш сайт
В Name – site
Update time – 60
Agent – Internet Explorer 9.0

В вкладке Step пропишем, что проверять.

Required status codes – 200 (Означает, что сайт доступен)
4.1.5. Возвращаемся к нашему хосту и сделаем тригер (Configuration → Hosts → Triggers)

Выбираем Create trigger

В Name – Site www.site.ru

Severity – High

В Expression добавим:

Item – Response code for step — web.test.rspcode[]

Function – Last (most recent) T value is NOT N

N – 200
4.1.6. Добавляем Host или Коммутатор в Zabbix (Configuration → Hosts → Create hosts) Вкладка Host — Указываем Host name и IP address, выбираем нужную Group.

  1. Мониторинг Windows services

Для мониторинга служб на понадобятся сторонние программы (сылка). Распакуем их C:Program FilesZabbix

5.1. В конфигурационном файле zabbix_agentd.conf на машине с ОС Windows нужно добавить в самом конце документа эту строку — UserParameter=windows.services,"C:Program FilesZabbixservices.exe"

И включить параметр EnableRemoteCommands=1

Для  проверки работоспособности используем команду:

C:zabbix_agentd.exe -c «C:zabbix_agentd.conf» -t "system.run[C:Program FilesZabbixservices.exe]"

5.2. В Zabbix импортируем шаблон, и подключаем его к нужной машине (как в п. 2.3.). При отключении или отключении службы, будет срабатывать триггер.

  1. Создание триггеров

Создадим триггер на примере пинга какого-нибудь сервера.

Для начала нужно установить пакет fping

apt-get install fping

И дать права

# chown root:zabbix /usr/bin/fping

# chmod 710 /usr/bin/fping

# chmod ug+s /usr/bin/fping
6.1.1. Создаем Host group для более удобного наблюдения за пингом (Configuration → Host groups → Create host group)
В Group name пишем Ping monitoring.
6.1.2. Создаем шаблон в Zabbix (Configuration → Templates → Create template)
Назовём его Ping_VIP

В Items добавим три значения loss, ping и sec со следующими параметрами

Создадим триггер, перейдем в Triggers → Create trigger

Построим графики, перейдем в Graphs → Create graph и создадим три графика loss, ping и sec

6.1.3. Добавляем Host или Сайт в Zabbix (Configuration → Hosts → Create hosts)
6.1.4. Вкладка Host — Указываем Host name и IP address, выбираем нужную Group.
6.1.5. Вкладка Templates, добавляем наш шаблон Ping monitoring
6.1.6. Переходим в Actions и создаём действие (Configuration → Actions → Create action)

Создаём условия во вкладке Conditions

Добавим пользователей, кому отсылать уведомления (Вкладка Operations)

  1. Настройка отправки отчетов на email

Administration →  Media types → Email

Administration →  Users → Admin → Media (Добавляем почтовые ящики)

Configuration → Actions → Triggers → Enable

Если необходима отправка SMS на мобильный, то можно зарегистрироваться на площадке [urlspan]www.smstraffic.ru[/urlspan] и подключить к мобильному номеру почтовый ящик вида [urlspan]79008007060@site.smsmail.ru[/urlspan]

7. Ошибки возникающие в процессе работы

Zabbix proxy poller processes more than 75% busy

# nano /usr/local/etc/zabbix_server.conf

StartPollers=20

Zabbix icmp pinger processes more than 75% busy

# nano /usr/local/etc/zabbix_server.conf

StartPingers=10

StartDiscoverers=10

Zabbix unreachable poller processes more than 75% busy

# nano /usr/local/etc/zabbix_server.conf

StartPollersUnreachable=10

Это оптимальные параметры под мою систему (Hosts = 150)
Литература:

[urlspan]https://www.zabbix.com/documentation/ru/2.0/manual/installation/install[/urlspan]

[urlspan]https://habrahabr.ru/post/149500/[/urlspan]

http://www.qdesnic.ru/install-zabbix.html

Как и многие коллеги-администраторы, долгое время я пользовался для мониторинга всего и вся  чем-то самописным. В последнее время стало изрядно лениво лазить по конфигурационным файлам, чтоб добавить хост, сервис и т.п., а потом еще и проверять в веб-интерфейсе, все ли видно хорошо. Захотелось некой удобной софтины для мониторинга, с конфигурацией в БД, удобным веб-интерфейсом. В результате был выбран Zabbix и честно говоря, вполне себя оправдывает, разве что требователен к ресурсам.

Приступим:

# cd /usr/ports/net-mgmt/zabbix-server
# make install
┌────────────────────────────────────────────────────────────────────┐
 │                Options for zabbix-server 1.8.1,2                   │
 │ ┌────────────────────────────────────────────────────────────────┐ │
 │ │         [X] MYSQL   Use MySQL backend                          │ │
 │ │         [ ] PGSQL   Use PostgreSQL backend                     │ │
 │ │         [ ] SQLITE  Use SQLite backend                         │ │
 │ │         [ ] IPV6    Support for IPv6                           │ │
 │ │         [ ] LDAP    Support for checking LDAP servers          │ │
 │ │         [X] JABBER  Use jabber media type                      │ │
 │ │         [X] FPING   Use fping for pinging hosts                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 ├─└────────────────────────────────────────────────────────────────┘─┤
 │                       [  OK  ]       Cancel                        │
 └────────────────────────────────────────────────────────────────────┘

Пока он ставится, немного расскажу о идеологии софтины. Состоит она из нескольких частей: сервера, агента, фронтенда. Сервер умеет опрашивать агентов или сами объекты мониторинга (в случае с последними поддерживаются протоколы SNMP и IPMI). Агент ставится на объект мониторинга (версии агента есть для широкого перечня операционных систем, включая винды) и шлет данные на сервер, также умеет выполнять на объекте заданные команды, фронтенд стоит на веб-сервере и показывает весь процесс. К базе данных обращаются сервер и фронтенд, агентам она не нужна. Создаем ее (исходим из того, что MySQL у нас на том же хосте, где zabbix-сервер):

# mysql
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpassword';
GRANT USAGE ON * . * TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpassword' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `zabbix` ;
GRANT ALL PRIVILEGES ON `zabbix` . * TO 'zabbix'@'localhost';
quit;
# cd /usr/local/share/zabbix/server/create
# cat schema/mysql.sql data/data.sql data/images_mysql.sql | mysql -uzabbix -pzabbixpassword zabbix
# echo zabbix_server_enable="YES" >> /etc/rc.conf
# cp /usr/local/etc/zabbix/zabbix_server.conf.sample /usr/local/etc/zabbix/zabbix_server.conf
# ee /usr/local/etc/zabbix/zabbix_server.conf

Настройки по умолчанию достаточно разумны, потому файл /usr/local/etc/zabbix/zabbix_server.conf небольшой, для справки потом можно будет заглянуть в дефолтный файл:

# Исходящий IP, с него будут осуществляться соединения с агентами и объектами мониторинга
SourceIP=192.168.1.10

# Лог-файл
LogFile=/var/log/zabbix_server.log

# Размер лог-файла, в мегабайтах, 0 отключает ротацию лога
LogFileSize=10

# Уровень дебага, 0 - отключить, 1 - критические ошибки, 2 - ошибки, 3 - предупреждения, 4 - дебаг
DebugLevel=3

# Хост БД
DBHost=localhost

# Название БД
DBName=zabbix

# Пользователь БД
DBUser=zabbix

# Пароль БД
DBPassword=zabbixpassword

# Путь к Mysql-сокету
DBSocket=/tmp/mysql.sock
# Порт SQL-сервера, если используем сокет - не надо
# DBPort=3306

Если заббикс стоит, как в моем случае, в джейле, то на хост-машине надо в /etc/sysctl.conf добавить:

security.jail.sysvipc_allowed=1
kern.ipc.shmall=2097152
kern.ipc.shmmax=2147483648

На этом все, сервер можно запускать:

# touch /var/log/zabbix_server.log
# chown zabbix:zabbix /var/log/zabbix_server.log
# /usr/local/etc/rc.d/zabbix_server start

Теперь займемся фронтендом.

# cd /usr/ports/math/php5-bcmath
# make install
# cd /usr/ports/net-mgmt/zabbix-server/work/zabbix-1.8.1/frontends/php
# cp -R * /usr/local/www/vhosts/zabbix.jared.kiev.ua
# cd /usr/local/www/vhosts/zabbix.jared.kiev.ua/conf/
# cp zabbix.conf.php.example zabbix.conf.php
# ee zabbix.conf.php

Тут вписываем параметры доступа к БД и прочее:

<?php
global $DB;

$DB["TYPE"]             = "MYSQL";
$DB["SERVER"]           = "localhost";
$DB["PORT"]             = "0";
$DB["DATABASE"]         = "zabbix";
$DB["USER"]             = "zabbix";
$DB["PASSWORD"]         = "zabbixpassword";
$ZBX_SERVER             = "localhost";
$ZBX_SERVER_PORT        = "10051";
$ZBX_SERVER_NAME        = "";
$IMAGE_FORMAT_DEFAULT   = IMAGE_FORMAT_PNG;
?>

Все, теперь можно смело заходить в фронтенд с логином Admin и паролем zabbix и заниматься дальнейшей настройкой системы.

Новая версия Zabbix 2, помимо прочих плюшек, умеет легко и красиво мониторить основные параметры MySQL-серверов. Более того, в ней для этого есть стандартный шаблон Template Default MySQL. И как оказалось, настраивается он в пару нажатий.

Итак, на хосте, который надо мониторить, нам понадобится следующее:

1. Выполняем в MySQL запрос вида
GRANT USAGE ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'superpassword';

2. В zabbix_agentd.conf проверяем подключение дополнительных конфигов и путь к ним:
Include=/etc/zabbix/conf.d/

3. Если при установке агента файл userparameter_mysql.conf не распаковался, создаем его в каталоге из п.2:
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'

UserParameter=mysql.size[*],echo «select sum ($(case „$3“ in both|»") echo «data_length+index_length»;; data|index) echo «$3_length»;; free) echo «data_free»;; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo « where table_schema='$1'»)$([[ "$2" = "all" || ! "$2" ]] || echo «and table_name='$2'»);" | HOME=/var/lib/zabbix mysql -N

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V

4. В этом файле обращаем внимание на переменную HOME=/var/lib/zabbix. Именно в этот каталог надо положить файл .my.cnf со следующим содержанием:
[client]
user = zabbix
password = superpassword

5. Все, теперь осталось подключить шаблон к хосту и наблюдать за цифрами и веселыми картинками.

 

 

6.2.2 MySQL

Файл конфигурации misc/conf/zabbix_agentd.conf содержит список пользовательских параметров, которые могут быть использованы для наблюдения за MySQL.

### Set of parameter for monitoring MySQL server (v3.23.42 and later)
### Change -u and add -p if required
#UserParameter=mysql[ping],mysqladmin -uroot ping|grep alive|wc -l
#UserParameter=mysql[uptime],mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T"
#UserParameter=mysql[threads],mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q"
#UserParameter=mysql[questions],mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
#UserParameter=mysql[slowqueries],mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O"
#UserParameter=mysql[qps],mysqladmin -uroot status|cut -f9 d":"
#UserParameter=version[mysql],mysql -V
6.2.2.1 mysql[ping]

Проверить в рабочем ли состоянии MySQL

    Результат: 0 - не запущен 1 - в рабочем состоянии
6.2.2.2 mysql[uptime]

Количество секунд с момента запуска MySQL

6.2.2.3 mysql[threads]

Количество потоков MySQL

6.2.2.4 mysql[questions]

Количество обрабатываемых запросов

6.2.2.5 mysql[slowqueries]

Количество медленных запросов

6.2.2.6 mysql[qps]

Запросов в секунду

6.2.2.7 mysql[version]

Версия MySQL. Пример: mysql Ver 11.16 Distrib 3.23.49, для pc-linux-gnu (i686)