Добавить README.md
This commit is contained in:
133
README.md
Normal file
133
README.md
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
# Домашнее задание 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']
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Создадим  , я его поместил в каталог /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. Загруpка CPU в %
|
||||||
|
2. Колличество опративной памяти, и занятой в %
|
||||||
|
3. Автообнаружение примонтированных устройств, их общий объем и занятость в %
|
||||||
|
4. Автообнаружение сетевыйх устройств, и колличество переданной и полученной иформации в битах
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Переходим в **Data collection -> Temptlates**.
|
||||||
|
Загружаем шаблон через **import**
|
||||||
|
|
||||||
|
Далее переходим в **Data collection -> Hosts**
|
||||||
|
Добавляем хостовую машину, не забывая выбрать template **myLinuxTemplate**
|
||||||
|

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

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

|
||||||
|
|
||||||
|
|
||||||
|
#### Настройка 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, импортируем его и смотрим что получилось
|
||||||
|

|
||||||
|
|
||||||
|
Все готово! Домашние задание выполнено!
|
||||||
|
|
||||||
Reference in New Issue
Block a user