温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样使用zabbix监控oracle的后台日志

发布时间:2021-11-06 16:38:43 来源:亿速云 阅读:275 作者:柒染 栏目:建站服务器

今天就跟大家聊聊有关怎样使用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/bashget_sum_rows() {
    rows=`wc -l $1 | awk '{print $1}'`    echo $rows}
runfile=/tmp/tmp_alertrows.txt# 初始化runfile文件if test -e $runfile; then
    sleep 0.01else
    get_sum_rows $1 > /tmp/tmp_alertrows.txtfi# 筛选日志中的ORA-和Errorprevrows=`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报警

怎样使用zabbix监控oracle的后台日志

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

但是有个问题,就是如果alert 日志太大,会导致zabbix 监控慢,甚至会超时,所以要定期归档alert log。我写了个归档alert log的脚本,参考如下。

1

2

3

4

5

6

7

8

9

10

11

[root@node2 trace]# cat /usr/local/shell/alert_clear.sh

#!/bin/bash

set -u

set -e

set -o pipefail

alertlog_path=/opt/oracle/diag/rdbms/orcldg/orcl/trace/

date1=$(date +%Y%m%d_%H%M%S)

su - oracle -c "cp -a ${alertlog_path}alert_orcl.log ${alertlog_path}alert_orcl.log_${date1}"

su - oracle -c "echo > ${alertlog_path}alert_orcl.log"

echo /tmp/tmp_alertrows.txt

find ${alertlog_path}  -name "alert_orcl.log_*" -mtime +30 | xargs  rm -rf

1

2

3

[root@node2 trace]# crontab -l

#归档alert日志

50 00 * * *  /usr/local/shell/alert_clear.sh

看完上述内容,你们对怎样使用zabbix监控oracle的后台日志有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI