上个星期生产的一个oracle数据库的ogg进程挂了,等业务询问不同步才被发现,只能重新初始化再同步,花费不少时间。因此很有必要监控下ogg的进程,在这里记录一下如何使用zabbix4.2.5监控oracle的ogg的进程。利用oracle用户去查ogg的相关状态,并把状态写入一个文件当中,让zabbix-agent去访问。如果ogg状态,那么该文件是个空文件,如果有任何一个进程stopped或abended,这个文件就非空了,通过设置触发器来判断这个文件内容的字符长度是否大于0来判断ogg的状态。
1. 首先创建一个脚本,定期将ogg的状态写入到一个临时文件中(/tmp/tmpogg.txt)
cd /home/oracle
mkdir scripts
cd scripts
vi checkogg.sh
#!/bin/bash
source /home/oracle/.bash_profile
oggdir='/data/ogg' echo "info all" | $oggdir/ggsci | awk '/^MANAGER|^EXTRACT|^REPLICAT/ {print $2}' | grep -v RUNNING | uniq > /tmp/tmpogg.txt
exit 0
chmod a+x checkogg.sh #加执行权限
执行一下脚本,确认执行没问题
加入定时任务(每5分钟执行一次)
*/5 * * * * /home/oracle/scripts/checkogg.sh
2. 修改zabbix-agent配置文件
vi /etc/zabbix/zabbix_agentd.d/userparameter_ogg.conf
UserParameter=ogg.status,cat /tmp/tmpogg.txt
重启zabbix-agent
systemctl restart zabbix-agent
3. web页面中添加监控项
配置》主机 》找到对应服务器 》点击监控项 》创建监控项
点击添加完成
4. 添加触发器
点击触发器》创建触发器
监控项选择刚才创建的监控项,功能选择strlen>0
点击添加创建成功
现在可以将ogg服务关掉等待定时任务执行脚本查看是否监控成功啦!