使用nrpe監控Goldengate程式指令碼
使用nrpe監控Goldengate程式指令碼
1. nrpe監控指令碼的一般準則,大概可以看一下其他例子,照著寫就行了
2.指令碼如下
[root@sz libexec]# cat /usr/local/nagios/libexec/check_gghealth
#!/bin/bash
# Nagios return codes
#定義 nagios返回的狀態變數
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
# 外掛描述資訊
PROGNAME="check_gghealth"
RELEASE="Revision 1.0.0"
AUTHOR="(c) 2015 dudong"
# Functions plugin usage
# 外掛的使用方法函式
print_release() {
echo "$RELEASE $AUTHOR"
}
print_usage() {
echo ""
echo "$PROGNAME $RELEASE - Goldengate health check script for Nagios"
echo ""
echo "Usage: check_gghealth"
echo ""
echo " -v check the version"
echo " -h Show this page"
echo ""
echo "Usage: $PROGNAME"
echo "Usage: $PROGNAME --help"
echo ""
exit 0
}
print_help() {
print_usage
echo ""
echo "This plugin will check gg health "
echo ""
exit 0
}
# 傳遞引數
while [ $# -gt 0 ]; do
case "$1" in
-h | --help)
print_help
exit $STATE_OK
;;
-v | --version)
print_release
exit $STATE_OK
;;
*) echo "Unknown argument: $1"
print_usage
exit $STATE_UNKNOWN
;;
esac
shift
done
# 生效變數檔案
SIDNAME=ebpdb
cd /home/oracle
. ./prof_$SIDNAME
mkdir -p /tmp/ggcheck/
cd $OGG_HOME
echo "info all" | ./ggsci |grep -E "MANAGER|EXTRACT|REPLICAT" > /tmp/ggcheck/gginfo.tmp
chmod 776 /tmp/ggcheck/gginfo.tmp
cd /tmp
filename=/tmp/ggcheck/gginfo.tmp
NUM1=$(cat $filename | grep "ABENDED" | wc -l)
NUM2=$(cat $filename | grep "STOPPED" | wc -l)
MESSAGE1=$(find $filename |xargs grep -ri "ABENDED")
MESSAGE2=$(find $filename |xargs grep -ri "STOPPED")
MESSAGE3=$(find $filename |xargs grep -ri "RUNNING")
if [ "$NUM1" = "0" -a "$NUM2" = "0" ]; then
echo "OK - Goldengate status is ok "
# echo "$MESSAGE3"
exit $STATE_OK
else
echo "CRITICAL - Goldengate status is critical; $MESSAGE1; $MESSAGES"
exit $STATE_CRITICAL
fi
[root@sz libexec]#
3. 這個指令碼需要root許可權執行,所以需要修改/etc/sudoers
註釋掉:
#Defaults requiretty //註釋掉一下行,表示不需要控制終端
增加:
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_gghealth
//執行指令碼許可權為了安全起見,新增只允許執行的監控指令碼即可,並且設定指令碼不可寫狀態。
4. 修改nrpe檔案,並重啟程式
command[check_goldengate]=/usr/bin/sudo /usr/local/nagios/libexec/check_gghealth
5.驗證!!
客戶端:必須nagios使用者執行無報錯
[nagios@sz ~]$ /usr/bin/sudo /usr/local/nagios/libexec/check_gghealth
OK - Goldengate status is ok
[nagios@sz ~]$
伺服器端:
[root@sznagiosapp3 libexec]# ./check_nrpe -H 172.28.33.11 -c check_goldengate
OK - Goldengate status is ok
[root@sznagiosapp3 libexec]#
6. 出現的蛋疼問題 nrpe: unable to read output
出現的問題可能有很多種,根據問題查詢得出一些分析的注意地方:
1、檢查客戶端nrpe的許可權是否可讀,可被nagios執行,如果nagios許可權不夠,需要提權。
2、檢查nrpe.cfg裡面commands命令路徑是否正確。
3、在配置完nrpe.cfg,沒有殺nrpe程式。
第一:確保在本地使用nagios使用者執行命令,無各類許可權問題報錯
第二:chown -R nagios:nagios /usr/local/nagios
第三:註釋掉:#Defaults requiretty //
第四:command[check_goldengate]= 這個地方把名字改一下,重新重啟程式。
1. nrpe監控指令碼的一般準則,大概可以看一下其他例子,照著寫就行了
2.指令碼如下
[root@sz libexec]# cat /usr/local/nagios/libexec/check_gghealth
#!/bin/bash
# Nagios return codes
#定義 nagios返回的狀態變數
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
# 外掛描述資訊
PROGNAME="check_gghealth"
RELEASE="Revision 1.0.0"
AUTHOR="(c) 2015 dudong"
# Functions plugin usage
# 外掛的使用方法函式
print_release() {
echo "$RELEASE $AUTHOR"
}
print_usage() {
echo ""
echo "$PROGNAME $RELEASE - Goldengate health check script for Nagios"
echo ""
echo "Usage: check_gghealth"
echo ""
echo " -v check the version"
echo " -h Show this page"
echo ""
echo "Usage: $PROGNAME"
echo "Usage: $PROGNAME --help"
echo ""
exit 0
}
print_help() {
print_usage
echo ""
echo "This plugin will check gg health "
echo ""
exit 0
}
# 傳遞引數
while [ $# -gt 0 ]; do
case "$1" in
-h | --help)
print_help
exit $STATE_OK
;;
-v | --version)
print_release
exit $STATE_OK
;;
*) echo "Unknown argument: $1"
print_usage
exit $STATE_UNKNOWN
;;
esac
shift
done
# 生效變數檔案
SIDNAME=ebpdb
cd /home/oracle
. ./prof_$SIDNAME
mkdir -p /tmp/ggcheck/
cd $OGG_HOME
echo "info all" | ./ggsci |grep -E "MANAGER|EXTRACT|REPLICAT" > /tmp/ggcheck/gginfo.tmp
chmod 776 /tmp/ggcheck/gginfo.tmp
cd /tmp
filename=/tmp/ggcheck/gginfo.tmp
NUM1=$(cat $filename | grep "ABENDED" | wc -l)
NUM2=$(cat $filename | grep "STOPPED" | wc -l)
MESSAGE1=$(find $filename |xargs grep -ri "ABENDED")
MESSAGE2=$(find $filename |xargs grep -ri "STOPPED")
MESSAGE3=$(find $filename |xargs grep -ri "RUNNING")
if [ "$NUM1" = "0" -a "$NUM2" = "0" ]; then
echo "OK - Goldengate status is ok "
# echo "$MESSAGE3"
exit $STATE_OK
else
echo "CRITICAL - Goldengate status is critical; $MESSAGE1; $MESSAGES"
exit $STATE_CRITICAL
fi
[root@sz libexec]#
3. 這個指令碼需要root許可權執行,所以需要修改/etc/sudoers
註釋掉:
#Defaults requiretty //註釋掉一下行,表示不需要控制終端
增加:
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_gghealth
//執行指令碼許可權為了安全起見,新增只允許執行的監控指令碼即可,並且設定指令碼不可寫狀態。
4. 修改nrpe檔案,並重啟程式
command[check_goldengate]=/usr/bin/sudo /usr/local/nagios/libexec/check_gghealth
5.驗證!!
客戶端:必須nagios使用者執行無報錯
[nagios@sz ~]$ /usr/bin/sudo /usr/local/nagios/libexec/check_gghealth
OK - Goldengate status is ok
[nagios@sz ~]$
伺服器端:
[root@sznagiosapp3 libexec]# ./check_nrpe -H 172.28.33.11 -c check_goldengate
OK - Goldengate status is ok
[root@sznagiosapp3 libexec]#
6. 出現的蛋疼問題 nrpe: unable to read output
出現的問題可能有很多種,根據問題查詢得出一些分析的注意地方:
1、檢查客戶端nrpe的許可權是否可讀,可被nagios執行,如果nagios許可權不夠,需要提權。
2、檢查nrpe.cfg裡面commands命令路徑是否正確。
3、在配置完nrpe.cfg,沒有殺nrpe程式。
第一:確保在本地使用nagios使用者執行命令,無各類許可權問題報錯
第二:chown -R nagios:nagios /usr/local/nagios
第三:註釋掉:#Defaults requiretty //
第四:command[check_goldengate]= 這個地方把名字改一下,重新重啟程式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30936525/viewspace-2097982/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Goldengate for nrpe監控指令碼Go指令碼
- memcached程式埠監控指令碼指令碼
- 監控指令碼指令碼
- oracle空間使用監控指令碼Oracle指令碼
- Nrpe 監控Linux系統Linux
- Nrpe for Windows監控檢測命令Windows
- 使用Shell指令碼程式監控網站URL是否正常指令碼網站
- mysql監控指令碼MySql指令碼
- DBA監控指令碼指令碼
- session指令碼監控Session指令碼
- 埠監控指令碼指令碼
- oracle 監控指令碼Oracle指令碼
- listener監聽監控指令碼指令碼
- AIX環境下監控程式指令碼AI指令碼
- 監控mysql索引使用效率的指令碼MySql索引指令碼
- 使用 Shell 指令碼監控 Linux 系統程式資源指令碼Linux
- 【SQL監控】SQL完全監控的指令碼SQL指令碼
- ogg監控指令碼指令碼
- stap監控IO指令碼指令碼
- 【shell】磁碟監控指令碼指令碼
- Linux 監控程式是否存在的指令碼Linux指令碼
- 監控磁碟使用率的shell指令碼指令碼
- 監控系統使用情況shell指令碼指令碼
- oracle使用監控指令碼_ck_tablespace.shOracle指令碼
- 分享實用監控指令碼:使用Shell檢查程式是否存在指令碼
- mysql 的一個監控指令碼,監控heartbeatMySql指令碼
- Windows NRPE監控標準規範(轉)Windows
- mysql mon 的一個監控指令碼,監控heartbeatMySql指令碼
- Windows監控並重啟某個程式指令碼Windows指令碼
- 監控使用高cpu的sql語句指令碼SQL指令碼
- PostgreSQL之鎖監控指令碼SQL指令碼
- Oracle DBA常用監控指令碼Oracle指令碼
- Nagios 監控ESXI指令碼iOS指令碼
- 監控cpu與memory指令碼指令碼
- 資料庫監控指令碼資料庫指令碼
- (Datagurad)監控指令碼指令碼
- 監控session數量指令碼Session指令碼
- 監控硬碟空間指令碼硬碟指令碼