初识zabbix需了解的二三事-阿里云开发者社区

开发者社区> 开发与运维> 正文

初识zabbix需了解的二三事

简介:

简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案;

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题;


监控平台的组成

数据采集 --> 数据存储 --> 数据展示和分析 --> 报警


常见监控实现方案对比

cacti

优点:利用rrdtool绘图,图形美观;

缺点:报警功能薄弱,不适合大规模监控场景;

nagios

优点:报警功能强大;

缺点:只关心正常与否的状态,数据采集展示功能薄弱,不适合大规模监控场景;

zabbix

优点

  • 兼具cacti和nagios的优点,集数据采集、数据存储、数据展示及报警功能为一体;

  • 数据存储使用RDBMS,如MySQL等,可存储大量历史数据;

  • 可以分布式部署,适合大规模监控场景;

缺点:中文资料少,这点是可以克服的嘛;

借用网络上的一张图,对比各监控工具所支持的功能:

wKiom1N08LXAI9hJAAcgYHa3qVc424.jpg


Zabbix基本功能

数据采集方式:zabbix agent,agent(active),SNMP,SSH等;

数据存储方式:RDBMS,如MySQL,Pgsql等;

数据展示方式:php,web,gui;

报警功能:支持报警升级;


zabbix组件及基础架构

wKiom1N08UWzsY_9AAQeVJeEyjU588.jpg

  • Zabbix主要由zabbix server和zabbix agent组成;

  • server端负责从agent端收集监控数据,并存储在数据库中,同时对数据进行分析展示,并触发相关报警;

  • agent端负责监控数据的采集,并发送给server端;

  • 数据采集方式除了在被监控主机上部署agent程序外,还可通过ICMP/IPMI/SNMP等协议对网络设备进行监控,同时配置web监控方式可以监控web页面的下载速率和响应时间等重要参数,很有参考价值哦;

  • Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构,Proxy只负责一定区域内的数据采集工作,然后定期将数据一次性发送给server,极大的减轻了server的负载压力,使得可以支持更大规模的监控需求;


一个完整的zabbix监控组成

wKioL1N08VKzPW6dAANWLsNnJHI264.jpg

主要术语

  • Host主机:要监控的网络设备;

  • Host Group主机组:主机的逻辑容器,可包含主机和模板;通常用于给用户或用户组指派监控权限时使用;

  • Item监控项:一个特定监控指标的相关数据,是数据采集的核心,每个item都由key进行唯一标识;

  • Trigger触发器:用于为监控项item所收集的数据定义阈值,触发器的状态在OK和PROBLEM间不断切换;

  • Event事件:触发器的状态转变,新的agent或重新上线的agent的自动注册等,都会产生event;

  • Action动作:指对于特定event实现定义的处理方法,由通知内容、条件、操作这3部分组成;

  • Escalation报警升级:发送警报或执行远程命令的自定义方案;

  • Media Type媒介:发送通知的手段或通道,如Email,Jabber或SMS等;

  • Notification通知:通过选定的media向用户发送的有关某event的信息;

其它术语

  • Remote Command远程命令:预定义的命令,可在被监控主机处于某特定条件下自动执行;

  • Template模板:用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application等;

  • Application应用:一组item的集合;

  • Web scennaria web场景:用于检测web站点可用性的一个或多个HTTP请求;

  • Frontend前端:Zabbix的web接口;



其它概念

UserParameter用户参数:可在被监控端通过设置UserParameter的方式,获得Zabbix预定义的key无法收集到的监控数据

  • 语法格式:UserParameter=<key>,<command>

  • 如:UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

  • server端的调用的key为:mysql.ping ,可获得被监控主机上mysql程序的存活状况

  • 如:UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}' ,带参数的UserParameter可批量监控多个同类监控项

  • server端的调用的key为memory.usage[MemFree] ,获得被监控主机剩余内存的数值

  • server端的调用的key为memory.usage[MemTotal} ,获得被监控主机总内存的数值

Macros宏:zabbix基于宏保存预设的文本模式,并在调用时将其替换为其中的文本,可理解为全局变量;

  • 宏的名称只能使用大写字母、数字及下划线;

  • 分为zabbix内置宏和用户自定义宏;

  • 内置的宏,有{HOST.NAME},{HOST.IP},{TRIGGER.NAME},{TRIGGER.DESCRIPTION}等;

  • 用户自定义的宏要使用{$MACRO}这种特殊的格式引用,以区别于zabbix内置的宏;










本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1412129,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章