用zabbix監控oracle dg從庫是否應用日誌的指令碼

czxin788發表於2015-11-02
用zabbix監控oracle dg從庫是否應用日誌的指令碼


1、首先在dg備庫伺服器上寫如下指令碼:
[root@hnagroupnet1 ~]# cat /zabbix/archivelog_bak.sh
#!/bin/bash
sqlplus -S / as sysdba  @/zabbix/archivelog2.sql
 
[root@hnagroupnet1 ~]# cat /zabbix/archivelog2.sql
set serveroutput on size 10000
set heading off
set feedback off
set linesize 255
spool /zabbix/archive.log
begin
for zabbix in (select count(*) cnt from v$archived_log where applied='NO' AND  first_time > sysdate - 1/48) loop
    if zabbix.cnt<>0 then
         dbms_output.put_line(' 10.72.24.137 archive error' );
    end if;
    for zabbix2 in (select count(*) cnt2 from v$archived_log where   next_time > sysdate - 1/48) loop
     if zabbix2.cnt2=0 then
     dbms_output.put_line('10.72.24.137 archivelog file not arrived' );
    else
       if  zabbix.cnt=0 then
         dbms_output.put_line('ok' );
       end if;
    end if;
end loop;
end loop;
end;
/
spool off;
exit

2、將上述指令碼在dg伺服器上加入執行計劃:

[root@hnagroupnet1 ~]# crontab -l
*/5 * * * * su - oracle -c "sh /zabbix/archivelog_bak.sh"

3、在zabbix建立iterms:
鍵值:system.run["cat /zabbix/archive.log",]
註釋:system.run[command,<mode>]    在主機上執行指定的命令.
4、建立觸發器:

{10.72.24.137:system.run["cat /zabbix/archive.log",].str(ok,#2)}=0

描述:/zabbix/archive.log日誌內容不為1則報警

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-1821144/,如需轉載,請註明出處,否則將追究法律責任。

相關文章