zabbix3.2监控mongodb
模板地址:https://share.zabbix.com/databases/mongodb/mongodb-for-zabbix-3-2 .安装jq依赖
# yum install jq -y .添加监控用户
# 使用admin登录mongo
[root@eus_pe_web02:/usr/local/zabbix_agents_3.2.0/scripts]# mongo
MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.
> use admin
> db.auth('admin','admin') # 在admin高权限用户下授权monitor用户,改用户专门用来给zabbix提供监控数据
>db.createUser(
{
user: "zabbix",
pwd: "zabbix",
roles: [
{ role: "clusterMonitor", db: "admin" }
]
}
) .修改脚本
[root@eus_pe_web02:/usr/local/zabbix_agents_3.2.0/scripts]# cat /usr/local/zabbix_agents_3.2.0/scripts/mongodb.sh
#!/bin/bash
##################################################
# Description: zabbix mongodb monitor
# Note: Zabbix 3.2
# Date: Fri Apr
# Verion: 1.0
# Requirments: mongo, jq, sudo access to mongo_conf.sh
#
# Based on Noe <netkiller@msn.com> script
#
# Change log:
# Mon Apr ,
# - Added checks for mongo and jq
# - User --eval to fectch data
# - fixed json output to comform
# - Use jq to parse json https://stedolan.github.io/jq/
# - upated index to handle space or comma betwee values
#
##################################################
source /etc/profile
DB_HOST=127.0.0.1
DB_PORT=
DB_USERNAME=zabbix
DB_PASSWORD=zabbix
MONGO=`which mongo`
JQ=`which jq`
EXIT_ERROR=
EXIT_OK= if [ ! -x "$MONGO" ] ; then
echo "mongo not found"
exit $EXIT_ERROR
elif [ ! -x "$JQ" ] ; then
echo "jq not found"
exit $EXIT_ERROR
elif [ $# -eq ] ; 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(\(.*\))/\/
s/ObjectId(\(.*\))/\/
s/Timestamp(.*)/"&"/
s/\(BinData(.*\)"\(.*\)")/"\1\2)"/
s/"\([0-9]*\)"/\/' ) mongo_status=${PIPESTATUS[]}
if [ $mongo_status -ne $EXIT_OK ] ; then
echo "mongo exec error"
exit $EXIT_ERROR
fi
value=$(echo $output | jq $index)
jq_status=$?
echo $value .添加配置文件
# vim /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd/userparameter_mongodb.conf
# Return MongoDB statistics
UserParameter=mongodb.status[*],/usr/local/zabbix_agents_3.2.0/scripts/mongodb.sh $ $ $ $ $ .导入模板 测试 [root@aliyun-american-guigu-zabbix:~]# zabbix_get -s 1.1.1.1 -k 'mongodb.status[opcounters,query]' [root@aliyun-american-guigu-zabbix:~]# zabbix_get -s 1.1.1.1 -k 'mongodb.status[mem,virtual]'
zabbix3.2监控mongodb的更多相关文章
- zabbix3.2 监控MongoDB
本文参考连接: https://www.jianshu.com/p/a6b36d5b74ba 一.实验环境: MongoDB/zabbix-agent:172.16.88.44 zabbix-serv ...
- 分布式监控系统Zabbix3.4-针对MongoDB性能监控操作笔记
公司在IDC机房的一台服务器上部署了MongoDB,由于所存储的业务数据比较重要,所以对MongoDB的监控显得尤为重要!Zabbix监控MongoDB性能的原理:通过echo "db.se ...
- 使用MMS(MongoDB Monitoring Service)监控MongoDB
使用MMS(MongoDB Monitoring Service)监控MongoDB 一.MongoDB简介: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可 ...
- zabbix3.4 监控mysql 数据库连接数
zabbix3.4 监控mysql 数据库连接数具体监控配置待定,近期即将发布!
- 用monit监控mongodb,崩溃后自动重启mongdb
什么是monit Monit是一个跨平台的用来监控Unix/linux系统(比如Linux.BSD.OSX.Solaris)的工具.Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不 ...
- Zabbix应用八:Zabbix监控MongoDB
利用Zabbix监控MongoDB 一.首先介绍mongodb采集到的数据含义: 1.状态采集命令: >db.serverStatus(); 2.输出内容: { "host" ...
- nagios监控mongodb
nagios本身不提供监控mongodb的服务,需要安装插件 已经有大神写好的插件nagios_plugin-mongodb 地址https://github.com/mzupan/nagios-pl ...
- MongoDB 监控 --- MongoDB基础用法(八)
MongoDB 监控 在你已经安装部署并允许MongoDB服务后,你必须要了解MongoDB的运行情况,并查看MongoDB的性能.这样在大流量得情况下可以很好的应对并保证MongoDB正常运作. M ...
- ZABBIX 3.0 监控MongoDB性能【OK】
系统环境: centos7.2 zabbix-3.4 一.原理 通过以下命令查看mongodb的状态: echo "db.serverStatus()" | mongo ad ...
随机推荐
- JAVA工程师-蚂蚁金服电话面试
今天5点半接到一个杭州的电话,是蚂蚁金服打来的,当时心里一阵发慌,由于还在上班,就和面试官约定6点下班之后再来.挂完电话,心里忐忑的不行,感觉自己这也没准备好,那也没准备好.剩下半个小时完全没有心思再 ...
- Spring 使用AOP——基于注解配置
首先,使用注解实现AOP是基于AspectJ方式的. 创建包含切点方法的类 package cn.ganlixin.test; import org.aspectj.lang.annotation.P ...
- Shell命令-文件及目录操作之file、md5sum
文件及目录操作 - file.md5sum 1. file:显示文件的类型 file命令的功能说明 用于辨识文件类型.通过 file 指令,我们得以辨识该文件的类型. file命令的语法格式 file ...
- Spring MVC 使用介绍(四)—— 拦截器
一.概述 1.接口定义 拦截器由HandlerInterceptor接口定义: public interface HandlerInterceptor { // 预处理方法 boolean preHa ...
- ERROR 1045 (28000): Access denied for user 'xxx'@'localhost' (using password: YES)【奇葩的bug】
# Bug描述 今天周末,在家里学点新技术,虽然公司分配的任务没有完成(滑稽滑稽) 我先创建了一个mysql数据库,用root用户创建一个新用户,毕竟项目中使用root是非常危险的,尤其是我这样的实 ...
- c#操作IIS之IISHelper
//----------------------------------------------------------------------- // <copyright file=&quo ...
- (最短路 Floyd) P2910 [USACO08OPEN]寻宝之路Clear And Present Danger 洛谷
题意翻译 题目描述 农夫约翰正驾驶一条小艇在牛勒比海上航行. 海上有N(1≤N≤100)个岛屿,用1到N编号.约翰从1号小岛出发,最后到达N号小岛. 一张藏宝图上说,如果他的路程上经过的小岛依次出现了 ...
- function Language
什么是函数式语言: 函数式语言(functional language)一类程序设计语言.是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型.这种语言具有较强的组织数据 ...
- centos7项目部署
1. 安装nginx 添加CentOS 7 Nginx yum资源库 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/ng ...
- ArrayList的实现及原理
ArrayList ArrayList是最常见以及每个Java开发者最熟悉的集合类了,顾名思义,ArrayList就是一个以数组形式实现的集合,以一张表格来看一下ArrayList里面有哪些基本的元素 ...