Zabbix error ssh2 library not found

Zero touch, Kickstart, Monitoring, Web scraping, Headless setup & Low power device

Move to the superuser:

sudo su

Make sure this is Raspbian Stretch:

grep PRETTY_NAME /etc/os-release

Update distro:

apt-get -y update && apt-get -y dist-upgrade

Reload repositories:

apt-get -y update

Set GPU memory to use 16MB, this will add 48MB to total usable RAM:

echo "gpu_mem=16" >> /boot/config.txt

Disable wifi adapter for RPi3:

echo "dtoverlay=pi3-disable-wifi" >> /boot/config.txt

Install prerequisites:

apt-get -y install sqlite3 libsqlite3-dev libsnmp-dev libssh2-1-dev fping libiksemel-dev libxml2-dev unixodbc-dev libopenipmi-dev libevent-dev libssl-dev libcurl4-openssl-dev libpcre3-dev snmp-mibs-downloader snmp vim tidy jq git libxml2-utils

Set the proxy version number you are interested:

v=3.4.12

Move to RamDisk:

cd /dev/shm

Download the version you are interested:

curl -L "http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/$v/zabbix-$v.tar.gz" -o zabbix-$v.tar.gz

Extract the archive:

tar -vzxf zabbix-$v.tar.gz -C .

Move to Zabbix source directory:

cd zabbix-$v

Enable the necessary features:

./configure --enable-proxy --enable-agent --with-sqlite3 --with-libcurl --with-libxml2 --with-ssh2 --with-net-snmp --with-openipmi --with-jabber --with-openssl --with-unixodbc

Compile (this will take 5 minutes):

time make install

Install ‘zabbix-proxy’ service file:

cat > /etc/init.d/zabbix-proxy << EOF
#!/bin/sh
### BEGIN INIT INFO
# Provides:          zabbix-proxy
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start zabbix-proxy daemon
### END INIT INFO
EOF
grep -v "^#!/bin/sh$" /dev/shm/zabbix-$v/misc/init.d/debian/zabbix-server >> /etc/init.d/zabbix-proxy
sed -i "s/server/proxy/g" /etc/init.d/zabbix-proxy
chmod +x /etc/init.d/zabbix-proxy
systemctl daemon-reload
systemctl enable zabbix-proxy

Create user ‘zabbix’ and add to groups:

groupadd zabbix
useradd -g zabbix zabbix

Observe the default config:

grep -v "^#|^$" /usr/local/etc/zabbix_proxy.conf

Set the servers address:

sed -i "s|^Server=.*$|Server=ec2-35-166-97-138.us-west-2.compute.amazonaws.com|" /usr/local/etc/zabbix_proxy.conf

Remove the static Hostname in proxy configuration:

sed -i '/^Hostname=.*$/d' /usr/local/etc/zabbix_proxy.conf

Enable dynamic Hostname based on eth0 MAC:

sed -i "s|^.*HostnameItem=.*$|HostnameItem=system.run[ifconfig eth0|egrep -o "..:..:.. "|sed "s|:||g;s|.$||;s|^|RPiProxY|"]|" /usr/local/etc/zabbix_proxy.conf

Let’s store the sqlite3 database on the RAMDrive (so we can never kill the SD card because of database write operations):

sed -i "s|^DBName=.*$|DBName=/dev/shm/zabbix_proxy.db.sqlite3|" /usr/local/etc/zabbix_proxy.conf

Set the pid file for proxy:

sed -i "s|^.*PidFile=.*$|PidFile=/dev/shm/zabbix_proxy.pid|" /usr/local/etc/zabbix_proxy.conf

Set the log file for proxy:

sed -i "s|^LogFile=.*$|LogFile=/dev/shm/zabbix_proxy.log|" /usr/local/etc/zabbix_proxy.conf

Enable remote commands:

sed -i "s|^.*EnableRemoteCommands=.*$|EnableRemoteCommands=1|" /usr/local/etc/zabbix_proxy.conf

Allow maximum timeout:

sed -i "s|^Timeout=.*$|Timeout=30|" /usr/local/etc/zabbix_proxy.conf

How often the config file must be reloaded:

sed -i "s|^.*ConfigFrequency=.*$|ConfigFrequency=300|" /usr/local/etc/zabbix_proxy.conf

Observe again the custom config:

grep -v "^#|^$" /usr/local/etc/zabbix_proxy.conf

Start the proxy server:

systemctl start zabbix-proxy

Lake a look if the log file, the pid file and the database file have been created:

ls -l /dev/shm

Check the log file:

cat /dev/shm/zabbix_proxy.log

Appendix. Here are possible error messages to face:

configure: error: SQLite3 library not found

apt-get -y install libsqlite3-dev

configure: error: Invalid Net-SNMP directory — unable to find net-snmp-config

apt-get -y install libsnmp-dev

configure: error: SSH2 library not found

apt-get -y install libssh2-1-dev

/usr/sbin/fping: [2] No such file or directory

apt-get -y install fping

configure: error: Jabber library not found

apt-get -y install libiksemel-dev

configure: error: LIBXML2 library not found

apt-get -y install libxml2-dev

configure: error: unixODBC library not found

apt-get -y install unixodbc-dev

configure: error: Invalid OPENIPMI directory — unable to find ipmiif.h

apt-get -y install libopenipmi-dev

configure: error: Unable to use libevent (libevent check failed)

apt-get -y install libevent-dev

configure: error: OpenSSL library libssl or libcrypto not found

apt-get -y install libssl-dev

configure: error: Curl library not found

apt-get -y install libcurl4-openssl-dev

configure: error: Unable to use libpcre (libpcre check failed)

apt-get -y install libpcre3-dev

Cannot adopt OID in zabbix_proxy.log

apt-get -y install snmp-mibs-downloader

