Cách tạo Nagios Plugins với PHP trên CentOS 6

2 năm trước

 

 

Giới thiệu

PHP là một ngôn ngữ lập trình phổ biến cho phép nhanh chóng tạo tập lệnh và cài đặt thêm thư viện.

Chúng tôi sẽ mở rộng ý tưởng này và tạo các plugin Nagios bằng cách sử dụng PHP. Các plugin này sẽ chạy trên VPS của máy khách và được thực thi thông qua NRPE.

Bước 1 - Cài đặt RPMForge Repository và NRPE trên VPS của khách hàng

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum -y install php nagios-nrpe
useradd nrpe && chkconfig nrpe on
 

Bước 2 - Tạo tập lệnh PHP 

Sẽ là một ý tưởng tốt khi giữ các plugin của bạn trong cùng thư mục với các plugin Nagios khác ( ví dụ /usr/lib64/nagios/plugins/).

Ví dụ, tạo tập lệnh để kiểm tra việc sử dụng đĩa hiện tại bằng cách gọi "df" từ trình bao, và đưa ra cảnh báo nếu nó được sử dụng hơn 85%:

#!/usr/bin/php "85%":
print "CRITICAL - $used_space of disk space used.";
exit(2);
default:
print "UNKNOWN - $used_space of disk space used.";
exit(3);
}?>

Lưu tập lệnh này trong /usr/lib64/nagios/plugins/usedspace.php và thực hiện nó như sau:

chmod +x /usr/lib64/nagios/plugins/usedspace.php

Toàn bộ plugin Nagios NRPE đều sử dụng các mã thoát để kích hoạt cảnh báo.

Giới thiệu cấp độ logic với tập lệnh và nếu muốn kích hoạt cảnh báo (dù đó là OK, WARNING, CRITICAL, hoặc UNKNOWN) - chỉ định mã thoát.

Tham khảo các Nagios Exit Code sau:

Nagios Exit Codes

Exit CodeStatus
0OK
1WARNING
2CRITICAL
3UNKNOWN
 

Bước 3 - Thêm tập lệnh vào cấu hình NRPE trên máy khách

Xóa /etc/nagios/nrpe.cfg gốc và thêm các dòng sau:

log_facility=daemon
pid_file=/var/run/nrpe/nrpe.pid
server_port=5666
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=198.211.117.251
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nrpe.d/
command[usedspace_php]=/usr/lib64/nagios/plugins/usedspace.php

Trường hợp 198.211.117.251 là máy chủ giám sát từ các bài viết trước. Thay đổi các giá trị này thành giá trị của riêng bạn.

Đảm bảo khởi động lại dịch vụ Nagios NRPE:

service nrpe restart
 

Bước 4 - Thêm lệnh mới vào Nagios Checks trên Nagios Monitoring Server

Xác định lệnh mới trong /etc/nagios/objects/commands.cfg

define command{
command_name usedspace_php
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_php
}

Có thể thấy nó sử dụng NRPE để tạo các kết nối TCP tới cổng 5666 và chạy lệnh 'usedspace_php', mà đã định nghĩa trong /etc/nagios/nrpe.cfg trên máy chủ từ xa.

Thêm kiểm tra này vào tập tin cấu hình Nagios của bạn cho VPS khách hàng.

Ví dụ, theo dõi một máy chủ được gọi là CentOSDroplet và chỉnh sửa /etc/nagios/servers/CentOSDroplet.cfg

define service {
use generic-service
host_name CentOSDroplet
service_description Custom Disk Checker In PHP
check_command usedspace_php
}

Khởi động lại Nagios:

service nagios restart

Xác nhận rằng việc kiểm tra mới đang hoạt động:

Và bạn đã hoàn tất!

Tìm hiểu thêm nhiều điều thú vị tại Vicloud!