利用ZABBIX全面監控MongoDB數據庫
一、.思路
1、MongoDB簡單介紹,及解釋。
2、監控自己想要的值,那麽首先要把自己想監控的值用shell正則提取出來。
3、把提取出來的數值做成一個key。(下面包括自定義key的寫法介紹)
4、在zabbix web上創建監控項、觸發器、圖形等。
5、完成對MongoDB的監控並規整文檔,總結和問題發現。
1、MongoDB監控介紹,及解釋
MongoDB是用C++語言編寫的非關系型數據庫。特點是高性能、易部署、易使用,存儲數據十分方便,主要特性有:
模式自由
支持動態查詢
支持完全索引,包含內部對象
支持復制和故障恢復
使用高效的二進制數據存儲,包括大型對象
文件存儲格式為BSON(一種JSON的擴展)
那我們通過什麽來獲取mongoDB的參數呢?
一般情況下mongoDB的端口號為27017,那我們這一通過下面的方法獲取mongoDB狀態值。
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeytXXXXX
解釋:/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo是我的mongo的路徑這個根據自己的系統安裝通過sudo find / -name mongo查找
192.168.1.20:27017/XXX -uXXXX -pkeytXXXXX 自己的IP地址:端口/庫名 -u用戶 -p密碼
輸出結果如下:
MongoDB shell version: 2.0.5
connecting to: test
{
"host" : "TENCENT64.site", --server的hostname"version" : "2.0.5", --mongo版本
"process" : "mongod", --進程名
"uptime" : 1238418, --啟動時間(單位:S)
"uptimeEstimate" : 1230730, --基於MongoDB內部粗粒度定時器的運行時間
"localTime" : ISODate("2012-09-14T09:09:52.657Z"), --server的本地時間
"globalLock" : {
"totalTime" : 1238418105923, --全局鎖創建的時間(單位:ms 微秒)
"lockTime" : 75055831911, --全局鎖保持的時間(單位:ms 微秒)
"ratio" : 0.06060621332329477, --lockTime和totalTime的比
"currentQueue" : {
"total" : 0, --等待全局鎖的隊列中操作數目
"readers" : 0, --等待讀鎖的隊列中操作數目
"writers" : 0 --等待寫鎖的隊列中操作數目
},
"activeClients" : {
"total" : 1, --連接到server的當前活動client數目
"readers" : 1, --執行讀操作的當前活動client數目
"writers" : 0 --執行寫操作的當前活動client數目
}
},
"mem" : {
"bits" : 64, --64位機器
"resident" : 18363, --占用物理內存量。
"virtual" : 478810, --占用的虛擬內存量
"supported" : true, --是否支持擴展內存
"mapped" : 233311, --映射到內存的數據文件大小,很接近於你的所有數據庫大小。
"mappedWithJournal" : 466622,
"note" : "virtual minus mapped is large. could indicate a memory leak"
},
"connections" : {
"current" : 737, --當前活動連接量。連接到server的當前活躍連接數目
"available" : 82 --剩余空閑連接量。剩余的可用連接數目
},
"extra_info" : {
"note" : "fields vary by platform",
"heap_usage_bytes" : 3838448, --此過程中所有的堆字節數目。僅適用於Linux
"page_faults" : 31058356 --此過程中訪問內存中頁面失敗的總次數。僅適用於Linux
},
"indexCounters" : {
"btree" : {
"accesses" : 68229146, --Btree索引的訪問次數(索引被訪問量)
"hits" : 68229146, --內存中的Btree頁的數目。(索引命中量)
"misses" : 0, --內存中不存在的Btree也數目。(索引偏差量)(索引內存訪問失敗次數)
"resets" : 0, --索引計數器被重置為0的次數
"mi***atio" : 0 --索引偏差率(未命中率)
}
},
"backgroundFlushing" : {
"flushes" : 20640, --數據庫刷新寫到磁盤的次數
"total_ms" : 2453287, --數據庫刷新數據到磁盤花費的微秒數
"average_ms" : 118.8608042635659, --執行單次刷新花費的平均微秒數
"last_ms" : 1, --最後一次執行完成刷新數據到磁盤花費的微秒數
"last_finished" : ISODate("2012-09-14T09:09:35.656Z") --當最後一次刷新數據完成時的時間戳
},
"cursors" : {
"totalOpen" : 0, --server為client保持的遊標(cursor)總數
"clientCursors_size" : 0, --
"timedOut" : 24 --server啟動以來遊標(cursor)超時的總數
},
"network" : {
"bytesIn" : NumberLong("1929833164782"), --發送到數據庫的數據總量(bytes)
"bytesOut" : 553137147925, --數據庫發出的數據總量(bytes)
"numRequests" : 2475184328 --發送到數據庫的請求量
},
"opcounters" : {
"insert" : 687531883, --server啟動以來總的insert數據量
"query" : 711010343, --server啟動以來總的query數據量
"update" : 0, --server啟動以來總的update數據量
"delete" : 0, --server啟動以來總的delete數據量
"getmore" : 6484, --server啟動以來調用任何遊標的getMore總次數
"command" : 1287537 --server啟動以來執行其他命令的總次數
},
"asserts" : {
"regular" : 0, --server啟動以來拋出正規斷言(assert 類似於異常處理的形式)總數目
"warning" : 1, --server啟動以來拋出的告警總數目
"msg" : 0, --消息斷言數目。服務器內部定義的良好字符串錯誤
"user" : 4, --用戶斷言數目。用戶產生的錯誤,譬如:磁盤空間滿;重復鍵。
"rollovers" : 0 --server啟動以來,assert counters have rolled over的次數
},
"writeBacksQueued" : false, --是否有從mongos執行的retry操作
"dur" : {
"commits" : 30, --上一間隔journal日誌發生commit的次數
"journaledMB" : 0, --上一間隔寫到journal日誌的數據量(單位:MB)
"writeToDataFilesMB" : 0, --上一間隔journal日誌寫到數據文件的數據量(單位:MB)
"compression" : 0, --
"commitsInWriteLock" : 0, --寫鎖期間發生commits的次數
"earlyCommits" : 0, --schedule時間前請求commit的次數
"timeMs" : {
"dt" : 3064,
"prepLogBuffer" : 0, --準備寫journal日誌花費的時間
"writeToJournal" : 0, --寫journal日誌花費的實際時間
"writeToDataFiles" : 0, --journal日誌後寫數據文件花費的時間
"remapPrivateView" : 0 --The amount of time spent remapping copy-on-write memory mapped views
}
},
"ok" : 1 --serverStatus是否返回正確
2、監控自己想要的值,那麽首先要把自己想監控的值用shell正則提取出來
這裏我已經提取完畢直接呈現給大家註意下邊的不是腳本,如果想把它變成腳本也沒問題。
#物理內存量大小
resident {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"resident"‘ |awk -F "[ ,]+" ‘{print $3}‘
}
#虛擬內存量大小
virtual {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"virtual"‘ |awk -F "[ ,]+" ‘{print $3}‘
}
#活躍客戶端數量
totalCreated {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"totalCreated"‘| awk -F "[ :]+" ‘{print $2}‘
}
#數據庫連接數
current {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"current"‘ |awk -F "[ ,]+" ‘{print $3}‘
}
#數據庫剩余連接數
available {
/bin/echo "db.serverStatus()"| /data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX |grep ‘"available"‘ |awk -F "[ ,]+" ‘{print $3}‘
}#總計創建過多少次連接
totalCreated {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep totalCreated |awk -F "[ ,]+" ‘{print $3}‘
}
#連續正常工作時間
uptimeEstimate {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"uptimeEstimate"‘ |awk -F "[ ,]+" ‘{print $3}‘| sed "s/NumberLong(([0-9]))./\1/g"
}
#到現在總共使用的物理內存,單位MB
resident {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"resident"‘| awk -F ‘[ ,]‘ ‘{print $3}‘
}
#當前Mongodb實例使用的虛擬內存大小,單位MB
virtual {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"virtual"‘| awk -F ‘[ ,]‘ ‘{print $3}‘
}
#本機是否支持內存擴展
supported {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"supported"‘| awk -F ‘[ ,]‘ ‘{print $3}‘
}
#當前實例堆大小,單位bytes
page_faults {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"page_faults"‘| awk -F ‘[ ,]‘ ‘{print $3}‘
}
#加載磁盤內容時發生的頁錯誤的次數
page_faults {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"page_faults"‘ |awk -F ‘[:]‘ ‘{print $2}‘|sed ‘s/^[ \t]*//g‘
}
#執行insert次數
insert {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"insert"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘|head -n 1
}
#執行query次數
query {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"query"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}
#執行update次數
update {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"update"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘|head -n 1
}
#執行delete次數
delete {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"delete"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘|head -n 1
}
#執行getmore次數
getmore {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"getmore"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}
#執行command次數
command {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"command"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}
#斷言正常次數
regular {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"regular"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}
#斷言告警次數
warning {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"warning"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}
#斷言內部錯誤次數
mag {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"msg"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}
#自啟動以來用戶使用所造成的錯誤而被斷言的次數
user {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"user"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}
#斷言被翻轉的次數
rollovers {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"rollovers"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}
#serverStatus是否返回正確
ok {
/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXX -uXXX -pkeyXXXXX | grep ‘"ok"‘ |awk -F ‘[ ,]‘ ‘{print $3}‘
}$1
3、把提取出來的數值做成一個key
首先我們再次書序一下key的寫法:
UserParameter=Physical_cpu_0_temperature,sensors|grep "id 0"|awk ‘{print $4}‘|awk -F "°" ‘{print $1}‘|awk -F "+" ‘{print $2}‘
變量 Key 命令
其中Physical_cpu_0_temperature就是我們自定義的key。
ok我們開始建立自己的key吧,下邊我是在自定義key的時候吧提取參數的正則也寫定義到一起了,我也是圖個方便。
#UserParameter=MongoDB.Status[],/data/zabbix/scripts/check_mongodb.sh $1 $2 $3
#UserParameter=MongoDB.Status[],/bin/echo "db.serverStatus().$1" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep "\<$2\>" |awk -F : ‘{print $$2}‘ |awk -F , ‘{print $$1}‘
UserParameter=MongoDB.byesOut,/bin/echo "db.serverStatus().network" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep "bytesOut" | awk -F : ‘{print $2}‘ | awk -F , ‘{print $1}‘ | awk -F \" ‘{print $2}‘
UserParameter=MongoDB.bytesIn,/bin/echo "db.serverStatus().network" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep "bytesIn" | awk -F : ‘{print $2}‘ | awk -F , ‘{print $1}‘ | awk -F \" ‘{print $2}‘
#UserParameter=MongoDB.totalCreated,/data/zabbix/scripts/check_mongodb.sh 27017 connections totalCreated
#UserParameter=MongoDB.available,/data/zabbix/scripts/check_mongodb.sh 27017 connections available
UserParameter=MongoDB.resident,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"resident"‘ |awk -F "[ ,]+" ‘{print $3}‘
UserParameter=MongoDB.virtual,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"virtual"‘ |awk -F "[ ,]+" ‘{print $3}‘
UserParameter=MongoDB.totalCreated,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"totalCreated"‘| awk -F "[ :]+" ‘{print $2}‘
UserParameter=MongoDB.current,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"current"‘| awk -F "[ ,]+" ‘{print $3}‘
UserParameter=MongoDB.available,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"available"‘| awk -F "[ ,]+" ‘{print $3}‘
UserParameter=MongoDB.uptimeEstimate,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"uptimeEstimate"‘| awk -F "[ ,]+" ‘{print $3}‘| sed "s/NumberLong(([0-9]))./\1/g"
UserParameter=MongoDB.supported,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"supported"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.page_faults,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"page_faults"‘| awk -F "[ ,]" ‘{print $2}‘|sed ‘s/^[ \t]*//g‘
UserParameter=MongoDB.insert,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"insert"‘| awk -F "[ ,]" ‘{print $3}‘|head -n 1
UserParameter=MongoDB.query,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"query"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.update,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"update"‘| awk -F "[ ,]" ‘{print $3}‘|head -n 1
UserParameter=MongoDB.delete,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"delete"‘| awk -F "[ ,]" ‘{print $3}‘|head -n 1
UserParameter=MongoDB.getmore,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"getmore"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.command,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"command"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.regular,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"regular"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.warning,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"warning"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.msg,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"msg"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.user,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"user"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.rollovers,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"rollovers"‘| awk -F "[ ,]" ‘{print $3}‘
UserParameter=MongoDB.ok,/bin/echo "db.serverStatus()" |/data/software/zabbix工具/mongodb-linux-x86_64-ubuntu1604-3.6.7/bin/mongo 192.168.1.20:27017/XXXXX -uXXXXX -pkeyXXXXX | grep ‘"ok"‘| awk -F "[ ,]" ‘{print $3}‘**
4、在zabbix web上創建監控項、觸發器、圖形等
創建監控項:
添加監控信息,自定義的key值等信息完成監控項的創建:
添加完所有的監控項後如下圖:
下邊我們添加觸發器:
創建觸發器:
在添加除點進去添加你要監控的觸發條件:
完成觸發器的創建。
到此自定義監控MongoDB,清晰明了的結束了,喜歡的點個關註謝謝。
5、完成對MongoDB的監控並規整文檔,總結和問題發現
文檔整理已經完畢,個人感覺監控一個服務沒必要去找什麽腳本什麽的,要結合自己的生產環境去自定義key監控,同時減輕了zabbix數據庫壓力,節約資源,也讓監控的內容不管自己還是同時能一目了然。
利用ZABBIX全面監控MongoDB數據庫