Результат отображения информации на карте от "Элементов данных"Сегодня я задался целью – получить информацию по тесту SpeedTest через Zabbix и как добавляется информация на карту сетей. Вот самая важная часть – это вывести информацию на карту, и чтобы она обновлялась с учетом времени, которое задано в «Элементы данных».

Шаг №1: Развернут сервис мониторинга Zabbix на Ubuntu 18.04 Server, о том как это сделать смотреть заметку.

Шаг №2: Устанавливаю (на хост где выполнен «Шаг №1») утилиту которая взаимодействует с сервисом speedtest.net дабы вывести текущий PING, скорость загрузки и отдачи, но все это через консоль командной строки

ekzorchik@srv-zabbix:~$ apt-cache search speedtest-cli

speedtest-cli - Command line interface for testing internet bandwidth using speedtest.net

ekzorchik@srv-zabbix:~$ sudo apt-get install -y speedtest-cli

Шаг №3: Создаю папку где будет располагаться результат консольного взаимодействия утилиты speedtest-cli с сайтом через который делается замер текущего ответа Вашей системы, скорости загрузки и отдачи:

ekzorchik@srv-zabbix:~$ sudo mkdir /usr/lib/zabbix/script

Шаг №4: Запускаю speedtest:

ekzorchik@srv-zabbix:~$ sudo speedtest-cli --simple

Ping: 4.422 ms

Download: 48.80 Mbit/s

Upload: 3.87 Mbit/s

ekzorchik@srv-zabbix:~$

Шаг №5:  Создаю файл с показателями speedtest:

ekzorchik@srv-zabbix:~$ sudo bash -c "speedtest-cli --simple > /usr/lib/zabbix/script/speed.txt"

Шаг №6: Извлекаю из негоШаг №5») информацию: ping, Download, Upload

Ping:

ekzorchik@srv-zabbix:~$ cat /usr/lib/zabbix/script/speed.txt | grep Ping | cut -d " " -f2

4.33

Download:

ekzorchik@srv-zabbix:~$ cat /usr/lib/zabbix/script/speed.txt | grep Download | cut -d " " -f2

50.44

Upload:

ekzorchik@srv-zabbix:~$ cat /usr/lib/zabbix/script/speed.txt | grep Upload | cut -d " " -f2

3.83

Шаг №7: Добавляю в cron строку обновления информации: Ping, Download & Upload и сохранения полученных значений в файл «Шаг №5»:

ekzorchik@srv-zabbix:~$ sudo crontab -e

*/10 * * * * speedtest-cli --simple > /usr/lib/zabbix/script/speed.txt

Шаг №8: Теперь создаю конфигурационный файл «speedtest.conf» для Zabbixагента который будет считывать эти три параметра (ping, Download, Upload):

ekzorchik@srv-zabbix:~$ sudo nano /etc/zabbix/zabbix_agentd.d/speedtest.conf

UserParameter=ping[*],cat /usr/lib/zabbix/script/speed.txt | grep Ping | cut -d " " -f2

UserParameter=Download[*],cat /usr/lib/zabbix/script/speed.txt | grep Download | cut -d " " -f2

UserParameter=Upload[*],cat /usr/lib/zabbix/script/speed.txt | grep Upload | cut -d " " -f2

ekzorchik@srv-zabbix:~$ sudo systemctl restart zabbix-agent

ekzorchik@srv-zabbix:~$ sudo zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t ping

ping                                          [t|4.33]

ekzorchik@srv-zabbix:~$ sudo zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t Download

Download                                      [t|50.44]

ekzorchik@srv-zabbix:~$ sudo zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t Upload

Upload                                        [t|3.83]

ekzorchik@srv-zabbix:~$

Отлично, показания из Zabbix-агента по предопределенным ключам снимаются.

Шаг №9: Значит можно в Web-интерфейсе Zabbix создать элементы данных (лучше создать отдельный Шаблон и навешивать его на текущий хост).

http://IP&DNS/zabbix - user&pass - Настройка – Шаблоны – Создать шаблон

  • Имя шаблона: Template_SpeedTEST
  • Группы: Zabbix servers

И нажимаю «Добавить». После перехожу в созданных шаблон и внутри него перехожу в «Элементы данных» и создаю три элемента:

Тип информации: Числовой (с плавающей точкой)

Созданные три элемента данных для SpeedTest

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

http://IP&DNS/zabbix - user&pass - Настройка – Узлы сети – нахожу узел «Zabbix Server», захожу в него, затем «Шаблоны» — «Добавить» — Группа: Zabbix servers, нахожу созданных шаблон с именем Template_SpeeTEST, отмечаю его галочкой и нажимаю «Выбрать»

Привязываю шаблон к хосту Zabbix Server

Затем «Обновить». Итого должно получиться так:

Привязанные шаблоны к хосту Zabbix Server

Спустя, к примеру несколько минут вижу снимаемые/читающиеся показатели:

Считываемые данные с текстового файла

 

Задача: Как сделать чтобы извлекаемые данные Agent(ом) отображались на карте

http://IP&DNS/zabbix - user&pass - Мониторинг – Карты сетей – Изменить карту сети

Этап №1: Создаю объект который будет являться у меня «Интернетом»

  • Элементы карты сети: Добавить
  • Тип: Изображение
  • Подпись: Интернет
  • Расположение подписи: По умолчанию
  • Иконки: к примеру Satellite_antenna_(48)

И нажимаю «Применить».

Этап №2: Затем нужно настроить связь между хостомZabbix server» и объектомИнтернет». Для этого выделяю (растягиваю квадрат) их левой кнопкой мыши дабы у обоих элементов вокруг них появилась пунктирная линия, т.е вот так:

Выделяю элементы на карте сетей в Zabbix

И нажимаю Связь: «Добавить», появляется линия и отметка что элементы связаны:

Связь между хостами настроена

Переход на «Действие: Изменить» позволит настроить подпись, тип линии, цвет и предопределить индикаторы связи. Меня пока интересует настройка «Подпись»

Подпись:

Ping: {Zabbix server:Ping.last(0)}

↓ DL: {Zabbix server:Download.last(0)}

↑ UP: {Zabbix server:Upload.last(0)}

Настраиваю подпись к связи

 

 

 

 

 

После нажимаю «Применить» — «Закрыть» — «Применить» — «Закрыть» — «Обновить» — «OK»

На заметку: В подписи выше нужно Ping написать с маленькой буквы ping, т.е. именно так у меня выше он определен в скрипте, или изменить везде на заглавную. И все будет работать, проверено и на Zabbix 5.0 LTS

Результат:

http://IP&DNS/zabbix - user&pass - Мониторинг – Карты сетей – Local network – и вот скриншот уже настроенной динамической связи между двумя элементами.

Результат отображения информации на карте от "Элементов данных"

Получилось и я понял, как это делается. Теперь я еще более приблизился к тому, чтобы мой собственный сервер с сервисом Zabbix во главе стал «Умным домом» по моей инфраструктуре. Чем больше времени посвящаешь что интересно, тем продуктивнее ты себя чувствуешь. На этом пока у меня всё, вектор направления получен, с уважением автор блога Олло Александр aka ekzorchik.