zabbix监控Ceph分布式存储的方法
5397利用的zabbix监控ceph分布式存储的方法详解
View detailsSearch the whole station
随着易观业务发展,公司产品、业务系统逐渐增多。服务器从最早10+到现在150+台,依靠过去人工巡检系统的方式发现故障、潜在风险及安全隐患的方式效率越来越低,且运维人员的工作强度也在不断增加。为了提高发现系统故障的及时性、解决问题的时效性、同时也能把运维人员从重复的工作中解放出来去做更多有意义的事情,因此我们急需引入新的服务器监控手段、运维工具来解决当前的问题。
最早由于服务器较少业务相对较为简单使用iostat、free、netstat、top、pmap等命令就可以查看状态。随着服务器多于20台,此方法耗时耗力最终PASS。
中期使用CACTI对服务器、路由器、交换机进行监控。由于使用标准SNMP协议、对设备的改动很小,配置文件也相对很简单可以大规模的快速部署。并且至今认为CACTI的图形是非常不错的,对常规的监控显示非常的人性化。
CACTI只能使用标准的SNMP协议,在业务复杂需要对监控做一些定制化的需求下(如定制进程、安全监控),逐渐显得力不从心。并且在24小时监控大屏下WEB界面容易退出。
由于易观大数据业务的飞速增长与产品的快速迭代,目前业务比较复杂。需要监控系统对HADOOP、SPARK、KAFKA、GREENPLUM、ETL等大数据系统进行定制化监控,对比了主流开源监控系统:如Ganglia、zabbix、Countly进行对比,最终选择zabbix作为易观运维监控平台。
zabbix优点如下:
1、 可以使用Agent,定制型强于CACTI。
2、 配置简单,支持自动发现、脚本批量部署。
3、支持微信公众号API,及时报警。
4、文档完善,活跃的官方社区,更新也比较频繁。
安装并与微信整合
关于安装就不在详细描述了,网上有一大推。大家可以体验一下最新的版本,就是6.0版本的设计增加了一些新功能,主体功能都很完备。
微信的整合步骤如下:
1、到qy.weixin.qq.com申请一个公众号
2、在组织架构中开通部门和增加员工,并且记住部门的ID号。
3、发送邀请码发给相关人员。
4、创建一个应用。
5、分配权限,新建管理组。
6、记录管理组对应的CorpID和Secret,API授权需要用到。
7、使用Python的发送脚本安装simplejson 3.8.2tar zxvf simplejson-3.8.2.tar.gzcd simplejson-3.8.2python setup.py buildpython setup.py install下载安装脚本git clone https://github.com/X-Mars/zabbix-Alert-WeChat.gitcp zabbix-Alert-WeChat/wechat.py /etc/zabbix/alertscriptschmod +x /etc/zabbix/alertscripts/wechat.py修改后为(微信公众号的ID)#!/usr/bin/python#_*_coding:utf-8 _*_import urllib,urllib2import jsonimport sysimport simplejsondef gettoken(corpid,corpsecret): print gettoken_url try: token_file = urllib2.urlopen(gettoken_url) except urllib2.HTTPError as e: print e.code print e.read().decode(“utf8”) sys.exit() token_data = token_file.read().decode(‘utf-8’) token_json = json.loads(token_data) token_json.keys() token = token_json[‘access_token’] return tokendef senddata(access_token,user,subject,content): send_url = ‘https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=’ + access_token send_values = { “touser”:手机号, “toparty”:”2″, “msgtype”:”text”, “agentid”:”1″, “text”:{ “content”:subject + ‘\n’ + content }, “safe”:”0″ }# send_data = json.dumps(send_values, ensure_ascii=False) send_data = simplejson.dumps(send_values, ensure_ascii=False).encode(‘utf-8’) send_request = urllib2.Request(send_url, send_data) response = json.loads(urllib2.urlopen(send_request).read()) print str(response)if __name__ == ‘__main__’: user = str(sys.argv[1]) subject = str(sys.argv[2]) content = str(sys.argv[3]) corpid = ‘XXXXXXXXXXX’ corpsecret = ‘XXXXXXXXXXXXXX’ accesstoken = gettoken(corpid,corpsecret)senddata(accesstoken,user,subject,content)
8、zabbix设置微信
添加示警媒介
管理–>示警媒介
名称填写微信报警,类型选择脚本,脚本名称填写wechat.py
图示如下:
附:
微信企业开发者中心接口文档http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5
微信企业号开发者调试工具http://qydev.weixin.qq.com/debug
为了保障各个系统平台的稳定运行、快速定位故障、一段时间内的历史运行图表等,建设监控平台的最终目标如下:
1、对服务器进行状态监控,指标如:CPU、ROM、HDD、NET等。
2、对故障及时报警,如邮件、微信。
3、对一段时间内提供运行统计报表,以便为以后故障排查、集群升级等提供数据依据。
4、提供WEB界面。
5、监控功能完备,如:数据库、web服务、进程等。
更多zabbix相关技术分享,可以关注乐维社区:http://forum.lwops.cn/
Zabbix官方未发布针对以上两项漏洞的补丁,但可以通过版本升级的方式修复漏洞。以下将介绍详细修复方案,包括编译升级与免编译替换升级方式。
View detailsZabbix在观看次数和与其他产品对比上都获得了最多的关注被IT Central Station评为最佳网络监控软件
View details