Мониторинг служб windows zabbix: Zabbix мониторинг определённой службы Windows – ЗАПИСКИ КРАСНОДАРСКОГО СИСАДМИНА
Как мониторить работу службы через Zabbix
Прочитано:
3 712
На предыдущей работе я довольно напользовался тем, что в моей системе мониторинга Zabbix использовал разобранную возможность мониторить статусы установленных служб в системах. К примеру есть важный процесс и его нужно мониторить, как он только выключится, то нужно сразу же смотреть почему такое произошло, а не ждать когда тебе начнут звонить. Караул — почему сервисы не работают как и должны работать. А потому данная заметка будет своеобразной пошаговой напоминалкой самому себе, как в кратчайшие сроки поставить те или иные сервисы Windows на мониторинг в универсальный конструктор мониторинга Zabbix.
У меня Zabbix развернут на Ubuntu 12.04.5 Server amd64 версии 2.2.11
ekzorchik@srv-mon:~$ apt-cache show zabbix-server-mysql | grep Version
Version: 1:2.2.11-1+precise
Первое условие на станции Windows которую нужно мониторить на предмет статуса запущенного сервиса должен стоят Zabbix—агент и заведен на Zabbix-сервер.
Задача: мониторить буду службу: FusionInventory-Agent
это агент GLPI посредством которого происходит инвентаризация рабочей станции: Какая ось, какой софт, какое железо, кто сейчас работает, IP-адрес станции и т. д.
Теперь создаю новый элемент данных в дефолтном шаблоне Template OS Windows:
http://IP&DNS — Configuration — Templates — Template OS Windows — Items — Create Item
Name: GLPI Agent
Type: Zabbix agent
Key: service_state[FusionInventory-Agent]
Update interval (in sec): 60
History storage period (in days): 7
Trend storage period (in days): 365
New Application: Services
Description: Мониторим статус работы службы установленного агента GLPI
Enabled: Отмечаю галочкой
Сохраняю внесенные изменения: Save
На заметку: ключ service_state принимает ответные значения:
State of service. 0 — running, 1 — paused, 2 — start pending, 3 — pause pending, 4 — continue pending, 5 — stop pending, 6 — stopped, 7 — unknown, 255 — no such service
Теперь создаю Trigger (описание тревоги на этот элемент данных), в этом же Template OS Windows — Triggers — Create Trigger
Name: Service State — GLPI Agent on {HOSTNAME}
Expression: — Add находим нужно правило, в моем случаем правило следующее:
{Template OS Windows:service_state[FusionInventory-Agent].last()}=6
Severity: High
Enabled: Отмечаю галочкой
Сохраняю внесенные изменения: Save
Теперь проверяю, сейчас на хосте (W7X86) выключаю/останавливаю службу и в Zabbix’е – Monitoring у меня в где Windows Stations обозначена среагированная проблема:
Перехожу в группу и вижу на каких хоста сработало уведомление о неполадках:
Тип уведомление: Высокий
Время последнего изменения статуса
Продолжительность недоступности сервиса в связи с выключенным состояние службы FusionInventory-Agent
вернув сервис в режим “Старт” , уведомление в Zabbix о сработанных триггерах вернулось в норму:
Если ведем какие-либо работы, то можно на сработанных триггер по этому хосту поставить комментарий (Acknowledge) или же когда сервис в строю:
Message: Работа сервиса восстановлена
После нажимаю: Acknowledge and return
По такому принципу можно настроить свой шаблон и свои элементы данных которые нужно отслеживать.
На этом собственно пока все, до новых встреч на моем блога, с уважением автор блога – ekzorchik.
ZABBIX — Настраиваем мониторинг служб » Pechenek.NET
Всем привет, часто возникает необходимость настроить мониторинг различные службы и всегда знать если что-то упало. В данной статье расскажу о том как настроить мониторинг служб по средствам Zabbix.
Создаём элемент данных.
Для начала необходимо выбрать наш шаблон, к которому привязан интересующий нас узел сети, если его нет создаём, о том как создать шаблон можете прочитать тут: ZABBIX — Новый шаблон. В нашем случае шаблон у нас уже есть с привязанным к нему узлом сети. Переходим в “Настройка” -> “Шаблоны” -> Выбираем наш шаблон ->Выбираем “Элементы данных” и нажимаем кнопку “Создать элемент данных”
Zabbix-создаём элементы данных
Дальше необходимо вписать наши условия, оставляем все пункты по умолчанию, кроме “Имя” и “Ключ”. Вписываем любое угодное нам имя и в поле ключ нажимаем “Выбрать”
Zabbix-Выбираем ключ
Ищем в списке ключ “proc.num[<name>,<user>,<state>,<cmdline>]”, выбираем его.
Вот что про данный ключ пишут в документации Zabbix-а:
proc.num[<имя>,<пользователь>,<состояние>,<cmdline>] | ||||
---|---|---|---|---|
Количество процессов. | Целое число | имя – имя процесса (по умолчанию “все процессы”) пользователь – имя пользователя (по умолчанию “все пользователи”) состояние – возможные значения: all (по умолчанию), run, sleep, zomb cmdline – фильтр по командной строке (является регулярным выражением) | Примеры ключей: ⇒ proc.num[,mysql] – количество процессов выполняемых под пользователем mysql ⇒ proc.num[apache2,www-data] – количество процессов apache2 выполняемых под пользователем www-data ⇒ proc.num[,oracle,sleep,oracleZABBIX] – количество процессов в спящем состоянии выполняемых под oracle и имеющих oracleZABBIX в содержимом командной строкиСмотрите заметки по выбору процессов с параметрами имя и cmdline (специфика для Linux).В Windows, поддерживаются только параметры имя и пользователь. |
Затем нам необходимо указать необходимые параметры для ключа. К примеру мы хотим настроить мониторинг демона под названием “sendsms”, тогда ключ у нас будет таким:
Если нам необходимо настроить мониторинг служб с одинаковым названием, но в дальнейшем их мониторить по отдельности, то можно указать параметры таким образом:
proc.num[java,,,»config /home/devuser/production/kkt_java/kkt.forwarded.setter.conf»]
proc.num[java,,,»config /home/devuser/production/kkt_java/kkt.forwarded.setter.conf»] |
Мы передаём название демона и к примеру путь, откуда была запущена служба, что конкретизирует как раз нужную нам.
В нашем случае параметр будет таким:
proc.num[java,,,logstash]
proc.num[java,,,logstash] |
Нажимаем “Обновить” и в списке появиться наш элемент данных.
Так же вы можете проверить правильно ли вы составили ключ, и будет ли он выдавать нужное нам значение, напрямую через консоль, командой:
zabbix_agent -t proc.num[java,,,logstash]
zabbix_agent -t proc.num[java,,,logstash] |
Zabbix-проверка правильности ключа
Должен вернуть количество найденных служб.
Так же после создания элемента данных можно проверить, что возвращается в консоли Zabbix, необходимо перейти во вкладку “Мониторинг”->”Последние данные”, там найти нужный элемент и посмотреть значение.
Создаём триггер.
Дальше нам необходимо создать триггер, который будет нам сообщать о проблемах. Для этого переходим во вкладку “Триггеры” и нажимаем “Создать триггер”
Zabbix-создаём триггер
В открывшемся окне необходимо вписать имя, выбрать важность триггера и выражение. С названием всё думаю понятно, с важностью тоже, необходимо указать выражение. Необходимо нажать кнопку “Добавить”, в окне нажать “Выбрать”
Zabbix-настраиваем триггер
Выбираем из списка наш шаблон или узел сети к которому он привязан. Дальше в условии триггера выбираем функцию, например последнее полученное значение меньше “N” (это значение у нас будет равно “1”), нажимаем “Вставить”
Zabbix-условия триггера
В результате у нас получилось такое выражение:
{GSA Monitoring Logstash Servers:proc.num[java,,,logstash].last()}<1
{GSA Monitoring Logstash Servers:proc.num[java,,,logstash].last()}<1 |
Получается мы смотрим последнее получено значение элемента данных и если оно меньше “1”, то сигналим. Так же можно указать другие значения, всё зависит от Ваших потребностей.
Zabbix-условия триггера
Не забываем нажимать “Обновить”. В итоге мы настроили мониторинг службы.
Так же к моинторингу служб можно добавить ещё один способ, который поможет понять, что служба не зависла, подробнее в данной статье: ZABBIX — Настраиваем мониторинг логов.
Надеюсь данная статья Вам помогла. Не забывайте пользоваться кнопками «Поделиться в соц. сетях», так же подписываться на наш Канал и группы в ВК, Twitter, Facebook.
Всем удачи и море печенек!
Универсальная система мониторинга Zabbix — введение / Хабр
В любой сети, где есть больше, чем один сервер, очень полезно бывает иметь перед глазами полную картину происходящего. В крупных сетях, где количество хостов переваливает за несколько десятков, следить за каждым в отдельности — непосильная задача для администраторов. Для облегчения задачи наблюдения применяются системы мониторинга, и я расскажу об одной из них, которой на Хабре не посвящено ни одной полноценной статьи.
И так, встречайте: Zabbix. Система состоит из нескольких частей, и при большой нагрузке и наблюдении за очень большим количеством хостов позволяет разнести эти части на несколько раздельных машин.
Zabbix состоит из
- собственно сервера мониторинга, который выполняет периодическое получение данных, обработку, анализ и запуск скриптов оповещения
- базы данных (MySQL, PostgreSQL, SQLite или Oracle)
- веб-интерфейса на PHP
- агента — демона, который запускается на отслеживаемых объектах и предоставляет данные серверу. Агент опционален, мониторинг можно производить не только с помощью него, но и по SNMP (версий 1, 2, 3), запуском внешних скриптов, выдающих данные, и несколько видов предопределенных встроенных проверок, таких как ping, запрос по http, ssh, ftp и другим протоколам, а так же замер времени ответа этих сервисов.
В рамках вводной статьи стоит рассказать о том, какая модель сети используется в Zabbix, чтобы лучше понимать, что к чему и получить представление о возможностях системы.
Основная логическая единица — Узлы сети (host), сервера, находящиеся под наблюдением. Каждому серверу присваивается описание и адрес (dns или ip, можно оба, причем с возможностью выбирать, что использовать для соединения).
Узлы объеднияются в группы, например веб-сервера или сервера баз данных. Группы служат для вывода только определенных серверов при наблюдении.
Каждый узел имеет несколько Элементов данных (items) — параметров, за которыми ведется мониторинг. К примеру, на всех серверах у меня есть параметр ping, (он получается с помощью встроенной проверки), который равняется 1, если ответ на последний ping-запрос был получен, иначе 0. А на одном из серверов у меня есть параметр «количество пользователей онлайн», который собирается самописным скриптом из базы данных сайта. Для каждого элемента данных можно указать свой период обновления, способ хранения(сам параметр или скорость его изменения), множитель, временной интервал сбора (например только в рабочее время).
Создавать элементы данных для каждого из множества серверов — сложно, поэтому можно создать узлы-шаблоны. Эти узлы тоже содержат элементы данных, но они не мониторятся напрямую. Вместо этого реальный хост связывается с одним или несколькими шаблонами, и все параметры шаблона автоматически наследуются хостом. Так, элемент ping у меня хранится именно в шаблоне, и я просто связываю все хосты с шаблоном template_ping.
Человек — не робот, и следить за тысячами параметров и думать, не выходит ли это значение за допустимые границы, просто нереально. Но и тут Zabbix предоставляет гибкие возможности по настройке условий-триггеров, которые включаются при авариях и неполадках, и система начинает моргать лампочками (на самом деле красными квадратиками) и изо всех сил пытается показать администратору, что что-то случилось. Между прочим, при включении триггера веб-интерфейс даже начинает попискивать на манер будильника, наверное, чтобы разбудить заснувших на клавиатуре наблюдателей. 🙂 Так что колонки здесь, наверное не помешают. А в упомянутом выше моем шаблоне template_ping есть и триггер, который реагирует на отсутствие пинга больше, чем на две минуты.
А если администратора нет на месте? Ничего, Zabbix достаточно самостоятелен и сможет отправить уведомление на почту, в jabber или sms с помощью gsm-модема, или даже попытаться самостоятельно поднять упавший сервис, выполнив заранее определенные действия, которые запускаются при срабатывании определенных триггеров.
Скучно сидеть и вглядываться в квадратики и бесконечно бегающие цифры? По данным любого параметра система сможет построить график изменения, причем не за предопределенные и жестко заданные временные интервалы (вспомните mrtg/rrdtool: daily, weekly, monthly, yearly), а за любой промежуток времени с максимальным разрешением. Хотите посмотреть в деталях, как изменялась нагрузка на сервер во время хабраэффекта месяц назад? Пожалуйста, график с разрешением в 30 секунд(именно таков интервал опроса по умолчанию) к вашим услугам. Хотите общую картину? Выберите интервал в месяц и посмотрите на среднюю величину, и разброс колебаний до максимума и минимума. Сравнить? Можно создавать сложные графики, отображающие на одном поле несколько параметров, и вы сразу увидите, что пиковые значения Load Average соответствуют пикам трафика.
Для отображения логической структуры сети можно создавать карты сети, отображающие именно расположение узлов сети и связей между ними. Естественно, состояние узлов (доступен или нет) отображается и на карте.
Кроме того, для более удобного обзора есть комплексные отчеты, которые позволяют на одном экране просматривать сразу несколько сущностей — графики, данные, триггеры…
Zabbix — довольно мощная и обширная система, и запасе у него есть еще полдесятка функций, которые позволяют еще больше упростить наблюдение за сетью, такие как мониторинг состояния веб-сайта с помощью автоматического выполнения сценария вроде «залогиниться, посмотреть новые сообщения и выйти», но их я еще даже не касался.
Скриншоты — с официального сайта Zabbix, и остальные можете посмотреть именно там (а их там много) — http://www.zabbix.com/screenshots.php
В ближайшем будущем — о том, как использовать Zabbix вместо Nagios и MRTG и рекомендации по миграции на Zabbix с этих двух систем и сравнение преимуществ и недостатков; о написании собственных скриптов оповещения и сбора данных, о моём личном опыте использования Zabbix в продакшне, и о чем-нибудь еще, что я узнаю в процессе дальнейшего изучения этой замечательной системы.
Windows monitoring and integration with Zabbix
Select a default site language
- Русский
日本語
中文
English
Русский
Español (Latinoamérica)
Português (América Latina)
Confirm
Мониторинг компьютеров и оборудования средствами Zabbix
Вкрадце расскажу о том, как я поднял у себя сервер с Zabbix на борту и мониторил виндовые и FreeBSD машины.
Подключаем репозитрий epel
Epel – Extra Packages for Enterprise Linux, репозиторий, представленный командой Fedora, содержащий в себе огромное количество дистрибутивов, 100% свободный и часто обновляемый.
# yum install http://ftp.yandex.ru/epel/6/i386/epel-release-6-8.noarch.rpm
Устанавливаем софт
Здесь нам понадобится сервер баз данных, веб-сервер, сам zabbix, некоторый софт для работы с snmp и SELinux
# yum install zabbix20-server zabbix20-agent zabbix20-web-mysql httpd policycoreutils-python net-snmp net-snmp-utils
# yum groupinstall "MySQL Database Client" "MySQL Database Server"
Настраиваем сервер баз данных
# service mysqld start
# mysql_secure_installation
Указываем пароль к базе данных и отвечаем утвердительно на остальные вопросы.
# mysql -u root -p
вводим пароль и попадаем в консоль mysql>mysql> CREATE DATABASE zabbix CHARACTER SET utf8;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'myzabbixpass123';
mysql> quit;
Конечно, смените пароль на свой. Итак, идём дальше. Заполним базу данных zabbix из шаблонов:# mysql -u zabbix -pmyzabbixpass123 zabbix < /usr/share/zabbix-mysql/schema.sql
# mysql -u zabbix -pmyzabbixpass123 zabbix < /usr/share/zabbix-mysql/images.sql
# mysql -u zabbix -pmyzabbixpass123 zabbix < /usr/share/zabbix-mysql/data.sql
Ваш пароль указывайте вплотную к ключу -p.
Настраиваем Zabbix
# vi /etc/zabbix-server.conf
ищем строки и раскомментирываем (изменяем) их под наши настройки:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=myzabbixpass123
Далее, модифицируем настройки PHP аналогично:
# vi /etc/php.ini
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia/Sakhalin
При установке zabbix вложил свой конфиг в каталог /etc/httpd/conf.d/zabbix.conf, который добавляет новый каталог для его веб-интерфейса: /usr/share/zabbix/ с алиасом /zabbix (позволю себе процитировать конфиг):
...
Alias /zabbix /usr/share/zabbix
...
Поскольку у нас CentOS, нужно поднастроить SELinux:
# semanage port -a -t http_port_t -p tcp 10051
# setsebool -P httpd_can_network_connect on
Добавляем правило в iptables:
iptables -t mangle -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp -d 192.168.1.4 --dport 80 -j ACCEPT
где:
eth0 – интерфейс локальной сети;
192.168.1.0/24 – адреса локальной сети
192.168.1.4 – адерс сервера zabbix
Ну чтож, стартуем службы и идём в веб-интерфейс:
# /etc/init.d/httpd start
# /etc/init.d/zabbix-server start
# /etc/init.d/zabbix-agent start
Открываем в браузере:
http://IP-адрес/zabbix
Настройка будет чуть ниже.
Мониторинг рабочих станций Windows
Скачиваем zabbix-agent с оф.сайта:
Распаковываем в любой каталог, видим две папки bin и conf. Идём в папку conf, правим единственный файл zabbix_agentd.win.conf:
# указываем через запятую все zabbix-сервера
Server=192.168.1.4, 192.168.1.100
# порт для прослушки, можно не менять - этот порт надо разрешить в файрволле на входящий трафик
ListenPort=10050
#Имя хоста
Hostname=D.Makarov
#Дополнительные параметры, нашёл в одном из мануалов
UserParameter=windows.services,"%ProgramFiles%\zabbix\services.exe"
Остальные параметры я не трогал. Теперь внимательно. Кладём наши файлы в каталог Program files в папку zabbix и выполняем команду с правами администратора:
> \bin\win32\zabbix_agentd.exe –config \conf\zabbix_agentd.win.conf –install
> \bin\win32\zabbix_agentd.exe –config \conf\zabbix_agentd.win.conf –start
В консольку получаем сообщения об успешной установке и запуске службы.
Ставим на тех компах, которые нас интересуют. Под Linux/FreeBSD надо качать соответствующие агенты.
Установка Zabbix-agent под FreeBSD
На FreeBSD я поставил из портов:
# cd /usr/ports/net-mgmt/zabbix-agent
# make config && make && make install
Затем идём и правим конфиг-файл /usr/local/etc/zabbix/zabbix-agentd.conf и вносим аналогичные изменения, как и под Winodws (за исключением, пожалуй, UserParameter).
Настраиваем Web-интерфейс Zabbix
- Залогиниваемся под Admin:zabbix, пароль потом сменим.
- В меню (сверху справа) идём в Profile и меняем язык на привычный (русский есть).
- В основном меню (слева) “Настройка – Узлы сети” и кнопка справа вверху “Создать узел сети”, указываем IP адрес хоста и создаём логические группы (так же в Настройка – Группы узлов). Добавив хост не забываем перейти на вкладку “Шаблоны” и назначить шаблон соответствующего устройства. Например Template OS Windows, Template OS FreeBSD и т.д.
- Можно настроить автообнаружение (см. мануал https://www.zabbix.com/documentation/1.8/ru/manual/auto-discovery), вообще очень советую читать документацию, она очень понятна и наглядна, а возможности там просто космические.
Изображаем устройства на карте:
Настройка – Карты сетей, кнопка “Создать карту…”.
- Кнопки добавления устройства
- Выбор типа узла. Можно выбрать конкретный узел. Группу. Просто изображение. Другую карту и т.д.
- Указываем имя элемента.
- Ссылка на конкретный элемент в базе. Очень важно!
- Изображение. В скобочках – размер картинки.
Для того, чтобы нарисовать связь между узлами – выделяем два узла и жмём + на связи (правее добавления узла). Всё просто.
Начинаем мониторить различные события (Мониторинг – Обзор). В правом верхнем выделим “Группа: Все”, либо интересующую нас группу пользователей. Ну и мы увидим события, которые происходят в системе. Наиболее критичные отмечаются красным цветом. На каждый прямоугольник можно кликнуть и просмотреть детали, либо подтвердить (чем-то похоже на систему уведомлений).
Несколько скринов.
Можно выбрать представление в виде данных
И получить графики или значения по нужному параметру.
Zabbix так же поддерживает мониторинг девайсов вроде Cisco и им подобных по протоколу SNMP (я как-то мониторил подобное прямо из PHP, но это было не слишком удобно). Раздобуду Cisco – обязательно продемонстрирую, прямо здесь, ниже.
Кроме того, есть возможность мониторить программные компоненты – сервера баз данных (загруженность), веб-сервера и т.д. Сам я только начал его осваивать, но, думаю, что это очень полезный администратору инструмент.
Продолжаем разбираться. Сейчас мы добавим в нашу локальную сеть маршрутизатор Cisco (я проведу эту работу с виртуальным GNS3 оборудованием, потому как не могу найти роутер нужной модели). Итак, топология будет такая:
Здесь у нас есть Zabbix-сервер, коммутатор для сопряжения с устройствами, EtherSwitch от Cisco (на базе c3745), а также тестовая станция “1”.
Итак, первым делом создадим Community:
ESW1(config)#snmp-server community my_lokal ro 10
ESW1(config)#access-list 10 permit 192.168.1.2
192.168.1.2 – адрес моего zabbix-сервера в виртуальной конфигурации.
ESW1(config)#int fa0/0
ESW1(config-if)#ip address 192.168.1.3 255.255.255.0
ESW1(config-if)#no shutdown
Отлично, если наш EtherSwitch пингуется, значит всё ок. Теперь идём в CentOS (linux).
Нам нужно проверить работу SNMP:
# snmpwalk -v 2c -c "my_lokal" 192.168.1.3 ifDescr
(я использовал grep, можно обойтись и без него)
Отлично! Мы можем получать значения по SNMP с нашего устройства. Кстати, заметим, что интересующий нас порт имеет index = 5. Получим его состояние:
# snmpget -v 2c -c "my_lokal" 192.168.1.3 1.3.6.1.2.1.2.2.1.8.5
Последняя 5 – это как раз index порта. А эта длинная строка из чисел, разделённых точками – OID. В каждом устройстве их множество, полный список легко гуглится. Вот я привёл OID для получения ifOperStatus порта по его индексу.
Порт у нас поднят. Чтож, самое время подстроить Zabbix.
Добавляем новое устройство:
Не забываем назначит шаблон. Подойдёт Template SNMP Generic. Обратите внимание, что интерфейс агента нужно убрать, а оставить интерфейс SNMP.
Затем переходим в элементы данных и деактивируем все элементы, созданные по умолчанию из шаблона.
После этого создаём новый элемент данных и заполняем его как указано ниже:
При этом присваиваем имя, выбираем тип SNMPv2, а так же в поле Ключ вводим (либо текстовое представление (ifOperStatus.5). SNMP OID делаем аналогичным. Не забываем поменять community.
Далее создаём триггер, который будет реагировать на изменения этого параметра:
В разделе “Триггеры” делаем “Создать” в правом верхнем углу и заполняем поля:
По нажатии кнопки “Добавить” мы выбираем наш элемент данных и делаем условие срабатывания N = 2 (2 – это означает OperStatus = down). После этого поле “Выражение” у нас заполнится так:
{Cisco Router:1.3.6.1.2.1.2.2.1.8.5.last(0)}=2
Сохраняем триггер и готовимся к работе.
Отрубаем порт интерфейса и видим в логах:
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/2, changed state to down
А Zabbix уже недовольно ворчит о срабатывании триггера.
Подобным образом можно настроить реагирование на изменение любых параметров оборудования (подсмотренных через snmpwalk без указания параметров – их там не один десяток).
LLD-мониторинг служб FlexLM (ОБНОВЛЕНО) / Хабр
Эта статья — более детальная проработка предыдущей. Теперь шаблон унифицирован для использования как в Windows (PowerShell), так и в Linux (Bash). Если вы использовали предыдущий шаблон, то все должно встать болт-он.
Что умеет: находить серверы/лицензии, считывать состояния серверов, считывать суммарное и использованное количество лицензий, в случае ошибок передает коды состояний (строку с описанием) и рапортует о них.
Схема все та же:
- Шаблон
- Скрипты (PowerShell/Bash)
- Правильная настройка агента
Шаблон
Здесь все просто: импортировал и забыл. Шаблон был сконструирован в Zabbix версии 3.2, имейте это ввиду.
Как и в прошлый раз, для читаемости используются макросы конструкции {${#ID}} в именах элементов и триггеров. Шаблон уже содержит некоторое количество макросов, вы просто добавляете свои преобразования, исходя из найденных элементов.
Также внутри уже есть несколько базовых триггеров для отслеживания состояния серверов и отдельных лицензий.
Скрипт для Windows
Скрипт для Windows писался под Windows 7 SP1 на PSv4, на XP он не работает. Само собой, на сервере должен быть разрешен запуск PowerShell-скприптов (Set-ExecutionPolicy Unrestricted).
Показатели сервера лицензирования берутся из утилиты lmutil.exe, которая входит в дистрибутивы разных вендоров. Для нормальной работы скрипта необходимо прописать путь к ней в системные переменные среды в переменную Path без кавычек. К примеру, по умолчанию для CSoft v11.5 это папка «C:\Program Files (x86)\CSoft\CS License Server», а для Autodesk v11.13.1 — «C:\Autodesk\Network License Manager». В качестве разделителя используйте используется знак «;».
Если вы используете сервер лицензий Autodesk, то посмотрите особенность под спойлером.
СпойлерС этим разработчиком оказалось не все так просто. «Из коробки» lmutil отдает ошибку -1,359. Хотя если указать порт@хост, то все нормально.
Связано такое поведение скорее всего с тем, что в старших версиях FLEXlm lmutil сопоставляет пути переменных LM_LICENSE_FILE и VENDOR_LICENSE_FILE. Пути эти стандартные и по умолчанию не существуют.
Для решения достаточно взять lmutil.exe версии 11.5 из произвольного пакета (CSoft/Nanosoft). Или выполнить на хосте команду вида
lmutil lmpath -override all «путь_к_файлу_вашей_лицензии»
Аналогичным образом можно использовать команду
lmutil lmpath -add «произвольное_имя_вендора» «путь_к_файлу_вашей_лицензии»
Команды эти нужно выполнить от имени системной учетной записи, иначе Zabbix-агент так и не сможет работать с утилитой. Сделать это можно с помощью утилиты PsExec с ключом -s: psexec -s cmd и в открывшее окно командной строки внести нужные команды.
Подробнее об этих и других командах вы можете узнать из инструкции по лицензированию, рекомендую к прочтению при дебаге.
Скрипт для Linux
А этот скрипт писался под Ubuntu. О том, как пошагово установить сервер лицензирования Autodesk на Ubuntu читай ниже (Ubuntu официально не поддерживается).
Скрипт копируете в произвольную папку на сервере (путь ее указываете в конфиге агента, об этом ниже), не забывайте дать соответствующие права на его исполнение.
Также необходимо указать в скрипте каталог утилиты lmutil в разделе «Пользовательские переменные».
flex.sh (обновлен 2017/10/26)Исправлены регулярки для обнаружения количества лицензий
Исправлено обнаружение серверов, когда их >=2
Конфигурация Zabbix-агента
Добиться одновременной работы разных систем от одного шаблона позволяет правильная настройка агента, а точнее его части UserParameter. Еще этот метод позволяется раз и навсегда забыть про перезапуск агента в случае добавления нового функционала в виде скриптов. Это важно для высоконагруженных серверов, где при перезапуске агента можно потерять часть метрик.
Итак, в данном случае используется строка:
для Windows — UserParameter=ZScript[*],powershell C:\Zabbix\Scripts\ $1.ps1 $2 $3 $4
для Linux — UserParameter=ZScript[*],bash /etc/zabbix/scripts/$1.sh $2 $3 $4
Пути и количество переменных указываете свои. Переменных можно указать с запасом, лишним не будет.А к необходимым скриптам можно будет обратиться, используя ключ ZScript[$1,$2,$3,$4].
Спасибо за внимание!
Благодарности
Хочется поблагодарить моего работодателя за мотивацию к написанию статьи. Если бы не вы, то мне бы не пришлось оптимизировать нагрузку на наших слабых серверах, переводя сервисы на Ubuntu Server!
Обновление! 2017/12/26
В связи с последними веяниями я решил переписать все под серверный вариант работы без юзерпараметров и скриптов на клиентах. Вам понадобится шаблон и скрипт в каталог внешних проверок (для Ubuntu — /usr/lib/zabbix/externalscripts). Не забывайте дать соответствующие права на исполнение этого файла. Шаблон экспортирован из версии 3.4.4. Из новшеств: теперь Zabbix получает список активных пользователей той или иной лицензии.
Шаблон универсален и работает как для Windows, так и для Linux. Из дополнительных настроек требуется:
- Windows: прописать путь к lmutil в системные переменные среды
- Linux: скопировать lmutil в /usr/bin (опять же, для Ubuntu) и дать права на исполнение. Если используете сервер лицензий только под wine, то ниже я оставлю ссылку на скачивание только lmutil.
lmutil из пакета Autodesk NLM 11.13www95.zippyshare.com/v/MOawVaur/file.html
SHA-1: 02EF9BBF03C058A82AD31B3764B670EA7063C80E
SHA-256: F9343E73B2ACCC4ABF7F7011C1E4CA123BB82D1E66412494E42F8A473D6ACCFB
LLD-мониторинг железа под Windows на PowerShell / Хабр
Changelog
Пришло время и мне собрать свой велосипед для мониторинга физического состояния Windows-железок. Готового решения или хоть более или менее работающего найти не удавалось с момента моего знакомства с Zabbix, а это более 3 лет. А тем более, чтобы оно было… элегантно что ли. Лично мне даже в таких вещах хочется видеть стройность и максимальную функциональность. Именно поэтому далее рассматривается только LLD и PowerShell. Ну и конечно же только бесплатное ПО.
Итак, мониторинг чего будет производиться:
- S.M.A.R.T. дисков (информация, общее состояние и отдельные показатели)
- Температуры, напряжение, обороты кулеров (на ваш выбор)
А выглядеть это все будет примерно так:
Суммарно понадобятся:
- smartmontools
- OpenHardwareMonitor
- NSSM
- 2 скрипта на PS, приведенные ниже
- шаблон
Шаблон
Под спойлером находится актуальный шаблон. Просто сохраните содержимое в формате xml и импортируйте в свой Zabbix.
Шаблон создан в Zabbix версии 3.2, возможно, будет работать и в более ранних версиях. Ключи стандартны и имеют вид ZScript[имя_скрипта, параметр1,.., параметрN]. Параметры передаются непосредственно в сам скрипт.
Надеюсь, шаблон получился максимально простым и понятным.
Скрипты PS
Ниже приведены необходимые скрипты. Внутри уже находятся и обнаружение, и запрос отдельных элементов. Работа проверена на Windows от XP SP3 до 2016. Само собой, решение с Execution Policy остается за вами.windows.hdd.ps1 -> Для smartmontools
Обнаруживаются только диски с задействованным СМАРТом. Параметры запрашиваются из столбца «RAW_VALUE». Хотите мониторить другой параметр? Просто укажите его номер. По умолчанию скобки и их содержимое отбрасываются. Если нужный вам параметр диск не отдает, то возвращается пустое поле.windows.hard.ps1 -> для OHM
По умолчанию скрипт не обнаруживает названия датчиков, в которых есть #. Для чего это нужно, смотрите ниже.
Также зарезервировано одно имя датчика — Vbat. Это напряжение аккумулятора БИОС. Его значение вынесено в отдельный элемент для триггера (срабатывает если менее 2,9V).
Значения температур и оборотов кулеров на выходе целочисленные, значения напряжений передаются как есть.
Теоретически, можно обнаруживать и другие показатели (нагрузки, частоты,..). Используйте для этого соответствующий второй параметр в ключе. К примеру: ZScript[hard,discovery,load].
Подготовка Zabbix-агента
Для максимальной унификации я использую следующий и единственный параметр для своих скриптов:
UserParameter=ZScript[*],powershell C:\System\Zabbix\Scripts\windows.$1.ps1 "$2" "$3"
Это дает максимальную гибкость и однообразность. Если нужно будет добавить еще параметров для каких-либо скриптов, можно просто добавить переменных в кавычках. На текущие работающие скрипты это никак не повлияет. Префикс windows я использую на всякий случай, мне так удобно хранить шаблоны для гарантированной идентификации.
smartmontools
Для мониторинга состояния дисков используется smartmontools (версия 6.5 на момент написания статьи). При установке ПО по умолчанию ставится утилита smartctl-nc — именно она используется в скрипте для облегчения жизни вашего сервера. Также потребуется прописать пусть к папке bin в переменных средах.
Путь просто добавляем в конец переменной Path через точку с запятой. По умолчанию — C:\Program Files\smartmontools\bin
OpenHardwareMonitor
Для датчиков же используется OHM. Софт бесплатный с открытым кодом. Установка тривиальна, но для полноценной работы необходимо запускать программу в качестве службы. Для подобных вещей есть NSSM, я бы все же советовал качать последнюю сборку. А здесь можно посмотреть синтаксис.
Обещанный выбор датчиков обеспечивается за счет того, что названия датчиков можно изменять! Изменяете имена на удобочитаемые (они будут использованы в именах элементов), а ненужные датчики комментируете #.
Не забывайте перезапустить программу/службу для применения переименования.
Итого
В итоге получился неплохой инструмент для мониторинга. Желающие могут навесить свои триггеры на нужные прототипы элементов. Или же полностью переработать шаблон.
2017/07/05 ОБНОВЛЕНИЕ: исправлена ошибка в windows.hdd.ps1 — теперь в JSON не появляется запятая в начале.
Мониторинг Windows и интеграция с Zabbix
Выберите язык сайта по умолчанию
- Русский
日本語
中文
английский
Русский
Español (Латиноамерика)
Português (Латинская Америка)
Подтвердить
.
Как мониторить работу службы через Zabbix
Прочитано:
3 713
На предыдущей работе я довольно напользовался тем, что в моей системе мониторинга Zabbix использовал разобранную возможность мониторить статусы служб служб в системе. К примеру есть важный процесс и его нужно мониторить, как он только выключится, то нужно сразу же смотреть почему такое произошло, а не ждать когда тебе начнут звонить. Караул — почему сервисы не работают как и должны работать.Как в кратчайшие сроки поставить те или иные сервисы Windows на мониторинг в универсальный конструктор Zabbix .
У меня Zabbix развернут на Ubuntu 12.04.5 Сервер amd64 версии 2.2.11
Экзорчик @ srv-mon: ~ $ apt-cache show zabbix-server-mysql | grep Версия
Версия: 1: 2.2.11-1 + точный
Первое условие на станции Windows нужно мониторить на предмет статуса запущенного сервиса Zabbix —агент и заведен на Zabbix -сервер.
Задача: мониторить буду службу: FusionInventory-Agent
это агент GLPI посредством которого происходит инвентаризация рабочей станции: Какая ось, какой софт, какое железо, кто сейчас работает, IP -адрес станции и т.д.
Теперь создаю новый элемент данных в дефолтном шаблоне Шаблон ОС Windows:
http: // IP & DNS — Конфигурация — Шаблоны — Шаблон ОС Windows — Элементы — Создать элемент
Имя: Агент GLPI
Тип: Zabbix агент
Ключ: service_state [FusionInventory-Agent]
Интервал обновления (в секундах): 60
Срок хранения истории (в днях): 7
Срок хранения тренда (в днях): 365
Новое приложение: Services
Описание: Мониторим статус работы службы установленного агента GLPI
Включено: Отмечаю галочкой
Сохраняю внесенные изменения: Сохранить
На заметку: ключ service_state принимает ответные значения:
Состояние службы.0 — выполняется, 1 — приостановлено, 2 — ожидание запуска, 3 — ожидание паузы, 4 — ожидание продолжения, 5 — ожидание остановки, 6 — остановлено, 7 — неизвестно, 255 — нет такой службы
Теперь создаю Trigger (описание неисправностей для этого элемента данных), в этом же Шаблон ОС Windows — Триггеры — Создать триггер
Имя: Состояние службы — Агент GLPI на {HOSTNAME}
Выражение: — Добавить . Находим правило, в моем случае правило следующее:
{Шаблон ОС Windows: service_state [FusionInventory-Agent].last ()} = 6
Уровень серьезности: Высокий
Включено: Отмечаю галочкой
Сохраняю внесенные изменения: Сохранить
Теперь проверяю, сейчас на хосте ( W7X86 ) выключаю / останавливаю службу и в Zabbix’е — Мониторинг у меня в где Станции Windows обозначена среагированная проблема:
Перехожу в группу и вижу на каких хоста сработало о неполадках:
Тип уведомление: Высокий
Время последнего изменения статуса
Продолжительность недоступности сервиса в связи с выключенным состоянием службы FusionInventory-Agent
вернув сервис в режим «Старт» , уведомление в Zabbix о сработанных триггерах вернулось в норму:
Если ведем какие-либо работы, то можно на сработанных триггер по этому хосту поставить комментарий ( Подтверждение ) или же когда сервис в строю:
Сообщение: Работа сервиса восстановлена
После нажимаю: Подтверждение и возврат
По такому принципу можно настроить свой шаблон и свои элементы данных, которые нужно отслеживать.
На этом собственно пока все, до новых встреч на моем блога, с уважением автор блога — Экзорчик .
.
Универсальная система мониторинга Zabbix — введение / Хабр
В любой сети, где есть больше, чем один сервер, очень полезно бывает иметь перед глазами полную картину происходящего. В крупных сетях, где количество хостов переваливает за несколько десятков, защищенных каждой отдельной в отдельной сети — непосильная задача для администраторов. Для облегчения задачи наблюдения применяются методы мониторинга, и я расскажу об одной из них, которой на Хабре не посвящено ни одной полноценной статьи.
И так, встречайте: Zabbix.Система состоит из нескольких частей, и при больших нагрузках и наблюдении за очень большим хостов позволяет разнести эти части на несколько раздельных машин.
Zabbix состоит из
- собственно сервера мониторинга, который выполняет периодическое получение данных, обработку, анализ и запуск скриптов оповещения
- базы данных (MySQL, PostgreSQL, SQLite или Oracle)
- веб-интерфейс на PHP
- — демона, который запускается на отслеживаемых объектах и предоставляет данные серверу.Агент опционален, мониторинг можно выполнять не только с его помощью, но и по SNMP (версии 1, 2, 3), запуском внешних скриптов, выдающих данных и нескольких видов предопределенных встроенных проверок, таких как ping, запрос по http, ssh, ftp и другим протоколам, а так же замер времени ответа этих сервисов.
.
Основная логическая единица — Узлы сети (хост), сервера, находящиеся под наблюдением. Каждому серверу присваивается описание и адрес (dns или ip, можно оба, причем выбрать, что использовать для соединения).
Узлы объеднияются в группы , например веб-сервера или сервера баз данных. Группы для вывода только сигналов при наблюдении.
Каждый узел имеет несколько Элементов данных (items) — параметры, за которым ведется мониторинг.К примеру, на всех серверах у меня есть параметр ping, (он получается с помощью встроенной проверки), который равняется 1, если ответ на последний ping-запрос был получен, иначе 0. А на одном из серверов у меня есть параметр «количество пользователей» онлайн », который собирается самописным скриптом из базы данных сайта. Для каждого элемента данных можно указать свой период обновления, способ хранения (сам параметр или скорость его изменения), множитель, временный интервал сбора (например только в рабочее время).
Создавать элементы данных для каждого из множества серверов — сложно, поэтому можно создать узлы- шаблонов . Эти узлы тоже содержат элементы данных, но они не мониторятся напрямую. Вместо этого реальный хост связывается с одним или шаблонами, и все параметры шаблона автоматически наследуются хостом. Так, элемент ping у меня хранится именно в шаблоне, и я просто связываю все хосты с шаблоном template_ping.
Человек — не робот, и контролирует тысячами параметров и думать, не выходит ли это за допустимые границы, просто нереально.Но и тут Zabbix предоставляет гибкие возможности по настройке условий- триггеров , которые включаются при авариях и неполадках, и система начинает моргать лампочками (на самом деле красными квадратиками) и изо всех сил пытается показать администратору, что что-то случилось. Между прочим, при включении триггера веб-интерфейс даже начинает попискивать на манер будильника, наверное, чтобы разбудить заснувших на клавиатуре наблюдателей. 🙂 Так что колонки здесь, наверное не помешают. А в упомянутом выше моем шаблоне template_ping есть и триггер, который реагирует на отсутствие пинга больше, чем на две минуты.
А если администратора нет на месте? Ничего, Zabbix достаточно самостоятелен и выполняет функцию отправки сообщений на почту, в jabber или sms с помощью gsm-модема, или даже пытается самостоятельно поднять упорный сервис, выполнив заранее действия , которые запускаются при срабатывании определенных триггеров.
Скучно сидеть и вглядываться в квадратики и бесконечно бегающие цифры? По данным любого графика системы построить изменений, причем не за предопределенные и жестко заданные временные интервалы (вспомните mrtg / rrdtool: ежедневно, еженедельно, ежемесячно, ежегодно), а за любое время с максимальным разрешением.Хотите посмотреть в деталях, как изменялась нагрузка на сервер во время хабраэффекта месяц назад? , График с разрешением в 30 секунд (именно таков интервал опроса по умолчанию) вашим услугам. Хотите общую картину? Выберите интервал в месяц и посмотрите на интервал в месяц, и разброс колебаний до максимума и минимума. Сравнить? Можно создать сложные графики, отображающие на одном поле несколько параметров, и вы сразу увидите, что пиковые значения нагрузки соответствуют пикам трафика.
Для отображения логической структуры сети можно создать карты сети , отображающие расположение узлов сети и связей между ними. Естественно, состояние узлов (доступно или нет) отображается и на карте.
Кроме того, для более удобного обзора есть комплексные отчеты , которые позволяют на одном экране просматривать сразу несколько сущностей — графики, данные, триггеры…
Zabbix — довольно мощная и обширная система, и запас у него есть еще полдесятка функций, которые позволяют еще больше упростить наблюдение за сетью, как мониторинг состояния веб-сайта с помощью автоматического выполнения сценария вроде «залогиниться, посмотреть новые сообщения и выйти», но их я еще даже не касался.
Скриншоты — официальная версия сайта Zabbix, и остальные могут посмотреть именно там (а их там много) — http://www.zabbix.com/screenshots.php
В ближайшем будущем — о том, как использовать Zabbix вместо Nagios и MRTG и рекомендации по перемещению на Zabbix с этими двумя системами и сравнение преимуществ и недостатков; о написании собственных скриптов оповещения и сбора данных, о моём личном опыте использования Zabbix в продакшне, и о чем-нибудь еще, что я узнаю в процессе дальнейшего изучения замечательной системы.
.
Мониторинг компьютеров и средств системы Zabbix
Вкрадце расскажу о том, как я поднял у себя сервер с Zabbix на борту и мониторинг виндовые и FreeBSD машины.
Подключаем репозитрий epel
Epel — Дополнительные пакеты для Enterprise Linux, репозиторий, представленный командой Fedora, предоставленный себе огромное количество дистрибутивов, 100% свободный и часто обновляемый.
# yum install http://ftp.yandex.ru/epel/6/i386/epel-release-6-8.noarch.rpm
Устанавливаем софт
Здесь нам понадобится сервер баз данных, веб-сервер, сам zabbix, некоторый софт для работы с snmp и SELinux
# yum install zabbix20-server zabbix20-agent zabbix20-web-mysql httpd policycoreutils-python net-snmp net-snmp-utils
# yum groupinstall "Клиент базы данных MySQL" "Сервер базы данных MySQL"
Настраиваем сервер баз данных
# запуск службы mysqld
# mysql_secure_installation
Указываем пароль к базе данных и отвечаем утвердительно на остальные вопросы.
# mysql -u корень -p
ввод пароля и попадаем в консоль mysql>
mysql> СОЗДАТЬ БАЗУ ДАННЫХ zabbix CHARACTER SET utf8;
mysql> ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ ДЛЯ zabbix. * 'Zabbix' @ 'localhost' ИДЕНТИФИЦИРОВАНО 'myzabbixpass123';
mysql> выйти;
Конечно, смените пароль на свой. Итак, идём дальше. Заполним базу данных zabbix из шаблонов:
# mysql -u zabbix -pmyzabbixpass123 zabbix usr / share / zabbix-mysql / schema.sql
# mysql -u zabbix -pmyzabbixpass123 zabbix # mysql -u zabbix -pmyzabbixpass123 zabbix Ваш пароль указывайте крайнюю к ключу -p.
Настраиваем Zabbix
# vi /etc/zabbix-server.conf
ищем строки и раскомментирываем (изменяем) их под наши настройки:
DBHost = localhost
DBName = zabbix
DBUser = zabbix
DBPassword = myzabbixpass123
Далее, модифицируем настройки PHP аналогично:
# vi / etc / php.ini
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia / Sakhalin
При установке zabbix вложил свой конфиг в каталог /etc/httpd/conf.d/zabbix.conf, который новый каталог для его веб-интерфейса: / usr / share / zabbix / с алиасом / zabbix (позволил себе процитировать конфиг):
...
Псевдоним / zabbix / usr / share / zabbix
...
нам у нас CentOS, нужно поднастроить SELinux:
# semanage port -a -t http_port_t -p tcp 10051
# setsebool -P httpd_can_network_connect на
Добавляем правило в iptables:
iptables -t mangle -A INPUT -i eth0 -s 192.168.1.0 / 24 -p tcp -d 192.168.1.4 --dport 80 -j ПРИНЯТЬ
где:
eth0 - интерфейс локализации сети;
192.168.1.0/24 - адрес локальной сети
192.168.1.4 - адерс сервера zabbix
Ну чтож, стартуем службы и идём в веб-интерфейс:
# /etc/init.d/httpd start
# /etc/init.d/zabbix-server start
# /etc/init.d/zabbix-agent start
Открываем в браузере:
http: // IP-адрес / zabbix
Настройка будет чуть ниже.
Мониторинг рабочих станций Windows
Скачиваем zabbix-agent с оф.сайта:
Распаковываем в любой каталог, видим две папки bin и conf. Идём в папку conf, правим единственный файл zabbix_agentd.win.conf:
# указываем через запятую все zabbix-сервера
Server = 192.168.1.4, 192.168.1.100
# порт для прослушки, можно не менять - этот порт надо разрешить в файрволле на входящий трафик
ListenPort = 10050
# Имя хоста
Hostname = Д.Makarov
# Дополнительные параметры, нашёл в одном из мануалов
UserParameter = windows.services, "% ProgramFiles% \ zabbix \ services.exe"
Остальные параметры я не трогал. Теперь внимательно. Кладём наши файлы в каталог Программные файлы в папке zabbix и выполняем команду с правами администратора:
> \ bin \ win32 \ zabbix_agentd.exe –config \ conf \ zabbix_agentd.win.conf –install
> \ bin \ win32 \ zabbix_agentd.exe –config \ conf \ zabbix_agentd.win.conf –start
В консольку получаем сообщения об успешной установке и запуске службы.
Ставим на тех компах, которые нас интересуют. Под Linux / FreeBSD надо качать соответствующие агенты.
Установка Zabbix-agent под FreeBSD
На FreeBSD я поставил из портов:
.
# cd / usr / ports / net-mgmt / zabbix-agent
# make config && make && make install
Затем идём и правим конфиг-файл / usr / local / etc / zabbix / zabbix-agentd.conf и вносим аналогичные изменения, как и под Winodws (за исключением, пожалуй, UserParameter).
Настраиваем Web-интерфейс Zabbix
- Залогиниваемся под Admin: zabbix, пароль потом сменим.
- В меню (сверху справа) идём в Профиль и меняем язык на привычный (русский есть).
- В основном меню (слева) «Настройка - Узлы сети» и кнопка справа вверху «Создать узел сети», указываем IP-адрес хоста и создаём логические группы (так же в Настройка - Группы узлов).Добавив не забываем перейти на вкладку «Шаблоны» и назначить шаблон устройства. Например, Шаблон ОС Windows, Шаблон ОС FreeBSD и т.д.
- Можно настроить автообнаружение (см. Мануал https://www.zabbix.com/documentation/1.8/ru/manual/auto-discovery), вообще очень советую читать документацию, она очень понятна и наглядна, а там просто космические.
Изображаем устройство на карте:
Настройка - Карты сетей, кнопка «Создать карту…».
- Кнопки добавить устройство
- Выбор типа узла. Можно выбрать конкретный узел. Группу. Просто изображение. Другую карту и т.д.
- Указываем имя элемента.
- Ссылка на конкретный элемент в базе. Очень важно!
- Изображение. В скобочках - размер картинки.
Для того, чтобы нарисовать связь между узлами - выделять два узла и жмём + на связи (правее добавления узла). Всё просто.
Начинаем мониторить различные события (Мониторинг - Обзор).В правом верхнем выделим «Группа: Все», либо интересующую нас группу пользователей. Ну и мы увидим события, которые происходят в системе. Наиболее критичные отмечаются красным цветом. На каждый прямоугольник можно кликнуть и просмотреть детали, либо подтвердить (чем-то похоже на систему уведомлений).
Несколько скринов.
Можно выбрать представление в виде данных
И графики или значения по нужному параметру.
Zabbix так же поддерживает девайсов вроде Cisco и им подобных мониторинг по протоколу SNMP. Раздобуду Cisco - обязательно красюю, прямо здесь, ниже.
Кроме того, есть возможность мониторить программные компоненты - сервера баз данных (загруженность), веб-сервера и т.д. Сам я только начал его осваивать, но, думаю, что это очень полезный администратору инструмент.
Продолжаем разбираться.Сейчас мы добавим в нашу локальную сеть маршрутизатор Cisco (я проведу эту работу с виртуальным оборудованием GNS3, потому что не могу найти роутер нужной модели). Итак, топология будет такая:
Здесь у нас есть Zabbix-сервер, коммутатор для сопряжения с устройствами, EtherSwitch от Cisco (на базе c3745), а также тестовая станция «1».
Итак, первым делом создадим Сообщество:
ESW1 (config) # snmp-server community my_lokal ro 10
ESW1 (config) # access-list 10 разрешение 192.168.1.2
192.168.1.2 - адрес моего zabbix-сервера в представленной конфигурации.
ESW1 (config) #int fa0 / 0
ESW1 (config-if) #ip address 192.168.1.3 255.255.255.0
ESW1 (config-if) # no shutdown
Отлично, если наш EtherSwitch пингуется, значит всё ок. Теперь идём в CentOS (linux).
Нам нужно проверить работу SNMP:
# snmpwalk -v 2c -c "my_lokal" 192.168.1.3 ifDescr
(я использовал grep, можно обойтись и без него)
Отлично! Мы можем получать значения по SNMP с нашего устройства.Кстати, заметим, что интересующий нас порт имеет index = 5. Получим его состояние:
# snmpget -v 2c -c "my_lokal" 192.168.1.3 1.3.6.1.2.1.2.2.1.8.5
Последняя 5 - это как раз индекс порта. А эта длинная строка из чисел, разделенными точками - OID. В каждом устройстве их множество, полный список легко гуглится. Вот я привёл OID для получения ifOperStatus порта по его индексу.
Порт у нас поднят. Чтож, самое время подстроить Zabbix.
Добавляем новое устройство:
Не забываем назначит шаблон. Подойдёт Template SNMP Generic. Обратите внимание, что интерфейс агента нужно убрать, оставить интерфейс SNMP.
Затем переходим в элементы данных и деактивируем все элементы, созданные по умолчанию из шаблона.
После этого создаём новый элемент данных и заполняем его как указано ниже:
При этом присваиваем имя, выбираем тип SNMPv2, а так же в поле Ключ вводим (либо текстовое представление (ifOperStatus.5). SNMP OID делаем аналогичным. Не забываем поменять сообщество.
Далее создаём триггер, который будет реагировать на изменения этого программы:
В разделе «Триггеры» делаем «Создать» в верхнем углу и заполняем поля:
По нажатию кнопки «Добавить» мы выбираем наш элемент данных и делаем условие срабатывания N = 2 (2 - это означает OperStatus = down). После этого поля «Выражение» у нас заполнится так:
{Маршрутизатор Cisco: 1.3.6.1.2.1.2.2.1.8.5.last (0)} = 2
Сохраняем триггер и готовимся к работе.
Отрубаем порт интерфейса и видим в логах:
% LINEPROTO-5-UPDOWN: линейный протокол на интерфейсе FastEthernet1 / 2, состояние изменено на неработающее
А Zabbix уже недовольно ворчит о срабатывании триггера.
любым способом можно настроить реагирование на изменение параметров оборудования (подсмотренных через snmpwalk без указаний - их там не один десяток).
.