前段时间生产的一个数据库的ogg进程挂了快半个月才被发现,已经起不来了,只有重新初始化再同步。因此很有必要监控下ogg的进程,这里给大家介绍如何使用zabbix监控oracle的ogg的进程。思路就是利用oracle用户去查ogg的相关状态,并把状态写入一个临时文件,供zabbix用户访问。如果ogg状态都是RUNNING,那么该文件应该是个空文件,如果有任何一个进程stopped或abended,那么这个文件就非空了,通过设置触发器判断这个文件内容的长度是否大于0来判断ogg的状态。
监控windows平台下的ogg程序请看:https://www.cnblogs.com/ddzj01/p/10981189.html
1. 首先在oracle用户下创建一个脚本,定期将ogg的状态写入到一个临时文件中
$ su - oracle
$ mkdir scripts
$ cd scripts
$ vi checkogg.sh
#!/bin/bash
# author: yangbao
source ~/.bash_profile
oggdir='/u01/app/OGG_11' # input your ogg home directory
echo "info all" | $oggdir/ggsci | awk '/^MANAGER|^EXTRACT|^REPLICAT/ {print $2}' | grep -v RUNNING | uniq > /tmp/tmpogg.cache
exit 0
$ chmod +x checkogg.sh
$ crontab –l
*/3 * * * * /home/oracle/scripts/checkogg.sh
2. 修改agent配置文件
$ su - root
$ cd /etc/zabbix/zabbix_agentd.d
$ vi userparameter_ogg.conf
UserParameter=ogg.status,cat /tmp/tmpogg.cache
$ service zabbix-agent restart