zabbix3.2 監控MongoDB

本文參考連接:

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

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章