使用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,重新给后台日志做个硬链接就行了。

转载于:https://www.cnblogs.com/ddzj01/p/10911421.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值