## 🎯 مانیتورینگ پیشرفته لینوکس با Nagios
**Nagios** یکی از قدرتمندترین و قدیمیترین ابزارهای مانیتورینگ متنباز است که برای نظارت بر سرویسها، سرورها، تجهیزات شبکه و حتی برنامهها مورد استفاده قرار میگیرد. این ابزار توسط هزاران مدیر سیستم و DevOps برای مانیتورینگ وضعیت منابع حیاتی زیرساخت استفاده میشود.
---
### 📌 ویژگیهای کلیدی Nagios
- مانیتورینگ سرورها، سوئیچها، دیتابیسها، وبسایتها و اپلیکیشنها
- هشداردهی از طریق ایمیل، اساماس، پیامرسان
- رابط گرافیکی تحت وب
- پلاگینپذیری کامل
- لاگگیری و گزارشگیری دقیق
- توانایی ایجاد dependency بین سرویسها و میزبانها
---
## 🛠️ مراحل نصب و راهاندازی Nagios روی لینوکس (مثال: CentOS / RHEL)
> در این مثال از CentOS 7 استفاده شده است. روی Ubuntu/Debian نیز تقریباً مشابه است با تغییر در دستورات نصب پکیج.
### ۱. نصب پیشنیازها:
```bash
sudo yum install httpd php gcc glibc glibc-common gd gd-devel make net-snmp
```
### ۲. ایجاد کاربر و گروه مخصوص Nagios:
```bash
useradd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache
```
### ۳. دانلود و نصب Nagios Core:
```bash
cd /tmp
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
tar xzf nagios-4.4.6.tar.gz
cd nagios-4.4.6
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
```
### ۴. تنظیم رمز عبور برای رابط وب:
```bash
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
```
### ۵. راهاندازی سرویسها:
```bash
systemctl start httpd
systemctl enable httpd
systemctl start nagios
systemctl enable nagios
```
اکنون با مرورگر به آدرس زیر بروید:
**http://your-server-ip/nagios**
---
## 🔌 نصب پلاگینهای Nagios
برای بررسی سرویسها، نیاز به نصب پلاگین داریم:
```bash
cd /tmp
wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar xzf nagios-plugins-2.3.3.tar.gz
cd nagios-plugins-2.3.3
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
```
---
## 🎯 افزودن هاست جدید برای مانیتورینگ
ویرایش فایل:
```bash
nano /usr/local/nagios/etc/nagios.cfg
```
خط زیر را فعال کنید:
```
cfg_dir=/usr/local/nagios/etc/servers
```
سپس دایرکتوری بسازید:
```bash
mkdir /usr/local/nagios/etc/servers
```
مثال برای افزودن سرور جدید:
```bash
nano /usr/local/nagios/etc/servers/webserver.cfg
```
محتوا:
```cfg
define host {
use linux-server
host_name webserver
alias My Web Server
address 192.168.1.10
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
```
---
## 🔔 ارسال هشدارها
Nagios میتواند هشدارها را از طریق:
- ایمیل (پیشفرض)
- پیامک (با API یا gateway)
- Slack/Telegram (با webhook یا افزونه)
مثال تنظیم ایمیل در `/usr/local/nagios/etc/objects/contacts.cfg`
---
## 📊 رابط گرافیکی
Nagios رابط ساده و کاربردی دارد، اما برای زیباسازی و امکانات بیشتر میتوانید از **Nagios XI** (نسخه تجاری)، یا ابزارهای مکمل مثل **NagVis** و **PNP4Nagios** استفاده کنید.
---
## ✅ نکات پیشرفته
- استفاده از NRPE یا SSH برای مانیتورینگ از راه دور
- ساخت تمپلیت برای تعریف سریع میزبان و سرویس
- گروهبندی میزبانها و سرویسها
- dependency بین سرویسها (مثلاً: اگر اینترنت قطع است، بررسی سایت را معلق کن)
- اسکریپتنویسی پلاگین اختصاصی با Bash یا Python
---
## 🧩 منابع جانبی (در صورت نیاز کاربر)
- سایت رسمی: [nagios.org](https://www.nagios.org)
- پلاگینها: [exchange.nagios.org](https://exchange.nagios.org)
- نسخه حرفهای: [Nagios XI](https://www.nagios.com/products/nagios-xi/)