Files
homework22/README.md
2026-02-01 20:29:07 +03:00

134 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Домашнее задание 22
## Zabbix/Prometheus/Grafana
Базовые принципы работы с Zabbix, Prometheus и Grafana.
### Подготовка
Будем одновременно разворачивать zabbix, prometheus и grafana используя Docker Compose
Подготовим каталоги для данных
```bash
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 не может записать данные
```bash
root@ubuntu-pc:~# chown 65534:65534 /var/monitorig/prometheus/data
```
Создадим к конфиг для prometheus
```bash
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](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
```bash
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
```
проверим, что все контейнеры запущены
```bash
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](myLinuxTemplate.yaml)
Переходим в **Data collection -> Temptlates**.
Загружаем шаблон через **import**
Далее переходим в **Data collection -> Hosts**
Добавляем хостовую машину, не забывая выбрать template **myLinuxTemplate**
![22_1.png](image/22_1.png])
Все готово. Убедиться что zabbix получает данный от агента можно в ** Monitoring -> Latest data**, выбрав наш добавленный хост
![22_2.png](image/22_2.png])
#### prometheus
Перейдем на страницу http://127.0.0.1:9090/targets, и убедимся, что prometheus видит наш exporter
![22_3.png](image/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](image/22_4.png])
Все готово! Домашние задание выполнено!