1) Giới thiệu
Bài này sẽ trình bày việc cấu hình cho Nagios để giám sát dịch vụ Oracle Database có đang hoạt động hay không (up/down). Dưới đây là 2 trong vài cách thức để thực hiện:
-- Sử dụng plugin check_tcp có sẵn trong Nagios để kiểm tra xem cổng mạng (port) của database có được mở và ở trạng thái lắng nghe, chờ kết nối hay không. Hầu hết các database đều mở một TCP port để cung cấp khả năng truy cập qua mạng cho các ứng dụng. Đối với Orace thì cổng mặc định khi cài đặt là TCP 1521.
Tuy nhiên, nếu các ứng dụng đó cùng nằm trên một máy chủ với database thì việc mở thêm một port cho các kết nối mạng là không cần thiết vì chúng sẽ liên lạc với nhau nhờ cơ chế IPC (Interprocess Communication). Nhưng điều này lại gây trở ngại cho việc giám sát từ xa thông qua việc kiểm tra port mạng của database.
Ngoài ra thì với Oracle, các kết nối mạng tới database được xử lý bởi một tiến trình listener tách biệt với tiến trình chính của Oracle. Nên nếu chỉ kiểm tra port đang up/down thôi thì chưa đủ vì có thể listener ngưng chạy nhưng hoạt động của Oracle vẫn bình thường và ngược lại.
-- Sử dụng plugin check_oracle có sẵn trong Nagios để kiểm tra thông qua một thao tác đăng nhập từ xa thực sự vào database. Cách này không những xác định được port đang mở hay không mà có cho biết một thực thể (instance) của Orace đang chạy và có thể đăng nhập vào.
Yêu cầu ở đây là máy Nagios cần được cài chương trình Oracle client hoặc tối thiểu là bộ thư viện Oracle instantclient và câu lệnh sqlplus. Ngoài ra, cũng cần tạo thêm trong Oracle một tài khoản dành riêng với các quyền bị giới hạn chặt chẽ chỉ đủ để kiểm tra đăng nhập vào database.
Thử nghiệm dưới đây sử dụng addon NRPE để thực thi plugin check_tcp trên máy chủ Oracle Database.
2) Yêu cầu và chuẩn bị
+ Một máy chủ chạy Nagios có sẵn plugin NRPE.
+ Một máy chủ chạy Oracle Database với port của listener là 1521 và được cài daemon NRPE
Xem thêm 2 bài sau:
http://manthang.wordpress.com/2012/07/06/giam-sat-may-linuxunix-su-dung-plugin-nrpe-cho-nagios-tren-centos-6-2/
và
http://manthang.wordpress.com/2012/06/27/cai-dat-nagios-tren-centos-6-2/
3) Các bước thực hiện
Thực hiện trên máy Oracle Database
1. Mở tập tin cấu hình cho NRPE là /usr/local/nagios/etc/nrpe.cfg và thêm vào định nghĩa cho câu lệnh check_tcp như mẫu sau:
Code:
command[check_tcp]=/usr/local/nagios/libexec/check_tcp –p 1521
2. Nếu đang chạy daemon NRPE dưới dịch vụ xinetd thì không cần khởi động lại daemon này và ngược lại, cần khởi động lại NRPE nếu nó chạy độc lập.
Thực hiện trên máy Nagios
1. Định nghĩa một service mới để kiểm tra listener port trên máy Orace Database bằng cách tạo mới một tập tin /usr/local/nagios/etc/objects/oracle.cfg với nội dung mẫu như sau:
Code:
define host{
use linux-server
host_name oracle-db
alias Oracle DB 11g
address 192.168.1.14
}
//kiểm tra listener port của Oracle
define service{
use generic-service
host_name oracle-db
service_description Oracle Listener Port
check_command check_nrpe!check_tcp
}
2. Thêm object trên vào tập tin cấu hình chính của Nagios bằng cách mở tập tin /usr/local/nagios/etc/nagios.cfg và thêm vào dòng sau
Code:
cfg_file=/usr/local/nagios/etc/objects/oracle.cfg
Kiểm tra lại các tập tin cấu hình và khởi động lại Nagios
Code:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# /etc/init.d/nagios restart
Tham khảo:
http://nagios.frank4dd.com/howto/db-monitoring.htm
–manthang