Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
zabbix_iostat [2014/02/14 13:01] metallic [Подготовка хоста] |
zabbix_iostat [2022/03/25 17:00] (текущий) |
===== Настройка zabbix-агента ===== | ===== Настройка zabbix-агента ===== |
| |
| В конфиге агента ничего не обычного, главное прописать свои параметры, один для поиска устройств(с помощью скрипта devs_discovery.py), второй для получения показаний по нужной метрике(с помощью скрипта iostat_parse.sh): |
| |
| UserParameter=custom.disks.discovery_python,/opt/zabbix/devs_discovery.py |
| UserParameter=custom.disks.iostat[*],/opt/zabbix/iostat_parse.sh $1 $2 |
| |
| Первый параметр без аргументов, второй принимает два аргумента - блочное устройство и имя интересующей нас метрики. |
| |
| Теперь перезапускаем агента и тестируем: |
| |
| # zabbix_agentd -t custom.disks.discovery_python |
| custom.disks.discovery_python[/opt/zabbix/devs_discovery.py] [t|{ |
| "data":[ |
| |
| {"{#DEV}": "dm-0", "{#MOUNTPOINT}": "/"}, |
| {"{#DEV}": "sda", "{#MOUNTPOINT}": ""}, |
| {"{#DEV}": "dm-2", "{#MOUNTPOINT}": "/home"}, |
| {"{#DEV}": "sdb", "{#MOUNTPOINT}": ""} |
| |
| ] |
| }] |
| |
| # zabbix_agentd -t custom.disks.iostat[sdb,util] |
| custom.disks.iostat[/opt/zabbix/iostat_parse.sh sdb util] [t|0.00] |
| |
| Если все в порядке, настройка на этом завершена. |
===== Настройка zabbix-сервера ===== | ===== Настройка zabbix-сервера ===== |
| |
| Все настройки на стороне сервера проводятся через веб-интерфейс. Вначале создаем шаблон(Configuration -> Templates -> Create template), при добавлении которого хосту, на этом хосте будет производиться мониторинг дисковой активности. Ниже представлен скриншот с параметрами, задаем имя шаблона и добавляем его в группу templates. |
| |
| {{ :zabbix:iostat:step1.png?direct&300 |}} |
| |
| Далее создаем приложение iostat (Configuration -> Templates -> Template IOstat Linux -> Applications): |
| |
| {{ :zabbix:iostat:step2.png?direct&300 |}} |
| |
| Теперь создадим регулярное выражение для фильтрации малоинтересных разделов, таких как /boot, /boot/efi и т.д. Назовем его Linux disk filter(Administration -> General -> Regulat expressions -> New regular expression): |
| |
| {{ :zabbix:iostat:step3.png?direct&300 |}} |
| |
| <note important>Zabbix поддерживает только posix регулярные выражения, при этом веб-интерфейс поддерживает как posix, так и perl регулярные выражения, что может привести к путанице. Например при составлении рег. выражения оно проходит тестирование в веб-интерфейсе, но по факту не работает, в этом случае надо проверить, соответствует ли оно стандарту posix.</note> |
| |
| Следующий шаг - создание discovery rule, т.е. правила, которое будет автоматически определять устройства и создавать для них указанные элементы(Configuration -> Templates -> Template IOstat Linux -> Discovery): |
| |
| {{ :zabbix:iostat:step3_2.png?direct&300 |}} |
| |
| Здесь важными параметры: |
| |
| * Key - наш собственный ключ, который указали в конфиге агента |
| * Filter - параметры фильтрации объектов, в данном случае в качестве параметра по которому фильтруем - точка монтирования, если она известена, то она отдается агентом с именем параметра MOUNTPOINT, ну и соответственно указывается ранее созданное рег. выражение, которым фильтровать этот параметр. |
| |
| Теперь создаем прототипы источников данных, т.е. на каждое устройство будет создан такой прототип и будет выполнятся коллекционирование данных, ниже приведен пример для метрики await(Configuration -> Templates -> Template IOstat Linux -> Item prototypes -> Create item prototype): |
| |
| {{ :zabbix:iostat:step4.png?direct&300 |}} |
| |
| * Key - тут опять же указывается ранее созданный пользовательский параметр и ему передаются два аргумента: имя блочного устройства(DEV)и имя интересующей нас метрики(await) |
| |
| <note important>Параметры rsec/s и wsec/s возвращаются в кбайт, поэтому в прототипе для них нужно задать custom multiplier равный 1024</note> |
| |
| Таким образом создается нужное кол-во прототипов данных для интересующих метрик. Поддерживаются следующие метрики: rrqm/s, wrqm/s, r/s, w/s, rsec/s, wsec/s, avgrq-sz, avgqu-sz, await, svctm, util. Что они означают можно поглядеть в мануале по iostat. У меня получились следующие прототипы данных: |
| |
| {{ :zabbix:iostat:step5.png?direct&300 |}} |
| |
| И в заключении создаются прототипы графиков. В примере ниже создается график, который отображается скорочть чтения/записи устройства(Configuration -> Templates -> Template IOstat Linux -> Graph prototypes -> Create graph prototype): |
| |
| {{ :zabbix:iostat:step6.png?direct&300 |}} |
| |
| В итоге у меня получилось четыре прототипа графиков: |
| |
| {{ :zabbix:iostat:step7.png?direct&300 |}} |
| |
| ===== Заключение ===== |
| |
| Полученный результат можно увидеть на скриншотах ниже. |
| |
| {{:zabbix:iostat:result1.png?direct&300|}} {{:zabbix:iostat:result2.png?direct&300|}} {{:zabbix:iostat:result3.png?direct&300|}} {{:zabbix:iostat:result4.png?direct&300|}} |
| |
| ===== Использованная литература ===== |
| |
| - [[http://michael.nomanlab.org/2012/09/zabbix-iostat.html|ZABBIX & IOSTAT. Мониторим диски]] |
| - [[http://virtuallyhyper.com/2013/06/monitor-disk-io-stats-with-zabbix/|Monitor Disk IO Stats with Zabbix]] |
| - [[https://www.zabbix.com/documentation/2.2/manual/discovery/low_level_discovery|Low-level discovery]] |
| |
| |