GIẢI PHÁP GIÁM SÁT DATABASE ORACLE miễn phí


GIẢI PHÁP GIÁM SÁT HẠ TẦNG MẠNG MIỄN PHÍ VỚI NAGIOS

Tiếp theo loạt bài về giải pháp giám sát với Nagios. Trong bài viết này, tôi sẽ hướng dẫn cấu hình các thông số trên Nagios (Check_MK) để giám sát cơ sở dữ liệu Oracle ở môi trường Linux/Unix (AIX)

Về các thông số sẽ lấy từ db Oracle như sau:


  • oracle_instance Check various aspects of an Instance
  • oracle_asm_diskgroup Check various aspects of ASM Disk-Groups
  • oracle_dataguard_stats Check various aspects of Data-Guard state
  • oracle_jobs Check various aspects of Scheduler Jobs
  • oracle_locks Check various aspects of Instance Locks
  • oracle_logswitches Check various aspects of Logswitches
  • oracle_longactivesessions Check various aspects of Long Active Sessions
  • oracle_performance Ger various Performance data from an Instance
  • oracle_processes Check various aspects of ORACLE Processes
  • oracle_recovery_area Check various aspects of the Fast Recovery Area
  • oracle_recovery_status Check various aspects of the Recovery State
  • oracle_rman_backups Check various aspects of RMAN Backups
  • oracle_sessions Check various aspects of Sessions
  • oracle_tablespaces Check various aspects of Tablespaces
  • oracle_undostat Check various aspects of Undo Statistics

......

Để giám sát chi tiết các thông số trên host, chúng ta cần cần cài đặt Agent tương ứng với từng OS là Linux/AIX/Windows. Việc cài đặt Agent lên host khá đơn giản nên tôi sẽ không đề cập nhiều, chỉ tập trung vào các thông số cấu hình cần thiết.

Cài đặt Plugin:

Việc đầu tiên, chúng ta cần kiểm tra các thông số của Check_MK agent để biết nơi lưu trữ các file cấu hình:

root@linux# grep MK_LIBDIR /usr/bin/check_mk_agent
export MK_LIBDIR="/usr/lib/check_mk_agent"
PLUGINSDIR=$MK_LIBDIR/plugins
LOCALDIR=$MK_LIBDIR/local

Nếu thư mục plugin chưa có, chúng ta sẽ tạo:

root@linux# mkdir -p /usr/lib/check_mk_agent/plugins
root@linux# cp mk_oracle /usr/lib/check_mk_agent/plugins
root@linux# chmod 755 /usr/lib/check_mk_agent/plugins/mk_oracle

Plugin sẽ tự động phát hiện ra ORACLE instances dựa vào running processes như ora_pmon_....

Cấu hình thông số kết nối db Oracle:
 Các thông số kết nối db Oracl sẽ được khai báo thông qua file:  mk_oracle.cfg

Trước tiên, chúng ta cần cấp quyền truy cập vào db:

Tạo database user:

root@linux# su - oracle
oracle@linux:~> export ORACLE_SID=
oracle@linux:~> sqlplus / as sysdba
sqlplus> create user m_vnsysadmin identified by m_vnsysadminpwd;
sqlplus> grant select_catalog_role to check_mk;
sqlplus> grant create session to check_mk;
sqlplus> connect m_vnsysadmin/m_vnsysadminpwd
sqlplus> exit
oracle@linux:~> export ORACLE_SID=

Tạo ASM Instance user

Trong môi trường Oracle RAC (Real Application Cluster), ASM Instance sử dụng +ASM thay cho ORACLE_SID.

root@linux# su - oracle
oracle@linux:~> ps ax | grep pmon | grep ASM
oracle@linux:~> export ORACLE_SID=+ASM
oracle@linux:~> sqlplus / as sysasm
sqlplus> create user m_vnsysadmin identified by m_vnsysadminpwd;
sqlplus> grant sysdba to m_vnsysadmin;
sqlplus> exit

Khai báo thông số cho mk_oracle.cfg
File này thường nằm ở $MK_CONFDIR

Các thông số cấu hình thường như sau:


usernameempty
passwordempty
sysdbaempty
hostnamelocalhost
listenerport1521
ASMUSERusername:password:sysdba:hostname:port
DBUSER
DBUSER_username:password:sysdba:hostname:port

Ví dụ: 
/etc/check_mk/mk_oracle.cfg

ASMUSER=m_vnsysadmin:m_vnsysadminpwd:sysdba
ASMUSER=m_vnsysadmin:m_vnsysadminpwd:sysdba:host1:1521
DBUSER=m_vnsysadmin:m_vnsysadminpwd
DBUSER=m_vnsysadmin:m_vnsysadminpwd:sysdba
DBUSER=m_vnsysadmin:m_vnsysadminpwd::host1
DBUSER=m_vnsysadmin:m_vnsysadminpwd:::1522
DBUSER=m_vnsysadmin:m_vnsysadminpwd:sysdba:host2:1522
# ORACLE_SID=ORCL
DB_USER_ORCL=m_vnsysadmin:m_vnsysadminpwd2
# ORACLE_SID=tux
DB_USER_tux=m_vnsysadmin:m_vnsysadminpwd3:sysdba
# environment variable TNS_ADMIN
export TNS_ADMIN=/u00/app/oracle/network/admin

Thông tin DBUSER và ASMUSER khai báo nhiều lần chỉ là ví dụ. Thực tế thì quất 1 lần thôi ^^!

Testing plugin:

Sau khi cấu hình đầy đủ các thông số như trên, chúng ta tiến hành test thử:

root@linux# export MK_CONFDIR="/etc/check_mk"
root@linux# /usr/lib/check_mk_agent/plugins/mk_oracle -t

---oracle_instance---
---oracle_sessions---
---oracle_logswitches---
---oracle_undostat---
---oracle_recovery_area---
---oracle_processes---
---oracle_recovery_status---
---oracle_longactivesessions---
---oracle_dataguard_stats---
---oracle_performance---
---oracle_tablespaces---
---oracle_rman---
---oracle_jobs---
---oracle_ts_quotas---
---oracle_resumable---
---oracle_locks---
---oracle_instance---
---oracle_asm_diskgroup---
-----------------------------------------------
Logincheck to Instance: +ASM  Version: 12.1
Login ok User: SYS on ora12c.local
SYNC_SECTIONS= instance
ASYNC_SECTIONS= asm_diskgroup
-----------------------------------------------
Logincheck to Instance: tux2  Version: 12.1
Login ok User: CHECK_MK on ora12c.local
SYNC_SECTIONS= instance sessions logswitches undostat recovery_area processes recovery_status longactivesessions dataguard_stats performance
ASYNC_SECTIONS= tablespaces rman jobs ts_quotas resumable locks

Kết quả trên hệ thống Monitoring:




Chúc các bạn thành công. :)


Viết nhận xét

Các bạn có thể viết lời nhận xét cho bài viết, nhưng cần tuân thủ một số quy tắc sau:

» Các nhận xét/bình luận phải nghiêm túc, không dung tục, không spam.
» Nội dung phải liên quan tới chủ đề bài viết.
» Viết bằng tiếng việt có dấu hoặc tiếng Anh. Nội dung viết không dấu sẽ bị xóa.
» Hãy để lại tên của bạn khi nhận xét/bình luận, để tôi có thể dễ dàng trả lời bạn khi cần.