Чтобы собрать Zabbix из исходников, нужно победить кучу ошибок, возникающих из-за отсутствующих на сервере зависимостей. Ниже собраны пакеты, которые нужно установить для устранения ошибок сборки. Справедливо для Debian, в других дистрибутивах можно поискать что-то похожее по названию.
Флаг | Ошибка | Зависимость |
---|---|---|
—with-mysql | configure: error: MySQL library not found | libmysqlclient-dev |
—with-libcurl | configure: error: Curl library not found | libcurl4-openssl-dev |
—with-net-snmp | configure: error: Not found NET-SNMP library | libsnmp-dev |
—with-openipmi | configure: error: Invalid OPENIPMI directory — unable to find ipmiif.h | libopenipmi-dev |
—with-jabber | checking for IKSEMEL… configure: error: Jabber library not found | libiksemel-dev |
—with-libxml2 | configure: error: LIBXML2 library not found | libxml2-dev |
—with-ssh2 | configure: error: SSH2 library not found | libssh2-1-dev |
Просто ставим недостающие зависимости через
apt-get install $packet-name
.
Ссылки:
- Устранение ошибок при сборке Zabbix
#xml #linux #compilation #zabbix #debian-buster
#xml #linux #Сборник #заббикс #debian-бастер
Вопрос:
У меня проблема с компиляцией Zabbix 5.2, настроенной таким образом:
# ./configure --enable-server --enable-agent --with-net-snmp --with-libcurl --with-libxml2 --with-postgresql --with-prefix=/usr/local/zabbix5 --verbose
...
checking for PostgreSQL libraries... yes
checking if PostgreSQL version is >= 9.2... yes
checking for Zabbix server/proxy database selection... ok
checking for multirow insert statements... yes
checking for pkg-config... no
checking for pkg-config... no
configure: error: LIBXML2 library not found
Теперь я установил libxml2-dev
( apt install libxml2-dev
). Он действительно появляется как libxml2-dev:amd64
, не знаю почему, потому что такова операционная amd64
система.
Я попытался установить различные переменные среды, например export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/libxml-2.0.pc
(это конфигурация, установленная пользователем libxml2-dev:amd64
).
Я понятия не имею, почему это происходит и как я могу это исправить.
ОС: Debian 10 amd64.
Комментарии:
1. что в config.log? вы можете проверить список зависимостей от пакетов. debian.org/buster/zabbix-server-mysql
Ответ №1:
Я только что успешно установил Zabbix 5.2 из исходных текстов на Ubuntu 16.04. Я также получил ту же ошибку, что и ваша, хотя я установил libxml2-dev
пакет. После целого дня поиска решений мне пришла в голову идея, когда я просматривал журнал ошибок:
checking for pkg-config... no
configure: error: LIBXML2 library not found
Вероятно, потому, что я не установил pkg-config
пакет. Затем я попытался установить его и снова запустить команду настройки:
sudo apt install pkg-config
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-libcurl --with-libxml2=/usr/bin/xml2-config
На удивление, настройка прошла успешно.
Комментарии:
1. Спасибо, но я
pkg-config
установил его до этого, фактически я использовал его, чтобы попытаться получить конфигурацию libxml2 (безуспешно).
Ответ №2:
Я решил проблему, проблема в том, что исходные тексты, которые я использовал, взяты из Debian package ( apt source zabbix-server-pgsql
), и они не являются исходниками, загруженными с сайта Zabbix.
Похоже, эта проблема возникает при сборке обычным ./configure; make; make install
способом. Однако, когда я собираю пакет Debian, он работает нормально:
dpkg-buildpackage -us -uc -nc
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
Установщик отсутствует. Для установки необходимо проделать несколько шагов:
- Открыть в файерволе 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
-
Распаковать архив
-
Переименовать папку в zabbix_agent
-
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], правда, забыл написать о решении=)
У меня проблема с компиляцией Zabbix 5.2, настроенной таким образом:
# ./configure --enable-server --enable-agent --with-net-snmp --with-libcurl --with-libxml2 --with-postgresql --with-prefix=/usr/local/zabbix5 --verbose
...
checking for PostgreSQL libraries... yes
checking if PostgreSQL version is >= 9.2... yes
checking for Zabbix server/proxy database selection... ok
checking for multirow insert statements... yes
checking for pkg-config... no
checking for pkg-config... no
configure: error: LIBXML2 library not found
Теперь я установил libxml2-dev
(apt install libxml2-dev
). Он отображается как libxml2-dev:amd64
, не знаю почему, потому что ОС — amd64
.
Я пробовал установить различные переменные среды, например export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/libxml-2.0.pc
(эта конфигурация установлена libxml2-dev:amd64
).
Я понятия не имею, почему это происходит и как это исправить.
ОС: Debian 10 amd64.
2 ответа
Лучший ответ
Я решил проблему, проблема в том, что используемые мной источники взяты из пакета Debian (apt source zabbix-server-pgsql
), а не исходники, загруженные с сайта Zabbix.
Похоже, эта проблема возникает при построении обычным способом ./configure; make; make install
. Однако когда я собираю пакет Debian, он работает нормально:
dpkg-buildpackage -us -uc -nc
0
LetMeSOThat4U
30 Ноя 2020 в 18:59
Я только что успешно установил Zabbix 5.2 из исходников на Ubuntu 16.04. У меня такая же ошибка, как у вас, хотя я установил пакет libxml2-dev
. После дня поиска решений, когда я посмотрел журнал ошибок, мне в голову пришла идея:
checking for pkg-config... no
configure: error: LIBXML2 library not found
Вероятно, потому что я не установил пакет pkg-config
. Затем я попытался установить его и снова запустить команду настройки:
sudo apt install pkg-config
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-libcurl --with-libxml2=/usr/bin/xml2-config
На удивление, настройка прошла успешно.
1
Tom Nguyen
4 Дек 2020 в 02:28