## 🎯 مانیتورینگ پیشرفته لینوکس با Zabbix
**Zabbix** یکی از قدرتمندترین و محبوبترین ابزارهای مانیتورینگ متنباز (Open Source) در دنیاست که برای مانیتورینگ جامع **سرورها، سرویسها، اپلیکیشنها، شبکه، دیتابیس و کل زیرساختهای IT** بهکار میره.
Zabbix برخلاف ابزارهایی مثل Nagios، از **پلتفرم مرکزی + پایگاه داده + رابط گرافیکی قوی** بهره میبره و برای مانیتورینگ حرفهای در سازمانها بسیار مناسبـه.
---
## ⭐ ویژگیهای کلیدی Zabbix
- مانیتورینگ real-time و historical
- رابط گرافیکی حرفهای و داشبوردهای قابلسفارشیسازی
- پشتیبانی از SNMP، IPMI، SSH، Agent و HTTP
- Alert و Notification حرفهای (ایمیل، Telegram، Slack و ...)
- پشتیبانی از auto-discovery برای تجهیزات شبکه و سرورها
- Templateهای آماده برای سرویسها و سیستمعاملها
---
## 🛠️ نصب Zabbix روی لینوکس (مثال: CentOS / RHEL 8)
### ۱. نصب مخزن رسمی:
```bash
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-2.el8.noarch.rpm
dnf clean all
```
### ۲. نصب Zabbix Server + Frontend + Agent:
```bash
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
```
---
## 🔧 تنظیم پایگاه داده (MySQL / MariaDB)
### ۱. نصب MariaDB:
```bash
dnf install mariadb mariadb-server
systemctl enable --now mariadb
```
### ۲. ساخت دیتابیس:
```sql
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
FLUSH PRIVILEGES;
```
### ۳. ایمپورت ساختار دیتابیس:
```bash
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
```
---
## ⚙️ تنظیم Zabbix Server
ویرایش فایل تنظیمات:
```bash
nano /etc/zabbix/zabbix_server.conf
```
خط:
```
DBPassword=StrongPassword
```
---
## 🚀 راهاندازی Zabbix Server و Apache
```bash
systemctl restart zabbix-server zabbix-agent httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm
```
---
## 🌐 راهاندازی رابط گرافیکی (Zabbix Frontend)
مرورگر رو باز کن و به آدرس زیر برو:
**http://your_server_ip/zabbix**
مراحل نصب وبی Zabbix رو طی کن:
- انتخاب زبان فارسی یا انگلیسی
- بررسی پیشنیازها
- وارد کردن اطلاعات پایگاه داده
- تنظیم نامهاست و تایمزون
- ورود به داشبورد
یوزرنیم پیشفرض:
**Admin**
رمز عبور:
**zabbix**
---
## 🖥️ افزودن Host و Agent
### نصب Zabbix Agent روی سیستم مقصد (کلاینت):
```bash
dnf install zabbix-agent
```
ویرایش فایل:
```bash
nano /etc/zabbix/zabbix_agentd.conf
```
تنظیم:
```
Server=IP_of_Zabbix_Server
ServerActive=IP_of_Zabbix_Server
Hostname=client1
```
راهاندازی Agent:
```bash
systemctl restart zabbix-agent
systemctl enable zabbix-agent
```
سپس از داخل داشبورد → Configuration → Hosts → Create Host
اطلاعات کلاینت رو وارد کن.
---
## 📊 مانیتورینگ، گرافها و Alertها
Zabbix بهصورت پیشفرض برای CPU، Memory، Disk و Network مانیتورینگ انجام میده و گراف تولید میکنه.
همچنین میتونی:
- Templateهای آماده برای Apache, MySQL, Nginx, Docker و ... استفاده کنی
- سناریوهای Web Monitoring بسازی
- از Trigger برای هشداردهی استفاده کنی
- از Media Type مثل Telegram برای ارسال آلارم استفاده کنی
---
## 📤 ارسال هشدار به تلگرام (مثال)
میتونیم با Webhook تلگرام هشدارها رو به چت بفرستیم. برای این کار:
1. ساخت Bot در BotFather
2. دریافت Token و Chat ID
3. ساخت Media Type در داشبورد → Administration → Media Types → Telegram
یا از اسکریپتهای آماده مثل `zabbix-alert-scripts` استفاده کن.
---
## 🔐 نکات حرفهای و پیشرفته
- High Availability با Zabbix Proxy
- مانیتورینگ بدون Agent (SNMP, SSH, IPMI)
- Auto-discovery و auto-registration
- مانیتورینگ Docker، Kubernetes، Cloud و VM
- ساخت داشبورد شخصی با فیلترهای دلخواه