banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Cấu hình Nagios để kiểm tra trạng thái up/down của Oracle Database  XML
  [Article]   Cấu hình Nagios để kiểm tra trạng thái up/down của Oracle Database 21/07/2012 14:33:45 (+0700) | #1 | 267243
[Avatar]
manthang
Journalist

[Minus]    0    [Plus]
Joined: 30/06/2008 16:36:58
Messages: 140
Offline
[Profile] [PM] [WWW]
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/

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
keep -security- in -mind-
[Up] [Print Copy]
  [Article]   Cấu hình Nagios để kiểm tra trạng thái up/down của Oracle Database 21/07/2012 14:56:55 (+0700) | #2 | 267247
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Nếu dùng `check_tcp` sao không check luôn từ Nagios server, cần gì phải check trên Oracle server rồi lại gọi qua NRPE:
Code:
define service{
use                                generic-service
host_name                          oracle-db
service_description                Oracle Listener Port
check_command                      check_tcp!1521
}


manthang wrote:

-- 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.
 

Không cần. Bạn có thể viết một plugin gọi sqlplus để check trên chính Oracle server rồi truyền kết quả qua NRPE cho Nagios.
Let's build on a great foundation!
[Up] [Print Copy]
  [Article]   Cấu hình Nagios để kiểm tra trạng thái up/down của Oracle Database 22/07/2012 08:27:40 (+0700) | #3 | 267274
[Avatar]
manthang
Journalist

[Minus]    0    [Plus]
Joined: 30/06/2008 16:36:58
Messages: 140
Offline
[Profile] [PM] [WWW]

quanta wrote:
Nếu dùng `check_tcp` sao không check luôn từ Nagios server, cần gì phải check trên Oracle server rồi lại gọi qua NRPE:
Code:
define service{
use                                generic-service
host_name                          oracle-db
service_description                Oracle Listener Port
check_command                      check_tcp!1521
}


manthang wrote:

-- 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.
 

Không cần. Bạn có thể viết một plugin gọi sqlplus để check trên chính Oracle server rồi truyền kết quả qua NRPE cho Nagios. 


Em sẽ coi lại và tuỳ chỉnh 2 chỗ này, cảm ơn anh quanta đã góp ý.
keep -security- in -mind-
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|