監控 Oracle DB Server

    特點:

    • Nagios Server 端不需要安裝 Oracle Client
       

    系統需求:

    1. 設定 Nagios Server 與要被監控的 Oracle DB Server 可以 SSH 免密碼登入
    2. 安裝 plugin check_remote_oracle

    設定 SSH 遠端登入

    參閱這篇 SSH 加密連線(免密碼登入)

    Plugin check_remote_oracle

    上傳附件檔 check_remote_oracle 至 Nagios 主機上的目錄 /usr/lib64/nagios/plugins/。

    chmod 0755 /usr/lib64/nagios/plugins/check_remote_oracle
    

    測試 DB 監控

    # su - nagios -c "/usr/lib64/nagios/plugins/check_remote_oracle -H oracle_server.mycompany.com --tns ORCL"
    OK - reply time 0 msec from ORCL
    
    # su - nagios -c "/usr/lib64/nagios/plugins/check_remote_oracle -H oracle_server.mycompany.com --db ORCL"
    ORCL OK - 1 PMON process(es) running
    
    # su - nagios -c "/usr/lib64/nagios/plugins/check_remote_oracle -H oracle_server.mycompany.com --cache ORCL 90 95"
    ORCL OK - Cache Hit Rates: 99.86% Lib -- 99.49% Buff|lib=99.86%;95;90;0;100 buffer=99.49%;95;90;0;100
    
    # su - nagios -c "/usr/lib64/nagios/plugins/check_remote_oracle -H oracle_server.mycompany.com --tablespace ORCL SYSTEM 95 90"
    ORCL : SYSTEM CRITICAL - 97.60% used [ 22 / 900 MB available ]|SYSTEM=97.60%;90;95;0;100 
    

    NOTE:

    * plugin 目錄可能因為版本不同,路徑也會不同。

    * ORCL 是 Oracle SID ,有區分大小寫

    設定 Nagios

    編輯 commands.cfg

    # Check Oracle
    define command{
        command_name        check_ora_tns
        command_line        $USER1$/check_remote_oracle -H $HOSTADDRESS$ --tns $ARG1$
    }
    
    define command{
        command_name        check_ora_db
        command_line        $USER1$/check_remote_oracle -H $HOSTADDRESS$ --db $ARG1$
    }
    

    NOTE:

    $USER1$ 路徑必須與儲存 check_remote_oracle 位置相同,這個路徑定義在 resource.cfg

    編輯 server.cfg

    ## Host 
    define host{
            use                     generic-host            ; Name of host template to use
            host_name               fdc_db01
            alias                   ODD DB Server(Oracle)
            address                 192.168.200.230
            check_command           check-host-alive
            max_check_attempts      10
            check_period            24x7
            notification_interval   120
            notification_period     24x7
            notification_options    d,r
            contact_groups          adm-alang
            notifications_enabled   1      ;0=disable, 1=enable
            process_perf_data       0
            }
    
    ## Service
    define service{
            use                        generic-service
            host_name                  fdc_db01
            service_description        Oracle-TNS-oddfdc
            contact_groups             adm-alang
            notifications_enabled      1
            check_command              check_ora_tns!oddfdc
            }
    
    define service{
            use                        generic-service
            host_name                  fdc_db01
            service_description        Oracle-DB-oddfdc
            contact_groups             adm-alang
            notifications_enabled      1
            check_command              check_ora_db!oddfdc
            }
    

    NOTE:

    oddfdc 是要被監控的 Oracle SID,有區分大小寫

    F.A.Q

    Q: 錯誤: Cannot determine ORACLE_HOME for sid oddmes

    A: Oracle DB 主機檢查 /etc/oratab,是否有包含這行文字

    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>
    oddmes:/opt/oracle/product/10.2.0/db_1:N
    
    Q: 錯誤: No TNS Listener on oddmes

    執行 check_remote_oracle -H 123.123.123.123 --tns oddmes 出現錯誤

    A:

    1. 從 Oracle DB 主機執行

    su - oracle
    tnsping <my-sid> 
    

    2. Oracle DB 主機檢查 $ORACLE_HOME/network/admin/tnsnames.ora,如沒有必須加上,內容參考如下

    ODDMES =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = tycoddovm-db02.my.domain)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = oddmes)
        )
      )
    
    標籤 (Edit tags)
    • No tags

    文件 1

    文件大小日期附件上傳者 
     check_remote_oracle
    無描述
    9.07 KB16:12, 30 Sep 2014alang動作
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core