本文參考連接:
https://www.jianshu.com/p/a6b36d5b74ba
一、實驗環境:
MongoDB/zabbix-agent:172.16.88.44
zabbix-server:172.16.88.42
zabbix-server版本號:3.2.11
zabbix 安裝不在贅述,確保監控正常
mongodb服務器端
二、安裝依賴包
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm
# yum install jq 需要epel源,有外網的直接執行安裝
如果是生產環境是內網可以這麼解決,在本地找一臺能連外網的測試服務器:
# yum install yum-utils -y
# yumdownloader jq --resolve --destdir=/tmp/pages/ --把jq的rpm包下載到本地再上傳到正式環境
用rpm 進行安裝
epel源手動瀏覽器訪問:
centos7:http://mirror.pnl.gov/epel/7/x86_64/Packages/j/jq-1.5-1.el7.x86_64.rpm
centos6:http://mirror.pnl.gov/epel/6/x86_64/Packages/j/jq-1.3-2.el6.x86_64.rpm
三、創建監控MongoDB腳本
# cd /etc/zabbix/zabbix_agentd.d/
說明:/etc/zabbix/zabbix_agentd.d/ 路徑爲zabbix-agent子配置文件的路徑
# vi /etc/zabbix/zabbix_agentd.d/mongodb.sh
#!/bin/bash
##################################################
# chentufeng
# 2019 12 05
##################################################
DB_HOST=127.0.0.1
DB_PORT=27017
DB_USERNAME=admin
DB_PASSWORD=123Abc
#下面是mongo命令的路徑,我是解壓安裝的,所以which找不到路徑,只能直接給它賦值絕對路徑
#MONGO=`which mongo`
MONGO="/usr/local/mongodb/bin/mongo"
JQ=`which jq`
EXIT_ERROR=1
EXIT_OK=0
if [ ! -x "$MONGO" ] ; then
echo "mongo not found"
exit $EXIT_ERROR
elif [ ! -x "$JQ" ] ; then
echo "jq not found"
exit $EXIT_ERROR
elif [ $# -eq 0 ] ; then
echo "No values pass"
exit $EXIT_ERROR
fi
index=.$(echo $@ | sed 's/[ ,]/./g')
MONGO_CMD="$MONGO --host ${DB_HOST:-localhost} --port ${DB_PORT:-27017} --authenticationDatabase admin --quiet"
[[ "$DB_USERNAME" ]] && MONGO_CMD="${MONGO_CMD} --username ${DB_USERNAME}"
[[ "$DB_PASSWORD" ]] && MONGO_CMD="${MONGO_CMD} --password ${DB_PASSWORD}"
output=$(
$MONGO_CMD <<< "db.runCommand( { serverStatus: 1} )" |\
sed -e 's/NumberLong(\(.*\))/\1/
s/ISODate(\(.*\))/\1/
s/ObjectId(\(.*\))/\1/
s/Timestamp(.*)/"&"/
s/\(BinData(.*\)"\(.*\)")/"\1\2)"/
s/"\([0-9]*\)"/\1/'
)
mongo_status=${PIPESTATUS[0]}
if [ $mongo_status -ne $EXIT_OK ] ; then
echo "mongo exec error"
exit $EXIT_ERROR
fi
value=$(echo $output | jq $index)
jq_status=$?
echo $value
# vi /etc/zabbix/zabbix_agentd.d/userparameter_mongodb.conf
############################################################
# /etc/zabbix/zabbix_agentd.d/mongodb.sh 腳本路徑,自定義
############################################################
UserParameter=mongodb.status[*],/etc/zabbix/zabbix_agentd.d/mongodb.sh $1 $2 $3 $4 $5
四、賦權配置:
chmod 755 /etc/zabbix/zabbix_agentd.d/mongodb.sh
chown zabbix:zabbix /etc/zabbix/zabbix_agentd.d/mongodb.sh
chmod 755 /etc/zabbix/zabbix_agentd.d/userparameter_mongodb.conf
chown zabbix:zabbix /etc/zabbix/zabbix_agentd.d/userparameter_mongodb.conf
五、重啓zabbix-agent
service zabbix-agent restart
六、測試是否能查看MongoDB信息:
有賬號密碼命令:
echo "db.serverStatus()" |mongo 172.16.88.44:27017/admin -uadmin -p123Abc
-u admin賬號
-p 密碼
沒賬號密碼:
echo "db.serverStatus()" |mongo
正常查看的會輸出一大串東西
否則會輸出這句話:exception: login failed
七、配置監控
172.16.88.42 zabbix server端:
導入zabbix MongoDB監控模板:
打開zabbix ----- 配置 ------ 模板 ------ 導入 -------瀏覽 -------選擇文件確定-------導入
模板下載地址:
https://download.csdn.net/download/MYF12/12014535
添加主機到MongoDB模板裏面即可
觸發器可以根據實際情況添加。
監控數據說明:
https://blog.csdn.net/qq_20545159/article/details/48738379