Домашнее задание 22

Zabbix/Prometheus/Grafana

Базовые принципы работы с Zabbix, Prometheus и Grafana.

Подготовка

Будем одновременно разворачивать zabbix, prometheus и grafana используя Docker Compose

Подготовим каталоги для данных


root@ubuntu-pc:~# mkdir -p /var/monitorig/zabbix
root@ubuntu-pc:~# mkdir -p /var/monitorig/prometheus/conf
root@ubuntu-pc:~# mkdir /var/monitorig/prometheus/data
root@ubuntu-pc:~# mkdir /var/monitorig/grafana

Давадим отдельные права на католог /var/monitorig/prometheus/data, иначе prometheus не может записать данные

root@ubuntu-pc:~# chown 65534:65534 /var/monitorig/prometheus/data

Создадим к конфиг для prometheus

root@ubuntu-pc:~# vi /var/monitorig/prometheus/conf/prometheus.yml

Со следующим содержимом

scrape_configs:
  - job_name: node
    scrape_interval: 5s
    static_configs:
    - targets: ['192.168.50.23:9100']

Создадим docker-compose.yml , я его поместил в каталог /var/monitorig/.

Разварачивать бедем следующие контейнеры

  1. mysql-server - для zabbix сервера
  2. zabbix-server-mysql - сам zabbix сервер
  3. zabbix-web-nginx-mysql - web интерфейс для zabbix сервера
  4. prometheus - prometheus сервер
  5. node-exporter - exporter для мониторинга хостовой машины

Запускаем docker

root@ubuntu-pc:/var/monitorig# docker compose up -d
WARN[0000] /var/monitorig/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
[+] up 50/50
 ✔ Image prom/prometheus:latest                      Pulled                                                                                            47.0s
 ✔ Image grafana/grafana                             Pulled                                                                                            47.7s
 ✔ Image zabbix/zabbix-server-mysql:alpine-latest    Pulled                                                                                            17.4s
 ✔ Image zabbix/zabbix-web-nginx-mysql:alpine-latest Pulled                                                                                            40.1s
 ✔ Image prom/node-exporter                          Pulled                                                                                            4.5ss
 ✔ Container prometheus                              Created                                                                                           2.6s
 ✔ Container exporter                                Created                                                                                           2.6s
 ✔ Container monitorig-grafana-1                     Created                                                                                           2.6s
 ✔ Container monitorig-mysql-server-1                Created                                                                                           2.6s
 ✔ Container monitorig-zabbix-server-mysql-1         Created                                                                                           0.1s
 ✔ Container monitorig-zabbix-web-nginx-mysql-1      Created                                                                                           0.1s

проверим, что все контейнеры запущены

root@ubuntu-pc:/var/monitorig# docker ps
CONTAINER ID   IMAGE                                       COMMAND                 CREATED       STATUS                 PORTS                                      NAMES
8bfcff326ace   zabbix/zabbix-web-nginx-mysql:alpine-latest "docker-entrypoint.sh"  6 minutes ago Up 6 minutes (healthy) 0.0.0.0:80->8080/tcp 0.0.0.0:443->8443/tcp monitorig-zabbix-web-nginx-mysql-1
25b83675c59e   zabbix/zabbix-server-mysql:alpine-latest    "/usr/bin/docker-ent…"  6 minutes ago Up 6 minutes           0.0.0.0:10051->10051/tcp                   monitorig-zabbix-server-mysql-1
18b199a01f6e   mysql:8.0                                   "docker-entrypoint.s…"  6 minutes ago Up 6 minutes           3306/tcp, 33060/tcp                        monitorig-mysql-server-1
b40d475c6a6a   prom/prometheus:latest                      "/bin/prometheus --c…"  6 minutes ago Up 6 minutes           0.0.0.0:9090->9090/tcp                     prometheus
70095b8684ee   grafana/grafana                             "/run.sh"               6 minutes ago Up 6 minutes           0.0.0.0:3000->3000/tcp                     monitorig-grafana-1
18795bc922a3   prom/node-exporter                          "/bin/node_exporter …"  6 minutes ago Up 6 minutes                                                      exporter

Установим zabbix-agent на хостовую машину

Настройка

Настройка Zabbix

Перейдем на страницу http://127.0.0.1/, по умолчанию логин Admin а пароль zabbix

Я создал наипростейший шаблон для мониторинга Linux систем, который мониторит:

  1. Загруа CPU в %
  2. Колличество опративной памяти, и занятой в %
  3. Автообнаружение примонтированных устройств, их общий объем и занятость в %
  4. Автообнаружение сетевыйх устройств, и колличество переданной и полученной иформации в битах

myLinuxTemplate.yml

Переходим в Data collection -> Temptlates. Загружаем шаблон через import

Далее переходим в Data collection -> Hosts Добавляем хостовую машину, не забывая выбрать template myLinuxTemplate 22_1.png

Все готово. Убедиться что zabbix получает данный от агента можно в ** Monitoring -> Latest data**, выбрав наш добавленный хост 22_2.png

prometheus

Перейдем на страницу http://127.0.0.1:9090/targets, и убедимся, что prometheus видит наш exporter 22_3.png

Настройка Grafana

Перейдем на страницу http://127.0.0.1:3000/, по умолчанию логин admin пароль admin

Переходим в Administration -> Plugins and data -> Plugins. Тут мы ищем и устанавливаем 2 плагина. Prometheus и Zabbix

Далее переходим в Collections -> Data sources, и настравиваем подключения к zabbix и prometheus.

Я создал небольшой dashboard, который показывает данные как из zabbix так и из prometheus, импортируем его и смотрим что получилось 22_4.png

Все готово! Домашние задание выполнено!

Description
Zabbix/Prometheus/Grafana
Readme 457 KiB