Bài này sẽ thực hiện cấu hình Nagios để gửi email thông báo về tình trạng, hoạt động của các thành phần, dịch vụ được giám sát trong hệ thống mạng. Việc gửi email tới SMTP outgoing server này sẽ yêu cầu thiết lập tài khoản email tại máy Nagios để xác thực. Ở đây, mình sử dụng một Perl script là SendEmail. Các bước làm ở máy Nagios (cài trên CentOS 6.2 minimal) như sau:
0. Cài thêm các gói phụ thuộc để hỗ trợ mã hóa và xác thực bằng SSL/TLS cho các email được gửi đi
# yum install perl
# yum install perl-IO-Socket-SSL
1. Tải về SendMail tại:
http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
2. Giải nén gói trên và chép tập tin SendMail tới thư mục /usr/local/bin
3. Cấp thêm quyền excute và đổi owner thành user nagios cho tập tin trên
# chmod +x /usr/local/bin/SendMail
# chown nagios.nagios /usr/local/bin/SendEmail
4. Mở tập tin cấu hình /usr/local/nagios/etc/resource.cfg rồi thêm vào 3 dòng mới sau:
$USER5$=your_email_address //email của người gửi
$USER6$=your_email_password //password của email trên
$USER7$=your_SMTP_mail_server //IP hoặc domain của SMTP server
5. Mở tập tin cấu hình /usr/local/nagios/etc/objects/commands.cfg rồi sửa lại phần dành cho email notification như mẫu sau:
define command{
command_name notify-host-by-email
command_line /usr/local/bin/sendEmail -o tls=yes -s $USER7$ -xu $USER5$ -xp $USER6$ -t $CONTACTEMAIL$ -f $USER5$ -l /var/log/sendEmail -u “** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **” -m “***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n”
}define command{
command_name notify-service-by-email
command_line /usr/local/bin/sendEmail -o tls=yes -s $USER7$ -xu $USER5$ -xp $USER6$ -t $CONTACTEMAIL$ -f $USER5$ -l /var/log/sendEmail -u “** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **” -m “***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$”
}
6. Tạo log file cho SendMail và thay đổi owner cho nó
# touch /var/log/SendEmail
# chown nagios.nagios /var/log/SendEmail
7. Khởi động lại service nagios
# service nagios restart
8. Kiểm tra bằng cách thử tắt một host nào đó rồi mở file log của SendMail để thấy nội dung như “Email was sent successfully”. Mọi thứ khi này đã OK.
–manthang
mình làm theo nhưng không được bạn ơi , bạn cho mình xin yahoo để hỏi thêm được không ? như mình khai báo lệnh notify-host-by-mail rồi gọi lệnh đó ra ở đâu ???
con chim
hi a e đang làm về nội dung này a có tài liệu nào liên quan có thể share cho em biết thêm dc không ak
làm sao để test được vậy a?…
tắt host là như nào vậy a ơi
em làm như hướng dẫn vào file log sendMail mà không có gì hết dù đã tắt mở các host.
Mong anh giải đáp…
Cảm ơn anh nhiều
Bạn cho mình hỏi là làm cách nào để khi nó thay đổi trạng thái mới gửi mail, chứ mình làm nó cứ 30p là spam mail liên tục
Tks!
cho mình hỏi ở bước thứ 4: mình ghi email là tài khoản gmail của mình và SMTP server là smtp.gmail.com
mà nó không gửi mail cảnh báo về cho mình ai biết chỉ với.
Thanks
làm theo y chan, restart ko bik lỗi mà vẫn ko được, ai help mình mứoi
mình làm theo y chan mà ko được, địa chỉ mail mình sử dụng là mail nội bộ chung đường mạng với con nagios luôn
ai biết làm chỉ em với