Configure Zabbix Agent

Install Zabbix Agent service file:

cat > /etc/init.d/zabbix-agent << EOF
#!/bin/sh
### BEGIN INIT INFO
# Provides:          zabbix-agent
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start zabbix-agent daemon
### END INIT INFO
EOF
grep -v "^#!/bin/sh$" /dev/shm/zabbix-$v/misc/init.d/debian/zabbix-agent >> /etc/init.d/zabbix-agent
chmod +x /etc/init.d/zabbix-agent
systemctl daemon-reload
systemctl enable zabbix-agent

Observe the current configuration:

grep -v "^$|^#" /usr/local/etc/zabbix_agentd.conf

Set the log file for agent:

sed -i "s|^LogFile=.*$|LogFile=/dev/shm/zabbix_agentd.log|" /usr/local/etc/zabbix_agentd.conf

Set the pid file for agent:

sed -i "s|^.*PidFile=.*$|PidFile=/dev/shm/zabbix_agentd.pid|" /usr/local/etc/zabbix_agentd.conf

Remove the static hostname:

sed -i '/^Hostname=.*$/d' /usr/local/etc/zabbix_agentd.conf

Set dynamic hostname:

sed -i "s|^.*HostnameItem=.*$|HostnameItem=system.run[ifconfig eth0|egrep -o "..:..:.. "|sed "s|:||g;s|.$||;s|^|RPiProxY|"]|" /usr/local/etc/zabbix_agentd.conf

Enable remote commands:

sed -i "s|^.*EnableRemoteCommands=.*$|EnableRemoteCommands=1|" /usr/local/etc/zabbix_agentd.conf

Allow zabbix agent to execute sensitive commmands like ‘vcgencmd measure_temp’:

usermod -a -G video zabbix

Observe again the latest configuration:

grep -v "^$|^#" /usr/local/etc/zabbix_agentd.conf

Start the agent:

systemctl start zabbix-agent

Check if the pid file and the log file have been created:

ls -l /dev/shm

Check the agent log file:

cat /dev/shm/zabbix_agentd.log

Test if the system works after reboot:

reboot

Appendix:
Install nocomments command:

echo "alias nocomments='grep -v "^$|^#"'" >> ~/.bashrc

Install externalscripts command:

echo "alias externalscripts="cd $(cd /usr/lib/zabbix/externalscripts)"" >> ~/.bashrc

Install externalscripts:

cd /usr/lib/zabbix && rm -rf externalscripts && git clone ssh://git@github.com/catonrug/externalscripts.git && chmod 700 externalscripts/* && chown -R zabbix. externalscripts

xmllint: command not found

apt-get install libxml2-utils
root@zabbix2:~/zabbix-2.4.6# apt-get install libsnmp-dev libgsnmp-dev snmptrapd 


checking pkg-config is at least version 0.9.0... yes
checking for net-snmp-config... no
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
root@zabbix2:~/zabbix-2.4.6# apt-get install net-snmp-devel

 apt-get install libsnmp-dev



checking for SSH2 support... no
configure: error: SSH2 library not found


root@zabbix2:~/zabbix-2.4.6# apt-get install libssh-dev libssh2-1-dev



checking for OPENIPMI support... no
configure: error: Invalid OPENIPMI directory - unable to find ipmiif.h

root@zabbix2:~/zabbix-2.4.6# apt-get install openipmi
root@zabbix2:~/zabbix-2.4.6# apt-get install libopenipmi-dev


checking for curl-config... no
configure: error: Curl library not found

root@zabbix2:~/zabbix-2.4.6# apt-get install curl
root@zabbix2:~/zabbix-2.4.6# apt-get install libcurl4-openssl-dev

root@zabbix2:~/zabbix-2.4.6# cat Setup.sh
#!/bin/sh

./configure --enable-server --enable-agent 
--with-mysql --enable-ipv6 --with-net-snmp 
--with-libcurl 
--with-ssh2 
--with-openipmi


root@zabbix2:~/zabbix-2.4.6#

выполняем


..........................
onfig.status: creating upgrades/Makefile
config.status: creating man/Makefile
config.status: creating include/config.h
config.status: executing depfiles commands


Configuration:

  Detected OS:           linux-gnu
  Install path:          /usr/local
  Compilation arch:      linux

  Compiler:              gcc
  Compiler flags:        -g -O2  -I/usr/include/mysql -DBIG_JOINS=1  -fno-strict-aliasing    -g -DNDEBUG        -I/usr/local/include -I/usr/lib/x86_64-linux-gnu/perl/5.20/CORE -I. -I/usr/include -I/usr/include -I/usr/include

  Enable server:         yes
  Server details:
    With database:         MySQL
    WEB Monitoring:        cURL
    Native Jabber:         no
    SNMP:                  yes
    IPMI:                  yes
    SSH:                   yes
    ODBC:                  no
    Linker flags:          -rdynamic      -L/usr/lib/x86_64-linux-gnu        -L/usr/lib/x86_64-linux-gnu -L/usr/lib -L/usr/lib   -L/usr/lib/x86_64-linux-gnu
    Libraries:             -lm -ldl  -lresolv    -lmysqlclient         -lnetsnmp -lssh2 -lOpenIPMI -lOpenIPMIposix   -lcurl

  Enable proxy:          no

  Enable agent:          yes
  Agent details:
    Linker flags:          -rdynamic      -L/usr/lib/x86_64-linux-gnu
    Libraries:             -lm -ldl  -lresolv     -lcurl

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          yes

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

root@zabbix2:~/zabbix-2.4.6#

импортируем старую базу

root@zabbix2:/tmp# mysql --user=zabbix -p* zabbix<./1.sql

для заббикс прокси

