Cách tạo plugin Nagios bằng 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 các tập lệnh và cài đặt các thư viện bổ sung.
Trước đây ta đã trình bày cách cài đặt server giám sát Nagios trên CentOS 6 x64 .
Lần này, ta sẽ mở rộng ý tưởng này và tạo các plugin Nagios bằng Python. Các plugin này sẽ chạy trên client VPS và được thực thi qua NRPE.
Bước 1 - Cài đặt RPMForge Repository và NRPE trên client VPS
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 của bạn
Bạn nên giữ các plugin của bạn trong cùng một folder với các plugin Nagios khác ( / usr / lib64 / nagios / plugins / chẳng hạn).
Đối với ví dụ của ta , ta sẽ tạo một 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ừ shell và đưa ra một cảnh báo nếu nó được sử dụng trê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)
Ta sẽ 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ộ plugin Nagios NRPE đều sử dụng mã thoát để kích hoạt cảnh báo.
Bạn giới thiệu mức độ logic của bạn cho tập lệnh và nếu bạn muốn kích hoạt một cảnh báo (cho dù là OK, CẢNH BÁO, CRITICAL hay UNKNOWN) - bạn chỉ định mã thoát.
Tham khảo các Mã thoát Nagios sau:
Mã thoát Nagios
Mã thoát | Trạng thái |
0 | đồng ý |
1 | CẢNH BÁO |
2 | BẠO KÍCH |
3 | KHÔNG XÁC ĐỊNH |
Bước 3 - Thêm Tập lệnh của bạn vào cấu hình NRPE trên server khách
Xóa /etc/nagios/nrpe.cfg root và thêm các dòng sau vào đó:
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
Trong đó 198.211.117.251 là server giám sát của ta từ các bài viết trước. Thay đổi chúng thành giá trị của 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 Kiểm tra Nagios trên Server 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 thấy , nó sử dụng NRPE để tạo kết nối TCP tới cổng 5666 và chạy lệnh 'usedspace_python', mà ta đã xác định trong /etc/nagios/nrpe.cfg trên server từ xa đó.
Thêm kiểm tra này vào file cấu hình Nagios của bạn cho VPS khách hàng.
Đối với ví dụ của ta , ta sẽ giám sát một server có tên là CentOSServer và chỉnh sửa /etc/nagios/servers/CentOSServer.cfg
define service { use generic-service host_name CentOSServer service_description Custom Disk Checker In Python check_command usedspace_python }
Khởi động lại Nagios:
service nagios restart
Xác minh séc mới đang hoạt động:
Và bạn đã hoàn tất!
Các tin liên quan
Cách tạo plugin Nagios bằng Python trên Ubuntu 12.102013-04-29