Устанавливаем и подключаем grafana к zabbix

Задача:
---------------------------------------------------------------Установить grafana на операционной системе centos и настроить подключение к zabbix
Grafana – практически самая популярная панелей (Dashboard) для отображения метрик. Также графану можно подключить к забиксу и получать с него необходимые нам метрики и выводить в удобном для нас виде.
Система CentOS, которая была развернута вместе с zabbix при помощи готового решения. Проверяем версию ядра и операционную систему:
[root@appliance ~]# uname -a Linux appliance 4.18.0-240.1.1.el8_3.x86_64 #1 SMP Thu Nov 19 17:20:08 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux [root@appliance ~]# cat /etc/redhat-release CentOS Linux release 8.3.2011 [root@appliance ~]#
На официальном сайте графаны, можно найти ссылки на пакеты установки grafana. Скачиваем:
[root@appliance zabbix]# wget https://dl.grafana.com/oss/release/grafana-7.5.2-1.x86_64.rpm --2021-04-03 23:32:00-- https://dl.grafana.com/oss/release/grafana-7.5.2-1.x86_64.rpm Resolving dl.grafana.com (dl.grafana.com)... 151.101.114.217, 2a04:4e42:1b::729 Connecting to dl.grafana.com (dl.grafana.com)|151.101.114.217|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 51902154 (49M) [application/x-redhat-package-manager] Saving to: ‘grafana-7.5.2-1.x86_64.rpm’ grafana-7.5.2-1.x86_64.rpm 100%[====================================================================================================================>] 49.50M 7.52MB/s in 7.4s 2021-04-03 23:32:08 (6.66 MB/s) - ‘grafana-7.5.2-1.x86_64.rpm’ saved [51902154/51902154] [root@appliance zabbix]#
Устанавливаем
[root@appliance zabbix]# sudo yum install grafana-7.5.2-1.x86_64.rpm Last metadata expiration check: 2:05:17 ago on Sat 03 Apr 2021 09:32:33 PM UTC. Dependencies resolved. ================================================================================================================================================================================================================== Package Architecture Version Repository Size ================================================================================================================================================================================================================== Installing: grafana x86_64 7.5.2-1 @commandline 49 M Installing dependencies: libICE x86_64 1.0.9-15.el8 appstream 74 k libSM x86_64 1.2.3-1.el8 appstream 48 k libXcursor x86_64 1.1.15-3.el8 appstream 36 k libXext x86_64 1.3.4-1.el8 appstream 45 k libXfixes x86_64 5.0.3-7.el8 appstream 25 k libXi x86_64 1.7.10-1.el8 appstream 49 k libXinerama x86_64 1.1.4-1.el8 appstream 16 k libXmu x86_64 1.1.3-1.el8 appstream 75 k libXrandr x86_64 1.5.2-1.el8 appstream 34 k libXrender x86_64 0.9.10-7.el8 appstream 33 k libXt x86_64 1.1.5-12.el8 appstream 186 k libXxf86misc x86_64 1.0.4-1.el8 appstream 23 k libXxf86vm x86_64 1.1.4-9.el8 appstream 19 k libfontenc x86_64 1.1.3-8.el8 appstream 37 k libmcpp x86_64 2.7.2-20.el8 appstream 81 k libpkgconf x86_64 1.4.2-1.el8 baseos 35 k mcpp x86_64 2.7.2-20.el8 appstream 31 k pkgconf x86_64 1.4.2-1.el8 baseos 38 k pkgconf-m4 noarch 1.4.2-1.el8 baseos 17 k pkgconf-pkg-config x86_64 1.4.2-1.el8 baseos 15 k urw-base35-bookman-fonts noarch 20170801-10.el8 appstream 857 k urw-base35-c059-fonts noarch 20170801-10.el8 appstream 884 k urw-base35-d050000l-fonts noarch 20170801-10.el8 appstream 79 k urw-base35-fonts noarch 20170801-10.el8 appstream 12 k urw-base35-fonts-common noarch 20170801-10.el8 appstream 23 k urw-base35-gothic-fonts noarch 20170801-10.el8 appstream 654 k urw-base35-nimbus-mono-ps-fonts noarch 20170801-10.el8 appstream 801 k urw-base35-nimbus-roman-fonts noarch 20170801-10.el8 appstream 865 k urw-base35-nimbus-sans-fonts noarch 20170801-10.el8 appstream 1.3 M urw-base35-p052-fonts noarch 20170801-10.el8 appstream 982 k urw-base35-standard-symbols-ps-fonts noarch 20170801-10.el8 appstream 44 k urw-base35-z003-fonts noarch 20170801-10.el8 appstream 279 k xorg-x11-font-utils x86_64 1:7.5-40.el8 appstream 103 k xorg-x11-server-utils x86_64 7.7-27.el8 appstream 198 k Transaction Summary ================================================================================================================================================================================================================== Install 35 Packages Total size: 57 M Total download size: 7.8 M Installed size: 183 M Is this ok [y/N]:
Запускаем сервер Графаны и добавляем его автозагрузку
[root@appliance zabbix]# systemctl start grafana-server [root@appliance zabbix]# systemctl enable grafana-server Synchronizing state of grafana-server.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable grafana-server Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service. [root@appliance zabbix]#
При помощи grafana-cli устанавливаем плагин который позволит соединить Zabbix и Grafana
[root@appliance zabbix]# grafana-cli plugins install alexanderzobnin-zabbix-app installing alexanderzobnin-zabbix-app @ 4.1.4 from: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/4.1.4/download into: /var/lib/grafana/plugins ✔ Installed alexanderzobnin-zabbix-app successfully Restart grafana after installing plugins . <service grafana-server restart> [root@appliance zabbix]#
После установки перезагрузим сервер Grafana
[root@appliance zabbix]# service grafana-server restart Restarting grafana-server (via systemctl): [ OK ] [root@appliance zabbix]#
проверим, что перезапуск прошел успешно.
[root@appliance ~]# 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 Sat 2021-04-03 23:40:56 UTC; 1 day 17h ago Docs: http://docs.grafana.org Main PID: 10580 (grafana-server) Tasks: 22 (limit: 24923) Memory: 56.6M CGroup: /system.slice/grafana-server.service ├─10580 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=rpm cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafan> └─10591 /var/lib/grafana/plugins/alexanderzobnin-zabbix-app/zabbix-plugin_linux_amd64 Apr 03 23:51:24 appliance grafana-server[10580]: t=2021-04-03T23:51:24+0000 lvl=eror msg="Zabbix API request error" logger=plugins.backend pluginId=alexanderzobnin-zabbix-datasource error="Post \"\": unsupported protoc> Apr 03 23:51:24 appliance grafana-server[10580]: t=2021-04-03T23:51:24+0000 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/1/resources/zabbix-api status=5> Apr 03 23:52:20 appliance grafana-server[10580]: t=2021-04-03T23:52:20+0000 lvl=eror msg="Zabbix API request error" logger=plugins.backend pluginId=alexanderzobnin-zabbix-datasource error="request failed, status: 404 N> Apr 03 23:52:20 appliance grafana-server[10580]: t=2021-04-03T23:52:20+0000 lvl=eror msg="Zabbix API request error" logger=plugins.backend pluginId=alexanderzobnin-zabbix-datasource error="request failed, status: 404 N> Apr 03 23:52:20 appliance grafana-server[10580]: t=2021-04-03T23:52:20+0000 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/1/resources/zabbix-api status=5> Apr 03 23:52:20 appliance grafana-server[10580]: t=2021-04-03T23:52:20+0000 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/1/resources/zabbix-api status=5> Apr 04 21:15:36 appliance grafana-server[10580]: t=2021-04-04T21:15:36+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/dashboards/db/ status=412 remote_addr=192.1> Apr 04 21:48:56 appliance grafana-server[10580]: t=2021-04-04T21:48:56+0000 lvl=eror msg="Zabbix API request error" logger=plugins.backend pluginId=alexanderzobnin-zabbix-datasource error="Post \"127.0.0.1/api_jsonrpc.> Apr 04 21:48:56 appliance grafana-server[10580]: t=2021-04-04T21:48:56+0000 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/1/resources/zabbix-api status=5> Apr 04 21:48:56 appliance grafana-server[10580]: t=2021-04-04T21:48:56+0000 lvl=eror msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=POST path=/api/datasources/1/resources/zabbix-api status=5> lines 1-21/21 (END)
Возможно понадобится открыть порт TCP 3000. У меня в готовом решении от забикса пришлось открывать порт.
iptables -I INPUT -p tcp --dport 3000 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -I OUTPUT -p tcp --sport 3000 -m state --state ESTABLISHED -j ACCEPT
Изменив правила файрвола, сохраняем их
[root@appliance zabbix]# iptables-save # Generated by iptables-save v1.8.4 on Sun Apr 11 22:08:45 2021 *raw :PREROUTING ACCEPT [1722613:1817051417] :OUTPUT ACCEPT [1161542:383111164] -A PREROUTING -p udp -m udp --sport 53 -j NOTRACK -A OUTPUT -p udp -m udp --dport 53 -j NOTRACK COMMIT # Completed on Sun Apr 11 22:08:45 2021 # Generated by iptables-save v1.8.4 on Sun Apr 11 22:08:45 2021 *filter :INPUT ACCEPT [23710:7624018] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [1159880:382912093] :ICMP - [0:0] :NTP - [0:0] :SSH - [0:0] :ZBX - [0:0] :WEB - [0:0] :SNMPTRAP - [0:0] :SQL - [0:0] -A INPUT -p tcp -m tcp --dport 3000 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -s 8.8.8.8/32 -p udp -m udp --sport 53 -j ACCEPT -A INPUT -s 8.8.4.4/32 -p udp -m udp --sport 53 -j ACCEPT -A INPUT -p icmp -j ICMP -A INPUT -p udp -m udp --dport 123 -j NTP -A INPUT -p tcp -m tcp --dport 20:22 -j SSH -A INPUT -p tcp -m multiport --dports 10050,10051 -j ZBX -A INPUT -p tcp -m multiport --dports 80,443 -j WEB -A INPUT -p udp -m udp --dport 162 -j SNMPTRAP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 3000 -m state --state ESTABLISHED -j ACCEPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT -A ICMP -p icmp -m limit --limit 5/sec -j ACCEPT -A SSH -p tcp -m tcp --dport 22 -j ACCEPT -A ZBX -p tcp -m tcp --dport 10050 -j ACCEPT -A ZBX -p tcp -m tcp --dport 10051 -j ACCEPT -A WEB -p tcp -m multiport --dports 80,443 -j ACCEPT -A WEB -p udp -m udp --dport 162 -j ACCEPT COMMIT # Completed on Sun Apr 11 22:08:45 2021 [root@appliance zabbix]#
Авторизуемся в Grafana
http://zabbix_ip_address:3000
По умолчанию логин и пароль Grafana admin-admin. Сразу же будет предложено изменить пароль.

в боковом меню перейдем в configuraion->plugins, найдем в списке плагинов Zabbix и откроем.

Для включения плагина нажмем кнопку Enable.

Если запуск прошел успешно, то кнопка Enable заменится кнопками Update и Disable.

Далее перейдем в меню “Configuration->Data Source” и подключаем Zabbix Сервер как новый ресурс. Нажимаем кнопку “Add data source”. и в самом низу и нажимаем на плагин Zabbix.

Далее на открывшейся вкладке указываем URL Zabbix сервера, имя пользователя и пароля для авторизации в Zabbix.

Конечно в идеале необходимо добавить в забиксе нового пользователя с правами только на чтение метрик. В рамках тестирования я буду использовать пользователя по умолчанию.

Нажмем кнопку “Save & Test” и если мы все указали верно, то появится сообщение о том, что источник данных успешно подключен.

На этом интеграция сервисов Zabbix сервер и Grafana завершена
Свежие комментарии