checking for SQLite3 library >= 3.0.0... no
configure: error: SQLite3 library not found
apt-get install sqlite
apt-get install libsqlite3-dev

cat ./Setup-Proxy.sh
#!/bin/sh

./configure --enable-proxy 
--enable-agent 
--with-sqlite3 
--enable-ipv6 --with-net-snmp 
--with-libcurl

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

Zabbix в примерах

Zabbix. Получение и первичная настройка.

Zabbix можно получить по ссылке:

http://www.zabbix.com/download.php

Системные требования: 2 ядра CPU / 2ГБ

Далее предполагается, что вы скачали с официального сайта образ виртуальной машины, либо ISO-файл и установили его в Ubuntu
Server 16.04 LTS.

По умолчанию доступ к веб-интерфейсу разрешен отовсюду.

Инсталляция готового решения Zabbix имеет следующие пароли:

Доступ к веб-интерфейсу может быть получен с http://<хост>/zabbix

Логин.пароль:

Admin:zabbix

SSH доступ логин.пароль:

appliance:zabbix

Используйте “sudo su” команду вместе с паролем от “appliance” пользователя для получения привилегированных root прав.

База данных:

root:<случайный>
zabbix:<случайный>

Создание своего пользователя.
adduser имя_пользователя

После того, как пользователь создан, добавляем его в группу sudo.

usermod -a -G sudo имя_пользователя
Не забудьте отключить пользователя по умолчанию

passwd appliance –l

На все вопросы по работе сервера и клиента вам с удовольствием ответят логи.
Логи сервера лежат по пути:

/var/log/zabbix/zabbix_server.log

Агента:

/var/log/zabbix/zabbix_agentd.log

Команда:

tail -f /путь/к/файлу

поможет в прямом эфире отслеживать, что же происходит.

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

Zabbix добавление узла сети вручную

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

Присваиваем узлу сети имя, вводим его видимое имя, добавляем в существующую или создаем новую группу, задаем интерфейс, посредством которого будет осуществляться мониторинг.

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

Обнаружение узлов в сети.

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

Установка Zabbix agent в CentOS 7

sudo bash
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

yum install zabbix-agent

По умолчанию в CentOS сервис не запускается автоматически при перезагрузке!
Убеждаемся в этом:
systemctl status zabbix-agent

И добавляем его в автозагрузку:
systemctl enable zabbix-agent

Запускаем сервис:
systemctl start zabbix-agent
Проверяем, все ли в порядк:
systemctl status zabbix-agent

Установка Zabbix agent в Ubuntu 16.04 LTS

sudo bash

wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+trusty_all.deb

dpkg -i zabbix-release_3.4-1+trusty_all.deb

apt-get update

apt-get install zabbix-agent

Установка Zabbix agent в Windows 7/8/2012 32-x/64-x

Для операционных систем семейства Windows на сайте представлены бинарники агента для 32-х и 64-х разрядных архитектур.
http://www.zabbix.com/downloads/3.4.0/zabbix_agents_3.4.0.win.zip
Установщик отсутствует. Для установки необходимо проделать несколько шагов:

  1. Открыть в файерволе TCP порт 10050, по которому агент общается с сервером

netsh advfirewall firewall add rule name="Zabbix Agent" dir=out protocol=tcp localport=10050 action=allow

netsh advfirewall firewall add rule name="Zabbix Agent" dir=in protocol=tcp localport=10050 action=allow

  1. Распаковать архив

  2. Переименовать папку в zabbix_agent

  3. c:zabbix_agentbinwin64zabbix_agentd.exe --config c:zabbix_agent confzabbix_agentd.conf --install

Где:
c:zabbix_agentbinwin64zabbix_agentd.exe – путь к исполняемому файлу тебуемой разрядности;

—config c:zabbix_agentconfzabbix_agentd.conf – путь к конфигурационному файлу;

—install – команда для установки сервиса с указанными выше параметрами.

На 64-битных системах требуется 64-битная версия Zabbix агента, чтобы все проверки связанные с запущенными 64-битными процессами корректно работали.

Или возьмите готовое у меня:

https://github.com/alv1r/zabbix_agent

Подробнее про настройки агента, специфические для Windows можно посмотреть тут:
https://www.zabbix.com/documentation/3.4/ru/manual/appendix/install/windows_agent

Для облегчения задачи я написал скрипт, который автоматически создает конфигурационный файл, открывает порты и устанавливает сервис требуемой разрядности.
Полный комплект (zabbix_agent) лежит на яндекс диске в папке soft
Скрипт требует настройки
SET String=%computername%.%userdomain%.local – заменяем на постфикс вашего домена (ru/loc/net)
SET Zabbix=192.168.10.31 – заменяем на адрес вашего сервера Zabbix.

Настройка Zabbix agent (универсальная)

Zabbix agent хранит свои настройки в файле zabbix_agentd.conf .
В ОС UNIX он хранится по пути /etc/zabbix/zabbix_agentd.conf
В ОС Windows он хранится по пути zabbix_agentconfzabbix_agentd.conf
Ниже приведена минимальная необходимая для работы конфигурация.

Server=192.168.10.31 – адрес сервера Zabbix

ServerActive=192.168.10.31 – адрес сервера Zabbix

Hostname=001-0036.et.local – полное имя хоста, в таком виде, каким его видит сервер.

ListenPort=10050 — порт, на котором будет работать агент.

LogFile=c:zabbix_agentzabbix_agentd.log — расположение файла журнала в Windows

LogFile=/var/log/zabbix/zabbix_agentd.log — расположение файла журнала в UNIX

LogFileSize=10 – размер файла журнала в мегабайтах.

Подробнее про настройку можно почитать тут:
для Windows

https://www.zabbix.com/documentation/3.4/ru/manual/appendix/config/zabbix_agentd_win
UNIX

