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:
username | empty |
password | empty |
sysdba | empty |
hostname | localhost |
listenerport | 1521 |
ASMUSER | username: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: