文档章节

zabbix自动发现监控mongo数据库

鸿弟
 鸿弟
发布于 2016/11/04 22:23
字数 662
阅读 2186
收藏 72
点赞 5
评论 1

监控mongo写个模板其实挺快的,如果公司每个mongo使用的端口都一致的话,就可直接建立一套模板,然后这个模板链接到各个服务器上即可。但如果公司使用mongo的端口如果不一致的话,那建议使用zabbix的自动发现的功能,自动发现mongo监听的端口,并对它进行相关数据的收集。

 

先看一下效果图,

此监控图是zabbix的筛选功能可能把相关的图整合到一个页面里面去。

 

具体的自动发现实现如下:

探索规则配置如上,机器上的zabbix agent配置如下:

UserParameter=mongo.discover,python /usr/local/zabbix/discover_mongo.py

 

其中/usr/local/zabbix/discover_mongo.py为自动发现的脚本,脚本内容如下:

#coding:utf-8
import simplejson as json
import commands

(status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'mongod'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u|grep -v "^28"''')
outputs = output.split('\n')
ports = []
for port in  outputs:
    ports += [{'{#MONGOPORT}': port}]

print json.dumps({'data':ports},sort_keys=True,indent=4)

使用系统命令netstat把监听的端口筛选出来,然后以json的格式进行输出。定义到此就可以自动发现zabbix监听的端口。

注意:netstat一般zabbix用户没有权限,需要visudo进行对应的设置,此脚本可能得针对自己的环境进行相对的调整。visudo添加配置如下:

zabbix ALL= NOPASSWD: /bin/netstat
Defaults:zabbix   !requiretty

 

探索完端口后,zabbix server就需要以端口为其中一个参数向zabbix agent取数据,其中项目原型配置如下:

如果返回的{#MONGOPORT}有多个的话,那监控项目就乘以几。

 

其中mongo.status的定义如下(此定义还是zabbix agent下):

UserParameter=mongo.status[*],sh /usr/local/zabbix/check_mongo.sh -p $1 -k $2 -K $3

使用一个脚本传入参数来获取mongo的一些数据收集,后续可直接扩展此脚本(-p代表端口),mongo的serverStatus有多个参数,采集的就用到opcounters等,-k和-K能具体获取其数值。其中脚本如下:

#!/bin/sh
while getopts "p:k:K:" opt
do
        case $opt in
                p ) mongo_port=$OPTARG;;
                k ) key1=$OPTARG;;
                K ) key2=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done

if [ ! "${mongo_port}" ] || [ ! "${key1}" ] || [ ! "${key2}" ];then
        echo "parameter is null"        
        exit 1
fi

echo "db.serverStatus().${key1}"|mongo --port=${mongo_port}|sed 's/,/\r\n/g'|grep "${key2}" |awk -F':|,|}' '{print $2}'

 

部署完一个模板,把模板关联到mongo的机器,就能收集相关的操作信息。在模板上再添加一个图形原型,如下:

模板应用完如果没问题就可以在zabbix的筛选中把mongo集群的数据汇在一个网页上进行查看。

 

模板见:https://git.oschina.net/zhuangweihong/ops

© 著作权归作者所有

共有 人打赏支持
鸿弟
粉丝 65
博文 51
码字总数 33082
作品 0
杭州
运维
加载中

评论(1)

游龙惜凤
游龙惜凤
我就随便看看
zabbix自动发现监控redis数据库

zabbix自动发现监控redis数据库与自动发现mongo,mysql的思路差不多。这次汇总完就把模板,脚本上传到git上。如果公司使用的redis都是6379端口的话,那么还是建议创建一套模板,然后链接到各...

鸿弟 ⋅ 2016/11/12 ⋅ 0

zabbix自动发现监控mysql数据库

跟zabbix自动发现监控mongo数据库的思路差不多,如果公司的mysql都是使用3306端口或者同一端口的话,可直接创建模板,链接到各个服务器即可。如果公司的mysql的比较多或者端口不一致,还是得...

鸿弟 ⋅ 2016/11/10 ⋅ 3

Zabbix 3.0 从入门到精通(zabbix使用详解)

第1章 zabbix监控 1.1 为什么要监控   在需要的时刻,提前提醒我们服务器出问题了    当出问题之后,可以找到问题的根源    网站/服务器 的可用性 1.1.1 网站可用性   在软件系统的高...

侯召顺 ⋅ 2017/11/23 ⋅ 0

zabbix监控Mongodb

监控原理 在MongoDB服务器上可以通过shell命令echo "db.serverStatus()" | mongo admin来查看MongoDB的状态 1.版本介绍 centos6.5 Mongodb3.07 2.操作步骤 客户端配置 (1) zabbix客户端配置文...

sxguop ⋅ 2015/12/03 ⋅ 0

京东MySQL监控之Zabbix优化、自动化

随着京东业务的飞速发展, MySQL数据库的使用更加普及、服务器量级飞速增长,这对京东MySQL DBA团队的要求也越来越高。监控系统为数据库管理和维护提供了精确的数据依据,是数据库运维人员的...

lover007 ⋅ 2016/08/02 ⋅ 0

CentOS7安装Zabbix3.0版本应用

一、Zabbix介绍 zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费...

秦时明月路 ⋅ 2016/09/30 ⋅ 0

实现zabbix对tomcat的监控

what-zabbix 优点: 1>开源,无软件成本投入 2>Server 对设备性能要求低 3>支持设备多,自带多种监控模板 4>支持分布式集中管理,有自动发现功能,可以实现自动化监控 5>开放式接口,扩展性强,插件...

知微不知更 ⋅ 2017/04/10 ⋅ 0

Zabbix 3.2.6 通过Discovery批量监控Oracle表空间

一、背景 接到任务,要求对所有数据库的所有表空间进行监控,愿意是遇到表空间不足导致业务数据库的不可用,我们知道通过Zabbix监控Oracle的插件有一些,比如Orabbix或者Pyora,前者通过Jav...

wzlinux ⋅ 2017/10/20 ⋅ 0

Zabbix监控部署

Zabbix监控实验报告 实验要求:模拟四台服务器,搭建Zabbix服务监控平台,能自动发现另外三台客户端,并且能自动监控 实验目的:熟练掌握Zabbix监控服务的搭建及配置,实现对服务器的自动监控...

蜡笔xiao馨 ⋅ 2017/11/09 ⋅ 0

zabbix源码安装流程及报错解决方法

zabbix源码安装流程及报错解决方法 一. zabbix的介绍 1) zabbix是什么 zabbix是一款基于web页面的、开源的、企业级的,支持分布式部署的监控软件。 2)2.zabbix的作用 监控windows和Linux主机...

JAYZ_HAO ⋅ 2017/08/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 24分钟前 ⋅ 1

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部