Table of Contents
Grafana + Zabbix data source plugin
Нативные средства zabbix для отображения графиков и построения комплексных экранов лично мне не очень нравятся, т.к.:
- Нельзя очевидными способом (например как в Cacti) посмотреть номер того или иного графика, что бы его быстро вставить в свой собственный комплексный экран. Сначала надо найти этот график в самом zabbix и потом искать номер в адресе этого графика.
- Не удобный механизм работы со Screen, когда на скрине порядка 20-30 графиков это все начинает тормозить и что бы добавить новый график на скрин надо много проматывать, кликать и ждать.
- Нельзя вывести пачку однотивных графиков, например бродкаст трафик всех портов нескольких коммутаторов.
Работать с графиками и комплексными экранами будем в Grafana
Для связи с zabbix для grafana написан специальный плагин.
В настоящий момент разработкой плагина занимается Александр Зобнин который работает в Grafana Lab, скорее всего плангин будет долго и счастливо жить.
Установка Grafana
У нас есть 64битный Centos7 на котором стоит Zabbix 3.2.7, grafana будем ставить на этот сервер.
Подключаем репозиторий Grafana в файл “/etc/yum.repos.d/grafana.repo” пишем:
[grafana] name=grafana baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
Ставим Grafana.
# yum install grafana
Процесс установки.
[root@leela ~]# yum install grafana Loaded plugins: fastestmirror ... Dependencies Resolved ==================================================================================================== Package Arch Version Repository Size ==================================================================================================== Installing: grafana x86_64 4.4.1-1 grafana 45 M Installing for dependencies: fontconfig x86_64 2.10.95-10.el7 base 229 k libXfont x86_64 1.5.1-2.el7 base 150 k libfontenc x86_64 1.1.2-3.el7 base 30 k urw-fonts noarch 2.4-16.el7 base 3.0 M xorg-x11-font-utils x86_64 1:7.5-20.el7 base 87 k Transaction Summary ==================================================================================================== Install 1 Package (+5 Dependent packages) Total download size: 49 M Installed size: 139 M ... Installing : grafana-4.4.1-1.x86_64 6/6 ### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable grafana-server.service ### You can start grafana-server by executing sudo /bin/systemctl start grafana-server.service ...
Запускаем Grafana.
# systemctl daemon-reload # systemctl start grafana-server
Проверяем, что Grafana запустилась.
[root@leela ~]# systemctl status grafana-server ● grafana-server.service - Grafana instance Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled) Active: active (running) since Сб 2017-07-22 13:34:55 MSK; 30s ago Docs: http://docs.grafana.org Main PID: 813 (grafana-server) CGroup: /system.slice/grafana-server.service └─813 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile= cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.pat...
Включаем автозагрузку.
[root@leela ~]# systemctl enable grafana-server Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
Установка плагина Grafana-Zabbix
Плагин ставим из grafana-cli командой:
# grafana-cli plugins install alexanderzobnin-zabbix-app
Процесс установки.
[root@leela ~]# grafana-cli plugins install alexanderzobnin-zabbix-app installing alexanderzobnin-zabbix-app @ 3.5.1 from url: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.5.1/download into: /var/lib/grafana/plugins ✔ Installed alexanderzobnin-zabbix-app successfully Restart grafana after installing plugins . <service grafana-server restart>
Перезапускаем Grafana.
# systemctl restart grafana-server
Настройка плагина Grafana-Zabbix
Заходим в web интерфейс по адресу “http://server-with-gragana-ip:3000”.
Включаем только что установленный плагин - кликаем на ссылку “Enable now” и в открывщемся окне жмем на кнопку “Enable”.
Добавляем новый источник данных, жмем на кнопку “Add data source” и вбиваем настройки. Настройки:
- Name - задаем имя источника и говорим, что это источник по умолчанию.
- Type - в выпадающем меню выбираем тип Zabbix.
- Url - адрес для доступ к zabbix api.
https://127.0.0.1/zabbix/api_jsonrpc.php
В моем случаем zabbix и grafana работают на одном сервере и доступ открыть по https. - Access - выбираем тип запросов к zabbix api, ставим Proxy.
- Direct - запрос выполняется напрямую из браузера с которого конфигурим и просматриваем графикии.
- Proxy - запрос выполнчется от имени сервера Grafana.
- Http Auth - настройки дополнительной аутентификации, не использую.
- Username/Password - используем отдельного пользователя которому в Zabbix, для определенной группы хостов, выставлены права только на чтение.
- Trends - включаем поддержку трендов, полезно при запросе данных за болльшое количество дней.
Значения After, Range и Cache оставляем дефолтными.
Заведем в Zabbix нового пользователя “grafana”.
Идем в Administration → Users и нажимаем “Create user”.
Во вкладке “User” в поле “Alias” вбиваем “grafana” и указываем пароль в соответствующих полях, остальное можно оставить по дефолту.
Во вкладке “Permissions” в выпадающем меню выбираем “Zabbix User” и жмем кнопку “Add”.
Заведем в Zabbix новую группу пользователей “Grafana_group” и дадим права на чтение только для определенных групп хостов.
Идем в Administration → User groups и нажимаем “Create user group”.
Во вкладке “User group” в поле “Group name” вбиваем “Grafana_group” и в полях “Users”, “In group” указываем ранее созданного пользователя “grafana”.
Во вкладке “Permissions” жмем кномпу “Select” и выбираем группу хостов к которым мы хотим дать доступ только на чтение серверу Grafana.
После выбора групп жмем ссылку “Add” и кнопку “Add”.
После добавления в zabbix группы и пользователя, grafana по API сможет обращаться к данным.
Проверить работоспособность можно открыв дашборд “Zabbix Server Dashboard” который поставляется вместе с плагином. Если в настройках самого zabbix не меняли имя zabbix сервера, и оно осталось “Zabbix server”, то дашборд сразу будет работать.