Cách tạo Nagios Plugins với Python trên CentOS 6
Giới thiệu
Python là một ngôn ngữ lập trình phổ biến cho phép bạn nhanh chóng tạo tập lệnh và cài đặt thêm thư viện.
Lần này, chúng ta sẽ mở rộng ý tưởng đó và tạo các Nagios plugin bằng Python. Các plugin này sẽ chạy trên VPS của client và được thực thi thông qua NRPE.
Bước 1 - Cài đặt RPMForge Repository và NRPE trên VPS của client
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm yum -y install python nagios-nrpe useradd nrpe && chkconfig nrpe on
Bước 2 - Tạo tập lệnh Python
Sẽ là một ý tưởng hay khi giữ các plugin của bạn trong cùng thư mục với các plugin Nagios khác (/usr/lib64/nagios/plugins/ chẳng hạn).
Trong ví dụ này, chúng ta sẽ tạo một tập lệnh để kiểm tra disk usage hiện tại bằng cách lấy "df" từ trình bao, và đưa ra cảnh báo nếu được sử dụng hơn 85%:
#!/usr/bin/python import os, sys used_space=os.popen("df -h / | grep -v Filesystem | awk '{print $5}'").readline().strip() if used_space < "85%": print "OK - %s of disk space used." % used_space sys.exit(0) elif used_space == "85%": print "WARNING - %s of disk space used." % used_space sys.exit(1) elif used_space > "85%": print "CRITICAL - %s of disk space used." % used_space sys.exit(2) else: print "UKNOWN - %s of disk space used." % used_space sys.exit(3)
Chúng ta lưu tập lệnh này trong /usr/lib64/nagios/plugins/usedspace.py và làm cho nó có thể thực thi được:
chmod +x /usr/lib64/nagios/plugins/usedspace.py
Toàn bộ Nagios NRPE plugin đều sử dụng các mã thoát để kích hoạt cảnh báo.
Bạn giới thiệu cấp độ logic của mình với tập lệnh và nếu muốn kích hoạt cảnh báo (cho dù đó là OK, WARNING, CRITICAL, hay UNKNOWN) - bạn chỉ việc mã thoát..
Tham khảo các Nagios Exit Codes sau đây:
Nagios Exit Codes
Exit Code | Status |
0 | OK |
1 | WARNING |
2 | CRITICAL |
3 | UNKNOWN |
Bước 3 - Thêm tập lệnh của bạn 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 vào nó:
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_python]=/usr/lib64/nagios/plugins/usedspace.py
Trường hợp 198.211.117.251 là máy chủ giám sát của chúng ta 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 của bạn vào Nagios kiểm tra trên máy chủ giám sát Nagios
Xác định lệnh mới trong /etc/nagios/objects/commands.cfg
define command{ command_name usedspace_python command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_python }
Như bạn 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_python', 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 cho VPS của client.
Với ví dụ này, chúng ta sẽ 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 Python check_command usedspace_python }
Khởi động lại Nagios:
service nagios restart
Xác minh rằng kiểm tra mới đang hoạt động:
Và bạn đã hoàn thành xong!