https://www.zabbix.com/documentation/3.4/ru/manual/appendix/config/zabbix_agentd

Получение данных от агента.

В целях отладки очень удобно получать данные от агента в консоли.
За это отвечает утилита zabbix_get. Синтаксис у нее такой:
zabbix_get -s -p -k ключ
Где:
-s — адрес узла
-p — порт, на котором слушает агент
-k ключ – ключ, значение которого необходимо получить

В примере выше мы запросили у узла 192.168.10.30, агент у которого работает на порту 10050 значение ключа sip.status.
.

Мониторинг журналов событий Windows

Для того, чтобы работать с журналом событий, достаточно создать элемент данных следующего вида:
Тип: Zabbix агент (активный)
Ключ: eventlog[System,,»Error|Information»,»^Zabbix test event$»]
Тип информации: Журнал (лог)
Затем создаем триггер с текстом
{имя.хоста:eventlog[Application,,»Warning|Error|Failure»,,,,].logseverity()}>1 and { имя.хоста:eventlog[Application,,»Warning|Error|Failure»,,,,].nodata(60)}<>1

Чтобы упростить себе мониторинг журналов Система и Приложения достаточно импортировать на сервер шаблон YandexDisksoftzabbix_templateszbx_eventlog_template.xml
Настройки-Шаблоны-Импорт

Затем выбираем файл и нажимаем импорт

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

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

Проверить работу можно, выполнив на узле, в запущенной от имени администратора консоли PowerShell:
eventcreate /t error /id 999 /l system /so «Zabbix test event» /d «Test ERROR event log by Zabbix»
Которая создаст в журнале система тестовую ошибку.
Сбор информации из системных журналов является активной проверкой, а потому в настройках агента должно быть указано его полное имя и сервер для активных проверок.
Подробнее описано в разделе «Настройки Zabbix agent».
Почитать подробнее о настройке логов можно тут:
https://www.zabbix.com/documentation/3.0/ru/manual/config/items/itemtypes/zabbix_agent/win_keys

Мониторинг нестандартных журналов событий Windows

Тип — активный,
Ключ eventlog[Microsoft-Windows-Hyper-V-VMMS-Admin,,»Error|Critical»,,,100,skip]
тип информации: лог

Ищем ошибки, относящиеся к работе Windows Scheduler:

eventlog[Microsoft-Windows-TaskScheduler/Operational,,»Error|Critical»,,,100,skip]
Основная проблема — что указать в качестве первого параметра ключа eventlog. Делаем так:
открываем родной виндовый Event Viewer (например, right-click на MyComputer -> Manage, затем открываем System Tools -> Event Viewer);
в Event Viewer-е находим нужный лог (например, в данном случае: Application and Services Logs -> Microsoft -> Windows -> TaskScheduler -> Operational), на нём RightClick -> Properties;
в свойствах находим поле «Full Name» (самое первое), его содержимое и копипастим в качестве первого параметра ключа.

https://www.zabbix.com/forum/showthread.php?t=50565

PostgreSQL

https://github.com/postgrespro/mamonsu
https://oc.postgrespro.ru/index.php/s/qu7YsFvOE55LdXo
https://raw.githubusercontent.com/postgrespro/mamonsu/master/packaging/conf/template_win32.xml

Мониторинг необходимости перезагрузки Windows.

Бывает полезно знать, каким серверам требуется перезагрузка, а когда их много, то удобно об этом узнавать, не заходя на сервер.
Для мониторинга нам понадобится клиент, настроенный для активных проверок и соответствующий скрипт.
Скрипт берем в галерее технета по ссылке ниже.
https://gallery.technet.microsoft.com/scriptcenter/Get-PendingReboot-Query-bdb79542/view/Discussions
set-executionpolicy remotesigned
Полученный скрипт определяем в папку zabbix_agentscripts на клиенте, в конфигурации пишем:
UserParameter=Reboot.IsNedeed,powershell -NoProfile -ExecutionPolicy Bypass -command «$ErrorActionPreference = ‘silentlycontinue’; $eval = get-pendingreboot; if ($eval.RebootPending) { Write-Host ‘1’; } else { Write-Host ‘0’ };
На стороне Zabbix создаем элемент данных:
Zabbix (активный)
ключ:
Reboot.IsNedeed

Мониторинг Asterisk на примере Elastix (CentOS 7 x64)

Подразумевается, что агент у вас уже установлен. Если это не так – смотрите соответствующий раздел руководства.
Для того, чтобы настроить мониторинг нам нужно сделать несколько вещей:
0 добавить пользователю zabbix от чьего имени работает zabbix agent право запускать программы баз ввода пароля,
1 добавить в конфигурационный файл агента нужные параметры
3 скачать, импортировать и применить к нужному узлу шаблон.
Приступим. Открываем файл
sudo nano /etc/sudoers
И в самый конец допишем:
zabbix ALL=(ALL) NOPASSWD:ALL
Теперь создадим отдельный файл настроек для работы с Asterisk

