• 使用zabbix监控oracle的后台日志


    本文将介绍如何使用zabbix监控oracle的后台日志,当oracle后台日志出现“ORA-”或“Error”时,第一时间将该信息报警出来

    zabbix agent端


    以下所有操作均用root执行

    为oracle后台日志创建硬链接

    直接使用zabbix去读取oracle后台日志报权限不足,因此通过创建硬链接方式绕过权限问题
    cd /tmp
    ln /u01/app/oracle/diag/rdbms/orcltest/orcltest/trace/alert_orcltest.log alert_orcltest.log
    chmod 644 alert_orcltest.log

    创建目录

    mkdir -p /etc/zabbix/scripts

    创建脚本

    vi /etc/zabbix/scripts/alert.sh

    #!/bin/bash
    get_sum_rows() {
        rows=`wc -l $1 | awk '{print $1}'`
        echo $rows
    }
    
    runfile=/tmp/tmp_alertrows.txt
    
    # 初始化runfile文件
    if test -e $runfile; then
        sleep 0.01
    else
        get_sum_rows $1 > /tmp/tmp_alertrows.txt
    fi
    
    # 筛选日志中的ORA-和Error
    prevrows=`cat /tmp/tmp_alertrows.txt` 
    prevrows=$(($prevrows+1)) 
    tail -n +$prevrows $1 | egrep "^ORA-|^Error"
    
    # 每次脚本执行完之后,更新alert日志的总行数
    get_sum_rows $1 > /tmp/tmp_alertrows.txt

    chmod 755 /etc/zabbix/scripts/alert.sh

    创建agent conf文件

    vi /etc/zabbix/zabbix_agentd.d/userparameter_alert.conf
    ------------------------------------
    UserParameter=ora.alert.[*],/etc/zabbix/scripts/alert.sh $1
    ------------------------------------

    重启zabbix agent服务

    service zabbix-agent restart


    zabbix server端

    测试监控项

    zabbix_get -s 10.40.16.120 -k 'ora.alert.[/tmp/alert_orcltest.log]'
    正常情况下返回空行,如果返回其他错误,根据错误提示去检查问题

    在zabbix web页面中设置宏

    捕获2

    添加监控项

    捕获3

    添加触发器

    捕获4

    测试

    在数据库中模拟一个死锁出来,然后静静地等待zabbix报警

    捕获

    大功告成,其实过程还蛮简单的,监控其它类型的数据库的后台日志都可以按照这种方式去处理。不过此方式不适用于日志文件太大,否则脚本执行时间会比较久而导致超时,应该定期归档后台日志,使后台日志不至于太大。归档后台日志之后,手动删除/tmp/tmp_alertrows.txt和/tmp/alert_orcltest.log,重新给后台日志做个硬链接就行了。

  • 相关阅读:
    【POJ
    【POJ
    【POJ
    【POJ
    【POJ
    【POJ
    【POJ
    【POJ
    NAT
    OSPF与ACL综合实验
  • 原文地址:https://www.cnblogs.com/ddzj01/p/10911421.html
Copyright © 2020-2023  润新知