• nagios监控oracle 表空间


    oracle表空间满的危害以及处理方式见我的博客链接 https://www.cnblogs.com/-abm/p/9764803.html

    除此之外我们还需要对表空间实时监控,这样就可以及时了解表空间的使用状况,防患于未然。

    监控工具

    nagios(nagios的工作原理需要清晰,这里不做介绍)

    nagios自带了oracle监控相关脚本,查看它的帮助的命令如下:

    # /usr/local/nagios/libexec/check_oracle -h

    Usage:
    check_oracle --tns <Oracle Sid or Hostname/IP address>
    check_oracle --db <ORACLE_SID>
    check_oracle --login <ORACLE_SID>
    check_oracle --connect <ORACLE_SID>
    check_oracle --cache <ORACLE_SID> <USER> <PASS> <CRITICAL> <WARNING>
    check_oracle --tablespace <ORACLE_SID> <USER> <PASS> <TABLESPACE> <CRITICAL> <WARNING>
    check_oracle --oranames <Hostname>
    check_oracle --help
    check_oracle --version

    开始配置监控

    2.1、按照命令帮助中的提示,测试nagios 监控oracle表空间

    格式:check_oracle --tablespace <ORACLE_SID> <USER> <PASS> <TABLESPACE> <CRITICAL> <WARNING>

    最好先在命令行下实验脚本的正确性,以及结果的准确度

    举例有问题的情况:
    # /usr/local/nagios/libexec/check_oracle --tablespace  orcl sys mima users 98 95
    CRITICAL - ORA-28009: ??? SYSDBA ??? SYSOPER ???? SYS ??

    //报错提示:用sys用户登录必须要加as sysdba,所以我自己查看了nagios的监控脚本并修改了部分内容(修改内容见最后),然后正常执行了。

    正常执行
    # /usr/local/nagios/libexec/check_oracle --tablespace pdb_xxx sys mima USERS 90 80;
    pdb_shwjs : USERS CRITICAL - 95.30% used [ 12613 / 268144 MB available ]|USERS=95.30%;80;90;0;100

    2.2、加入到监控配置文件中

    # vim  /usr/local/nagios/etc/nrpe.cfg,加入监控内容条目

    ......
    #check oracle_tablespace
    command[check_oracle_tab]=/usr/local/nagios/libexec/check_oracle --tablespace pdb_shwjs sys SHipii314 USERS 98 97
    //这里的check_oracle_tab是用于服务端调用的标识符

    配置完成重启客户端nrpe,使监控项目生效

    # service xinetd restart
    Stopping xinetd:                                           [  OK  ]
    Starting xinetd:                                           [  OK  ]

    2.3、配置服务端

    服务端先用命令行测试

    #  ../libexec/check_nrpe -H 192.168.13.103 -c check_oracle_tab
    pdb_shwjs : USERS OK - 95.30% used [ 12613 / 268144 MB available ]|USERS=95.30%;97;98;0;100

    测试没有问题,写到监控主机的服务配置文件中

    # vim services/192.168.13.103.cfg

    # 监控oracle_tablespace
    define service{
           service_description        check_oracle_tab                  ; 定义服务名称(WEB管理台显示的服务标识)
           host_name                       192.168.13.103           ; 关联的主机名称(引用主机.cfg配置)
           check_command           check_nrpe!check_oracle_tab         ; 执行的监控命令(引用被控端nrpe.cfg配置)
           check_period                    7x24h                   ; 监控服务的时间段(引用timeperiods.cfg配置)
           normal_check_interval           1                       ; 监控检查服务时间间隔(单位/分钟)
           retry_check_interval            1                       ; 非OK状态重新检查时间间隔(单位/分钟)
           max_check_attempts              2                       ; 非OK状态重新检查最大次数(达到阀值将触发通知功能)
           notifications_enabled           1                       ; 是否启用通知功能(1是/0否)
           contact_groups                  gnnt-admins                  ; 通知发送对象(引用contacts.cfg配置)
           notification_options            w,u,c,r                 ; 通知类型(warning、unknown、critical、recovery)
           notification_interval           10                      ; 重发通知的时间间隔(单位/分钟)
           notification_period             7x24h                   ; 允许发送通知的时间段(引用timeperiods.cfg配置)
           active_checks_enabled           1                       ; 是否启用主动式服务检查(1是/0否)
           passive_checks_enabled          1                       ; 是否启用被动式服务检查(1是/0否)
           parallelize_check               1                       ; 是否启用并行主动服务检查(禁用可能会带来重大性能问题)
           obsess_over_service             1                       ; 是否保持监控该服务(1是/0否)
           event_handler_enabled           1                       ; 是否启用事件处理程序(1是/0否)
           process_perf_data               1                       ; 是否启用过程性能数据功能(1是/0否)
           flap_detection_enabled          0                       ; 是否否启用Flap检测功能(1是/0否)
           retain_status_information       0                       ; 是否保留整个程序重新启动的状态信息(1是/0否)
           retain_nonstatus_information    0                       ; 是否保留整个程序重新启动非状态信息(1是/0否)
           }

    重新加载nagios

    # service nagios reload
    Running configuration check...
    Reloading nagios configuration...
    done

    监控效果

    附:

    nagios监控oracle的脚本修改

    262 --tablespace)
    263     if [ ${6} -lt ${7} ] ; then
    264         echo "UNKNOWN - Warning level is more then Crit"
    265         exit $STATE_UNKNOWN
    266     fi
    267     result=`sqlplus -s ${3}/${4}@192.168.13.105:1521/${2} as sysdba << EOF
  • 相关阅读:
    websocket协议解决消息发送问题 Could not decode a text frame as UTF-8.
    成功解决internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'minimatch'
    FastDFS客户端与自定义文件存储系统
    fastdfs 中client.conf 文件
    centos 中 redis 的安装
    redis安装成功后get: command not found
    Shell基础知识(二)
    Shell基础知识(一)
    binary search模板总结
    配置远程jupyter notebook
  • 原文地址:https://www.cnblogs.com/-abm/p/9847725.html
Copyright © 2020-2023  润新知