🖥️ Безплатен мониторинг на 100+ сървъра с Zabbix и Grafana

Пълна инсталация и конфигурация за CPU, RAM, диск, мрежа + email/SMS алерти
Стартира всичко с една команда!
✅ Защо да следим сървърите си?
Представете си, че имате 5, 10 или дори 100 сървъра. Един от тях спира. Никой не ви казва. Критична услуга спира да работи. Край на спокойствието. 😰
Мониторинг системата е вашият “доктор по сървъри” – тя следи състоянието на машините и ви казва, ако нещо тръгне на зле.
Конкретна полза:
- Откривате проблемите преди да причинят щети
- Реагирате бързо – чрез email или SMS
- Пестите време, пари и нерви
🧰 Какво ще постигнем?
Ще изградим напълно безплатна система за мониторинг на над 100 сървъра. Само с една команда ще получите:
- 📈 Готови Grafana dashboard-и
- 🛠️ Zabbix шаблони за CPU, RAM, диск, мрежа
- 🔔 Аларми по email и SMS
- 🧠 Интуитивен уеб интерфейс
- 🔒 Сигурна, мащабируема архитектура
- 📊 Данни в реално време, запазвани с месеци
🔍 Какво ще използваме?
- Zabbix – най-популярната open-source мониторинг платформа
- Grafana – кралят на визуализациите
- Docker – за лесно и бързо стартиране
- Telegram или SMS – за мигновени известия
- MariaDB – за база данни на Zabbix
- Prometheus Node Exporter (по избор) – за допълнителни метрики
🧠 Основна архитектура
+-------------+ +------------+ +-------------+
| Zabbix | <----> | MariaDB | | Grafana |
| Server | | (DB) | | (Dashboards)
+-------------+ +------------+ +-------------+
|
v
+------------------+ +------------------+
| Zabbix Agents | | Node Exporters |
| (всички сървъри) | | (по избор) |
+------------------+ +------------------+
🚀 Стъпка 1: Стартиране с една команда
Създайте празна директория и запишете следното в docker-compose.yml:
version: '3.5'
services:
zabbix-db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbixpass
volumes:
- ./zabbix-db:/var/lib/mysql
zabbix-server:
image: zabbix/zabbix-server-mysql
ports:
- "10051:10051"
environment:
DB_SERVER_HOST: zabbix-db
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbixpass
depends_on:
- zabbix-db
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql
ports:
- "8080:8080"
environment:
DB_SERVER_HOST: zabbix-db
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbixpass
ZBX_SERVER_NAME: MyZabbix
grafana:
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
volumes:
grafana-data:
Стартирайте всичко с:
docker compose up -d
⏱️ Измерима стойност: Всичко е готово за 2-3 минути!
🌐 Достъп до интерфейси
- Zabbix Web: http://localhost:8080
Потребител:Admin
Парола:zabbix - Grafana: http://localhost:3000
Потребител:admin
Парола:admin
🛡️ Стъпка 2: Инсталиране на Zabbix агент на сървърите
На всеки сървър, който искате да наблюдавате:
sudo apt install zabbix-agent -y
Конфигурирайте /etc/zabbix/zabbix_agentd.conf:
Server=IP_НА_ZABBIX_SERVER
ServerActive=IP_НА_ZABBIX_SERVER
Hostname=името_на_сървъра
След това рестартирайте агента:
sudo systemctl restart zabbix-agent
🔧 Можете да автоматизирате тази инсталация с Ansible или bash скрипт, ако имате много сървъри.
📊 Стъпка 3: Визуализация с Grafana
Grafana няма нужда от ръчна инсталация – вече работи! Свържете го със Zabbix:
- Влезте в Grafana (http://localhost:3000)
- Отидете в Settings > Plugins
- Инсталирайте Zabbix plugin
- Добавете нов Data Source от тип Zabbix
- Настройте URL:
http://zabbix-web:8080/api_jsonrpc.php - Въведете user/pass:
Admin/zabbix
🎯 Готово! Вече може да добавяте dashboard-и и панели за CPU, RAM и др.
🧩 Стъпка 4: Импортиране на готови dashboards
- Отворете Grafana
- Отидете на Dashboards > Import
- Въведете следните ID номера:
| Dashboard | ID |
|---|---|
| Linux Server | 928 |
| Zabbix Overview | 11165 |
| Network Usage | 12039 |
| Disk Performance | 11378 |
📥 Така получавате красиви, готови панели за всички важни метрики.
📣 Стъпка 5: Алерти чрез Email и SMS
Email аларми:
- Влезте в Zabbix Web
- Отидете в Administration > Media types > Email
- Въведете SMTP настройки (например Gmail или Mailgun)
SMTP server: smtp.mailgun.org
SMTP helo: yourdomain.com
SMTP email: [email protected]
Authentication: enabled
Username: [email protected]
Password: [API Key or password]
Добавете получатели в Users > Media
Присвойте тригери от шаблоните – пример:
CPU > 90% за 5 минути = аларма
RAM > 95% = аларма
Диск < 5% свободно място = аларма
SMS аларми (чрез Telegram Bot):
- Създайте бот в Telegram чрез @BotFather
- Вземете API Token
- Вземете вашия Chat ID от @userinfobot
- Добавете нов Media type в Zabbix – Telegram script
- Скрипт пример за
/usr/lib/zabbix/alertscripts/telegram.sh:
#!/bin/bash
TOKEN='ВАШИЯТ_ТОКЕН'
CHAT_ID='ВАШИЯТ_CHAT_ID'
MESSAGE=$1
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" -d text="$MESSAGE"
💼 Реални ползи
| Полза | Съдържание | Измерима стойност |
|---|---|---|
| Пълна видимост | CPU, RAM, диск, мрежа за 100+ сървъра | Под 5 минути за добавяне на нов сървър |
| Мигновени известия | Email и Telegram аларми | Реакция в рамките на 1 минута |
| Лесна визуализация | Grafana dashboards + Zabbix тригери | Спестявате часове за диагностика |
| Безплатна и мащабируема система | Docker + Open Source инструменти | 0 лв. за 100+ сървъра |
📌 Заключение
Системата, която създадохме, е стабилна, визуално атрактивна и безплатна.
Инсталацията отнема само няколко минути, а мониторингът ви спестява много главоболия. 🧠
Сега сте готови да следите сървърите си професионално – всеки ден, 24/7.
🤝 Споделете и приложете
Ако тази статия ви е помогнала – споделете я с колеги!
Колкото повече хора използват правилните инструменти, толкова по-добър става интернет.


3 коментара
Коментарите са изключени.