nano /etc/zabbix/zabbix_agentd.d/asterisk.conf
«`UserParameter=ast.pid,sudo -u zabbix sudo cat /var/run/asterisk/asterisk.pid

UserParameter=ast.uptime,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘core show uptime’ | grep uptime | cut -f2 -d: | sed ‘s/ //g’

UserParameter=ast.reloadtime,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘core show uptime’ | grep reload | cut -f2 -d: | sed ‘s/ //g’

UserParameter=ast.version,sudo -u zabbix sudo /usr/sbin/asterisk -V | cut -f2 -d’ ‘

Core Stats

INFO: Active Calls is Buggy yet.

UserParameter=ast.callsdone,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘core show calls’| grep -i ‘processed’ | awk ‘{print $1}’

IAX2 Stats

UserParameter=iax.status,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘iax2 show registry’|grep Registered |wc -l

UserParameter=iax.channels,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘iax2 show channels’|grep —text -i ‘active IAX channel’|awk ‘{print $1}’

SIP Stats

UserParameter=sip.status,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘sip show registry’|grep Registered |wc -l

UserParameter=sip.peersonline,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘sip show peers’|grep —text -i ‘sip peers’|awk ‘{print $5}’

UserParameter=sip.peersoffline,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘sip show peers’|grep —text -i ‘sip peers’|awk ‘{print $7}’

UserParameter=sip.peers,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘sip show peers’|grep —text -i ‘sip peers’|awk ‘{print $1}’

DNS Manager

UserParameter=dns.status,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘dnsmgr status’ | grep ‘DNS Manager’ | awk ‘{print $NF}’

UserParameter=dns.entries,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘dnsmgr status’ | grep ‘Number of entries’ | awk ‘{print $NF}’

FAX Stats

UserParameter=fax.sessions,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘fax show stats’ | grep ‘Current Sessions’ | awk ‘{print $NF}’

UserParameter=fax.transmits,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘fax show stats’ | grep ‘Transmit Attempts’ | awk ‘{print $NF}’

UserParameter=fax.receive,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘fax show stats’ | grep ‘Receive Attempts’ | awk ‘{print $NF}’

UserParameter=fax.done,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘fax show stats’ | grep ‘Completed’ | awk ‘{print $NF}’

UserParameter=fax.fail,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘fax show stats’ | grep ‘Failed’ | awk ‘{print $NF}’

Parked Calls

UserParameter=ast.parkedcalls,sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘parkedcalls show’ | grep ‘parked calls in total’ | awk ‘{print $1}’

Version information

Version Info — Edit this part for your own loss

UserParameter=ast.tribily.ver,sudo -u zabbix sudo echo ${VERSION}

Перезапускаем агент.
systemctl restart zabbix-agent
Скачиваем шаблон отсюда:
https://github.com/olindata/tribily-zabbix-templates/blob/master/App_Asterisk/Tpl_Tribily_App_Asterisk_Extended_v1.0.xml
Правой клавшей мыши по кнопке RAW, Сохранить объект как, далее Настройка-Шаблоны-Импорт шаблона, добавляем шаблон и применяем его к нужному узлу.

Мониторинг доступности телефонов на примере аппаратов Yealink.

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

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

А теперь по порядку. В поле url мы указываем адрес, по которому будет осуществлен переход во время проверки, требуемая строка это строка, которая должна быть на странице, а 200, это код ответа, если она присуствует.
Ссылка позволяет заходить на телефон не авторизируясь.
http://192.168.10.214/servlet?p=login&q=login&username=admin&pwd=admin
Далее нам необходимо создать триггер, который будет срабатывать, когда пропадет регистрация на телефоне.

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

Триггер означает, что, если проверка не удалась, и вернула любой код ответа, отличный от N (200, как мы его задали), это будет означать событие высокой важности с немедленным уведомлением заинтересованных лиц.

Настройка оповещений по Email на примере почты от yandex.

Переходим в раздел Администрирование(1)->Способы оповещений(2)->Email(3)

Настраиваем следующим образом:
Email
SMTP сервер smtp.yandex.ru
Порт SMTP сервера 465
SMTP helo yandex.ru
SMTP email адрес_для_отправки@домен.ру
Безопасность подключения SSL/TLS
Проверка SSL узла нет
Проверка SSL хоста нет
Аутентификация НетОбычный пароль
Имя пользователя monitor@ener-t.ru
Пароль ************
Активировано да
Ниже пример рабочих настроек.

Мониторинг хоста Hyper-V

https://share.zabbix.com/virtualization/hyper-v/hyper-v-template-with-replication-state

https://github.com/ameiji/Zabbix-HyperV-Templates
Сначала импортируем шаблон Template_Windows_HyperV_VM_Guest.xml, потом Template_Windows_HyperV_Host.xml, поскольку они зависят друг от друга.
UserParameter=hyperv.discovery,powershell.exe -file «c:zabbix_agentscriptszabbix-vm-perf.ps1»
UserParameter=hyperv.discoveryitem[],powershell.exe -file «c:zabbix_agentscriptszabbix-vm-perf.ps1» «$1» «$2»
UserParameter=hyperv.check[
],powershell.exe -file «c:zabbix_agentscriptszabbix-vm-perf.ps1» «$1» «$2» «$3»
Set-ExecutionPolicy -ExecutionPolicy Bypass
Мониторинг WSUS
https://github.com/zbx-sadman/wsus

Мониторинг iLO

Для работы нам потребуется пакет freeipmi

‘sudo apt-get install freeipmi’

/usr/sbin/ipmi-sensors -D LAN2_0 -h 192.168.10.36 -u пользователь_в_iLO -p пароль -l USER -W discretereading —no-header-output —quiet-cache —sdr-cache-recreate —comma-separated-output —entity-sensor-names

1 Скачиваем шаблон и скрипты отсюда: https://www.zabbix.com/forum/attachment.php?attachmentid=6874&d=1397131920
2 редактируем скрипты, вписываем туда наш логин и пароль от iLO

3 копируем скрипты в папку External scripts
cp ilo_discovery.pl ipmi_proliant.pl /usr/lib/zabbix/externalscripts/
4 Делаем их исполняемыми
chmod +x /usr/lib/zabbix/externalscripts/ilo_discovery.pl
chmod +x /usr/lib/zabbix/externalscripts/ipmi_proliant.pl
и даем пользователю заббикс все права на них
chown zabbix:zabbix /usr/lib/zabbix/externalscripts/ilo_discovery.pl
chown zabbix:zabbix /usr/lib/zabbix/externalscripts/ipmi_proliant.pl
5 Создаем узел сети, в настройках интерфейса ничего не пишем, к нему применяем шаблон из архива, и во вкладке макросы ставим макрос {$ILO} равны IP интерфейса iLO

Мониторинг S.M.A.R.T. в Windows x64

Для мониторинга используется набор утилит smarttools.
Скачиваем отсюда
https://sourceforge.net/projects/smartmontools/files/smartmontools/6.4/
Распаковываем в папку zabbix_agentscriptssmarttools
Добавляем в конфигурационный файл строки:
#############SMARTMON
UserParameter=uHDD[], for /F «tokens=10» %a in (‘c:zabbix_agentscriptssmarttoolsbin64smartctl.exe -A $1 ^| find «$2″‘) do @echo %a
UserParameter=uHDD.health.[
], for /F «tokens=6» %a in (‘c:zabbix_agentscriptssmarttoolsbin64smartctl.exe -H $1 ^| find «test»‘) do @echo %a
UserParameter=uHDD.model.[],for /F «tokens=3» %a in (‘c:zabbix_agentscriptssmarttoolsbin64smartctl.exe -i $1 ^| find «Device Model»‘) do @echo %a %b
UserParameter=uHDD.sn.[],for /F «tokens=3» %a in (‘c:zabbix_agentscriptssmarttoolsbin64smartctl.exe -i $1 ^| find «Serial Number»‘) do @echo %a
UserParameter=uHDD.errorlog.[
], for /F «tokens=4» %a in (‘c:zabbix_agentscriptssmarttoolsbin64smartctl.exe -l error $1 ^| find «ATA Error Count»‘) do @echo %a
UserParameter=uHDD.discovery,powershell -NoProfile -ExecutionPolicy Bypass -File «c:zabbix_agentscriptssmartctl-disks-discovery.ps1»
Обязательно перезапускаем службу после внесения изменений в конфигурационный файл. Так же должен быть разрешен запуск скриптов PowerShell. Делается это в консоли PowerShell запущенной от администратора командой:
Set-ExecutionPolicy -ExecutionPolicy Bypass

Отсюда берем шаблон и скрипт
https://github.com/v-zhuravlev/zbx-smartctl
Скрипт помещаем в папку c:zabbix_agentscripts, а шаблон импортируем и применяем к нужным хостам. Вот и всё.
Для обеспечения работы в Windows x32 необходимо заменить в конфигурационном файле все вхождения bin64 на bin32. Как в строке ниже
c:zabbix_agentscriptssmarttoolsbin64smartctl.exe

Мониторим время окончания оплаты домена с помощью Zabbix

Для мониторинга нам понадобится скрипт и шаблон.

checkdomainexpire.sh

#!/bin/sh

# получаем имя домена
DOMAIN=$1

# получаем имя зоны
ZONE=`echo $DOMAIN | sed 's/./ /' | awk '{ print $2 }'`

# получаем дату протухания домена
# Должна вернуться в формате ГГГГ-ММ-ДД (год-месяц-день)
case "$ZONE" in
ru|net.ru|org.ru|pp.ru)
DATE=`whois $DOMAIN | grep paid-till | awk '{ print $2 }' | sed 's/./-/g'`
;;
com|net)
DATE=`whois $DOMAIN | grep "Registration Expiration Date:" | sed 's/Registrar Registration Expiration Date: //g;s/T/ /g' | awk '{ print $1 }'`
;;
org)
DATE=`whois $DOMAIN | grep "Registry Expiry Date:" | sed 's/Registry Expiry Date: //g;s/T/ /g' | awk '{ print $1 }'`
;;
*)
DATE="$(whois $DOMAIN | awk '/[Ee]xpir.*[Dd]ate:/ || /[Tt]ill:/ || /expire/ {print $NF; exit;}')"
if test -z "$DATE"; then
#Отсутствует информация в Whois для домена
echo "-1"
continue
fi
esac

# считаем дни и выводим
expr ( `date --date="$DATE" +%s` - `date +%s` ) / 60 / 60 / 24

Скрипт кладем в каталог по умолчанию для внешних скриптов, который указан в конфигурации сервера zabbix, вот строчка по умолчанию в zabbix-server.conf

ExternalScripts=/usr/lib/zabbix/externalscripts/checkdomainexpire.sh

Теперь выдаем права и делаем его исполняемым:

chown zabbix:zabbix /usr/lib/zabbix/externalscripts/checkdomainexpire.sh
chmod +x /usr/lib/zabbix/externalscripts/checkdomainexpire.sh

Теперь осталось в агента добавить свой параметр:

nano /etc/zabbix/zabbix_agentd.conf
UserParameter=domainexpire[*],/usr/lib/zabbix/externalscripts/checkdomainexpire.sh $1
service zabbix-agent reload

Шаблон берем тут

https://sysadmin-note.ru/monitorim-vremya-okonchaniya-oplaty-domena-s-pomoshhyu-zabbix/
Привязываем шаблон к узлу сети и создаем макрос
{$DOMAINNAME} со значением имя.сайта

Работа с SNMP. Общие сведения.

Значения OID удобно получаться с помощью специальной утилиты snmpget, нижу идут примеры использования:
snmpget -v2c -cpublic snmp_agent_Ip_address OID
где:
-v2c – версия протокола SNMP;
-cpublic – community имя. В нашем случае public;
snmp_agent_Ip_address – адрес узла сети;
OID – ключ, значение которого необходимо получить.
Например, запрос вида:
snmpget -v2c -cpublic prn-udo.et.local .1.3.6.1.2.1.1.5.0
Вернет нам модель принтера:

Работа с Mikrotik.

Через winbox переходим «IP»-«SNMP»

Здесь устанавливаем флаг «Enabled», тем самым включая SNMP на маршрутизаторе. Далее нажимаем кнопку «Сommunities» и выбираем уже созданный по умолчанию community «public», и исправляем его на свой. Так же для безопасности можно указать IP адреса с которых можно подключаться по SNMP.

Скачиваем отсюда шаблон
https://github.com/andyzasl/zabbix-templates/tree/master/mikrotik
Импортируем и применяем к узлу сети, который мы создали для нашего Mikrotik.
Работа с SNMP. Принтеры.

Kyocera
Так напишу для истории, кому пригодится.
1.3.6.1.4.1.1347.43.10.1.1.12.1.1 — кол-во копий по счетчику принтера
1.3.6.1.2.1.43.11.1.1.8.1.1 — уровень тонера (Х)
1.3.6.1.2.1.43.11.1.1.9.1.1 — процент использования в тонере (Y)
Соответственно удобоваримый вид сколько осталось тонера Z= Y*100/X
Ну и еще немного для комплекта
1.3.6.1.2.1.25.3.2.1.3.1 — модель принтера
1.3.6.1.4.1.1347.40.10.1.1.5.1 — сетевое имя
1.3.6.1.2.1.25.3.5.1.2.1 — состояние принтера (нормальное %00, загрузить кассету B …)
1.3.6.1.4.1.1347.43.5.4.1.5.1.1 — версия прошивки
1.3.6.1.4.1.1347.43.5.1.1.28.1 — серийный номер

Ricoh
Page Count — .1.3.6.1.2.1.43.10.2.1.4.1.1
Printer Description — .1.3.6.1.2.1.25.3.2.1.3.1
Printer Status — .1.3.6.1.2.1.25.3.5.1.1.1
Toner Estimated Capacity % — .1.3.6.1.4.1.367.3.2.1.2.24.1.1.5.1

По тонеру — показывает значение
-3 при полном картридже
-100 при низком уровне тонера
0 при необходимости замены тонера

Устранение ошибок при сборке Zabbix

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

Flag: —with-mysql
Error: configure: error: MySQL library not found
Fix: sudo apt-get install libmysqlclient-dev

Flag: —with-jabber
Error: checking for IKSEMEL… configure: error: Jabber library not found
Fix: sudo apt-get install libiksemel-dev

Flag: —with-libcurl
Error: configure: error: Curl library not found
Fix: sudo apt-get install libcurl4-openssl-dev

Flag: —with-net-snmp
Error: configure: error: Not found NET-SNMP library
Fix: sudo apt-get install libsnmp-dev
Flag: —with-openipmi
Error: configure: error: Invalid OPENIPMI directory — unable to find ipmiif.h
Fix: sudo apt-get install libopenipmi-dev

Zabbix 2.2.0

Flag: —with-libxml2
Error: configure: error: LIBXML2 library not found
Fix: sudo apt-get install libxml2-dev

Flag: —with-ssh2
Error: configure: error: SSH2 library not found
Fix: sudo apt-get install libssh2-1-dev
Типичные ошибки и их решение.

При установке из пакетов, для создания структуры БД, выполните следующие команды:
cd /usr/share/doc/zabbix-server-mysql
zcat create.sql.gz | mysql -uzabbix -p zabbix

При получении ошибок вида:
Cannot adopt OID in UCD-SNMP-MIB: laIndex ::= { laEntry 1 }
……………………………………………………………………………………………….
Cannot adopt OID in UCD-SNMP-MIB: laErrorFlag ::= { laEntry 100 }

Устанавливаем snmp-mibs-downloader
apt-get install snmp-mibs-downloader

Zabbix icmp pinger processes more than 75% busy — говорит нам о том, что процесс pinger перегружен. И если продолжить добавлять узлы на мониторинг, то вскоре данные просто перестанут успевать обрабатываться.
Исправить ситуацию можно увеличив кол-во pinger процессов. Для этого необходимо поправить конфигурацию zabbix сервера:

nano /etc/zabbix/zabbix_server.conf
находим строчку:

StartPingers=1

Установим значение StartPingers в 5.
StartPingers=5
Сохраняем конфигурацию и перезагружаем zabbix сервер
service zabbix-server restart

sudo: no tty present and no askpass program specified
Суть проблемы: у пользователя zabbix, из-под которого в системе выполняется этот скрипт, не хватает прав на запуск через sudo без пароля команды nmap.
Решение: Правим файл /etc/sudoers, дописывая нужные разрешения:
nano /etc/sudoers
zabbix ALL=(ALL) NOPASSWD: /usr/sbin/smartctl

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

Используемые материалы:

Zabbix Wiki, основной источник информации

https://www.zabbix.com/documentation/3.4/ru/start

Родной форум на русском

https://www.zabbix.com/forum/forumdisplay.php?f=21

Неофициальный, но очень полезный сайт:

https://www.zabbix.org/wiki/Main_Page

Поиск шаблонов:

https://share.zabbix.com/
http://monitoringartist.github.io/zabbix-searcher/
https://github.com/thecamels/zabbix

Шаблон для WSUS

https://github.com/zbx-sadman/wsus

Инсталляторы агентов для Windows 32/64

http://www.suiviperf.com/zabbix/index.php

Cisco template generator

http://ross.vc/cisco_tpl/

Мониторинг S.M.A.R.T.

https://github.com/v-zhuravlev/zbx-smartctl

Мониторим всё: расширение агентов Windows и Linux при помощи скриптов

https://habrahabr.ru/company/zabbix/blog/196218/
http://www.bog.pp.ru/work/zabbix.html

Настройка Asterisk:

https://www.zabbix.com/forum/showthread.php?t=41191
https://github.com/olindata/tribily-zabbix-templates/blob/master/App_Asterisk/Tpl_Tribily_App_Asterisk_Extended_v1.0.xml

SNMP

http://www.k-max.name/linux/snmp-protocol/
https://github.com/macrokernel/zabbix-snmpbuilder/tree/2.4.7
https://www.zabbix.org/wiki/Snmp_builder
https://habrahabr.ru/post/85156/

Мониторинг журналов безопасности:

https://habrahabr.ru/post/215509/

Мониторинг хоста Hyper-V
https://share.zabbix.com/virtualization/hyper-v/hyper-v-template-with-replication-state
https://github.com/ameiji/Zabbix-HyperV-Templates

Рекомендации по «производству» шаблонов

https://www.zabbix.org/wiki/Docs/template_guidelines
http://neskripit.ru/blogs/blogs-all/viewpost/724
http://saradmin.ru/?p=1542

Мониторинг свичей D-Link

https://share.zabbix.com/official-templates/template-modules-pack
https://share.zabbix.com/official-templates/network-devices/template-net-d-link-des-dgs-switch-snmpv2

Работа с сервисами в CentOS

http://www.putorius.net/2014/07/start-services-on-boot-in-red-hat-7-or.html

Мониторинг веб сайта

Zabbix как настроить мониторинг web сайта или как я мониторил питание в сети

Мониторинг состояния Windows Server (необходимость перезагрузки)

https://social.technet.microsoft.com/Forums/ru-RU/a72ebb02-c034-4bdc-8a43-72d2ab9bcb05/-?forum=WS8ru
https://gallery.technet.microsoft.com/scriptcenter/Get-PendingReboot-Query-bdb79542

PostgreSQL

https://github.com/lesovsky/zabbix-extensions/tree/master/files/postgresql

Мониторинг окончания домена

https://sysadmin-note.ru/monitorim-vremya-okonchaniya-oplaty-domena-s-pomoshhyu-zabbix/

Before I was trying to use Microsoft-Windows-Hyper-V-VMMS/Admin which is the name on Event Viewer, but on C:windowssystem32WinEvtLogs the log name is Microsoft-Windows-Hyper-V-VMMS-Admin which works !!!
всем привет! Ребят, подскажите как можно затягивать информацию из текстового файла в zabbix? Сам файл создается скриптом PS(туда сваливаются логи некоторых журналов). Пробовал вот таким ключом на zabbix-сервере: Logrt[«D:zabbixtest.txt»], но в логе агента виндового пишет: active check «Logrt[«D:zabbixtest.txt»]» is not supported
решил проблему с логом, если кому интересно, то делается это так: logrt[путь к логу,,ANSI], правда, забыл написать о решении=)

Posted: April 30, 2012 | Filed under: Zabbix |

Zabbix can execute shell commands over SSH and record the results.  This ability does not require a Zabbix agent, which is helpful for remote machines.

I use Zabbix SSH checks to verify logins to an SFTP server.

SSH checks in Zabbix are not enabled by default.  You’ll have to enable them in the zabbix_server.conf file as well as compiling support into the server when you build it.

To compile support into the server make sure you add –with-ssh2 to your configure.  You will probably also have to add libssh2 libraries if you get an error like this during your configure

checking for SSH2 support... no
configure: error: SSH2 library not found

I’m running CentOS 5.8 and the repositories I have set up do not have a recent version of 32 bit libssh2.  The 64 bit version that installs is libssh2-1.2.7.1, but that’s not good enough for Zabbix.

I found a 1.2.7.1 RPM for 32 bit libssh2 at http://pkgs.repoforge.org/libssh2/.  Once installed, the configure completes with the –with-ssh2 flag.

After your Zabbix binaries are built.  Edit the zabbix_server.conf configuration file and modify  the SSHKeyLocation to set the full path of the folder where your public and private keys are located.

I use the home directory of the zabbix user

SSHKeyLocation=/home/zabbix/.ssh

Save the modified configuration file and restart the zabbix_server to activate the changes.

Create public and private keys:

# sudo -u zabbix ssh-keygen -t rsa

I did not enter a passphrase for the key pair, but it’s probably best to use a passphrase.

Two files, id_rsa.pub and id_rsa, will be created in the /home/zabbix/.ssh directory and this directory is specified in the zabbix_server.conf file.

Copy the public key to the server you wish to use this check on.  There are many methods, but I use this one regularly:

ssh <username>@<server> "mkdir .ssh; chmod 0700 .ssh; chown <username> .ssh"
cat .ssh/id_rsa.pub | ssh -l <username> <server> "cat - >>.ssh/authorized_keys"
ssh <username>@<server> "chmod 0600 .ssh/authorized_keys; chown <username> .ssh/authorized_keys"

Test your connection after copying SSH key files

sudo -u zabbix ssh <username>@<server>

Create item for your new check

Host                     c_Template_SSHcheck
Description              SSH check
Type                     SSH agent
Key                      ssh.run[1]
Authentication method    Public key
User name                <username>
Public key file          id_rsa.pub    
Private key file         id_rsa
Password    
Executed script          hostname -s
Type of information      Text
Update interval (in sec) 300    
Flexible intervals (sec) No flexible intervals
New flexible interval    Delay Period
Keep history (in days)   7
Status                   Active
New application          SSH    
Applications

http://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/ssh_checks

Once your item is created, check Latest Data in Zabbix for your new SSH checks. If you don’t see any results be sure to look into the Zabbix logs for more details.

Zabbix SSH checks add simple agentless monitoring to your environment, extending the functionality of Zabbix.


Понравилась статья? Поделить с друзьями:

Читайте также:

  • Zabbix error connecting to database too many connections
  • Zabbix error connecting to database mysql
  • Zabbix discoverer processes more than 75 busy как исправить
  • Zabbix database error unable to select configuration
  • Zabbix database error permission denied

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии