[Zabbix] zabbix监控mongodb数据库


本文总阅读量

1、创建监控脚本,用于连接mongodb数据库,可根据自身数据库配置修改该脚本

mkdir -p /usr/local/zabbix/script
vim /usr/local/zabbix/script/zabbix_monitor_mongodb.sh

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
#mongodb管理员用户
authuser=admin1
#mongodb管理员密码
authpass=admin123
#Mongodb指定验证数据库
authdb=admin
#mongodb指定端口
dbport=30000
#mongodb安装路径
dbpath=/data/mongodb/bin
${dbpath}/mongo --port ${dbport} -u ${authuser} -p ${authpass} --authenticationDatabase ${authdb}

授权脚本执行权限

1
chmod +x /usr/local/zabbix/script/zabbix_monitor_mongodb.sh

2、修改zabbix监控项脚本,用于获取mongodb参数

vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_mongodb.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#当前连接数,包括当前的shell会话,副本集成员连接,mongos实例连接
#(4.0version)connections.current[*],echo "db.serverStatus().connections.current"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=connections.current[*],echo "db.serverStatus().connections.current"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#当前可用的连接数,数据库上的连接负载的值
#(4.0version)connections.available[*],echo "db.serverStatus().connections.available"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=connections.available[*],echo "db.serverStatus().connections.available"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#服务器所有的连接,包括已经关闭的连接
#(4.0version)connections.totalCreated[*],echo "db.serverStatus().connections.totalCreated"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=connections.totalCreated[*],echo "db.serverStatus().connections.totalCreated"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p|cut -d '(' -f2|cut -d ')' -f1

#因锁而造成排队等待的总数
#(4.0version)UserParameter=globalLock.currentQueue.total[*],echo "db.serverStatus().globalLock.currentQueue.total"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=globalLock.currentQueue.total[*],echo "db.serverStatus().globalLock.currentQueue.total"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p
#因读锁而造成排队等待的数量
#(4.0version)UserParameter=globalLock.currentQueue.readers[*],echo "db.serverStatus().globalLock.currentQueue.readers"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=globalLock.currentQueue.readers[*],echo "db.serverStatus().globalLock.currentQueue.readers"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p
#因写锁而造成排队等待的数量
#(4.0version)UserParameter=globalLock.currentQueue.writers[*],echo "db.serverStatus().globalLock.currentQueue.writers"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p
#3.0version
UserParameter=globalLock.currentQueue.writers[*],echo "db.serverStatus().globalLock.currentQueue.writers"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#当前数据库进程占用内存情况
#(4.0version)mem.resident[*],echo "db.serverStatus().mem.resident"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=mem.resident[*],echo "db.serverStatus().mem.resident"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#当前数据库进程占用虚拟内存的大小
#(4.0version)mem.virtual[*],echo "db.serverStatus().mem.virtual"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=mem.virtual[*],echo "db.serverStatus().mem.virtual"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#流入mongodb数据库的总量
#(4.0version)network.bytesIn[*],echo "db.serverStatus().network.bytesIn"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh| grep NumberLong |cut -d '(' -f2|cut -d ')' -f1
#3.0version
UserParameter=network.bytesIn[*],echo "db.serverStatus().network.bytesIn"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#数据库流出总量
#(4.0version)network.bytesOut[*],echo "db.serverStatus().network.bytesOut"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh| grep NumberLong |cut -d '(' -f2|cut -d ')' -f1|cut -d '"' -f2|cut -d '"' -f1
#3.0version
UserParameter=network.bytesOut[*],echo "db.serverStatus().network.bytesOut"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#数据库总请求数
#(4.0version)network.numRequests[*],echo "db.serverStatus().network.numRequests"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh| grep NumberLong |cut -d '(' -f2|cut -d ')' -f1
#3.0version
UserParameter=network.numRequests[*],echo "db.serverStatus().network.numRequests"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#当前副本集状态,为1代表为主节点,为2代表为从节点
#(4.0version)rs.status.myState[*],echo "rs.status().myState"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=rs.status.myState[*],echo "rs.status().myState"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

#页错误总数,当数据库性能不佳、内存限制、或者数据库较大会导致该值增加
#(4.0version)extra_info.page_faults[*],echo "db.serverStatus().extra_info.page_faults"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 4p
#3.0version
UserParameter=extra_info.page_faults[*],echo "db.serverStatus().extra_info.page_faults"|sh /usr/local/zabbix/script/zabbix_monitor_mongodb.sh|sed -n 3p

3、修改zabbix-agent配置文件,添加zabbix_agentd.conf.d目录,用于加载该目录下文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf

1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

4、重新启动agent客户端

1
/etc/init.d/zabbix_agentd restart

5、通过zabbix-web端,添加配置模板,参考模板,点击下载

目录
  1. 1. 1、创建监控脚本,用于连接mongodb数据库,可根据自身数据库配置修改该脚本
  2. 2. 2、修改zabbix监控项脚本,用于获取mongodb参数
  3. 3. 3、修改zabbix-agent配置文件,添加zabbix_agentd.conf.d目录,用于加载该目录下文件
  4. 4. 4、重新启动agent客户端
  5. 5. 5、通过zabbix-web端,添加配置模板,参考模板,点击下载

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog