监控系统Zabbix的简单介绍

 有句话叫“无监控不运维”,我们在生产中,产品上线需要事先做测试,我们怎么才能知道它的性能参数是否符合我们的要求,是否满足正常上线的需求,就要通过监控,监控重要指标是否满足要求,监控是否哪有异常,等等;
    现在很多监控系统,其中用处最广的就数Zabbix!!
nagios:告警系统,默认不提供存储系统,不能实现长期趋势显示;
Cacti:只是展示界面,周期性对SNMP接口采集数据,然后数据放在mysql中,展示出来;(Cron+SNMP+MySql)

Zabbix简介:

    Zabbix 是一个基于WEB界面的提供分布式系统监视 以及网络监视功能的企业级的开源解决方案。 监视各种参数,保证服务器系统 的安全运营;并提供灵活的通知机制以让系统管理员 快速定位/解决存在的各种问题;可以实现跨机房的分布式应用监控;
    系统监视: 包括监视事件和监视性能, 前者检测IIS不正常运行的原因,后者用于建立用户系统性能的基准。

    监控流程大致分:数据采集、数据存储、告警和展示;

数据采集通道:

            1、 SNMP:Simple Network Management Protocol:简单网络管理协议:具有 数据采集功能和一部分监控功能;大部分的网络功能设备都可以,默认内嵌有snmp接口;
           2、 IPMI :硬件平台须有这类接口才能实现;
           3、agent:  默认使用的;
           4、JMX:Java Management eXtensions: JVM內建的 管理扩展接口: 获取 Jvm 内部关键数据指标;

采集到的数据的类型:

                数值:
                    整数
                    浮点数
                字符串:
                    字符串
                    文本
agent端采集数据是通过item监控项实现的;item有两个重要参数:Key和Type
Type:使用哪类接口与其相关的Type才有效;一般用的是是agent interface,主要用主动(Zabbix agentactive))和被动(Zabbix agent)两项;
Key:可以使内建命令,或者远程命令(自定义的);可以带参数;每一个Key在命令行对应一个命令,可以获取到相关数据;

主动监控:由agent端主动向server端发送采集的数据;
被动监控:由server端向agent端要采集数据;

存储的值:

                As is:不对数据做任何处理
                Delta:(simple change),本次采样减去前一次采样的值的结果
                Delta:(change per second),本次采样减去前一次采样的值,再除以经过的时长;

触发器trigger:界定某特定的item采集到的数据的非合理区间或非合理状态:是逻辑表达式;

可取最近十次的平均值;
触发器存在可调用的函数: nodata() last() date() time() now() dayofmonth() ...
eg :last 0 ==last #1 ----- 》使用最后一次采集到的数据
Severity 严重级别
           Not classified 未分级
          Information 一般级别
          Warning   警报
          Average   橙色警报
          High      红色警报
          Disaster 灾难级的警报

触发器表达式:{hostname:key[paramters].function(arguments)}
即:{主机名:key[参数].相关函数(参数)}算术表达式 阈值

如下图所示:收集数据信息方式:
    1、 server端可以通过zabbix_get去agent端要数据;
    2、 由agent端通过zabbix_sender向server发送数据;
    3、由proxy代理接收agent采集的数据,然后再交于server统一存储;
用proxy代理收集数据可以减轻server的负担,本来要与所有的agent通信采集数据,现在只需要与proxy一个通信就可以了;当然也可以将部分agent分给proxy,部分agent分给server直接通信;
在server端上的/etc/zabbix/zabbix_server.conf配置文件中主要定义跟数据库相关信息;日志文件: /var/log/zabbix/zabbix_server.log;
在proxy端,配置文件:/etc/zabbix/zabbix_proxy.conf;日志文件:/var/log/zabbix/zabbix_proxy.log;
在agent端:配置文件: /etc/zabbix/zabbix_agentd.conf;日志文件: /var/log/zabbix/zabbix_agentd.log;
监控系统Zabbix的简单介绍_第1张图片

Zabbix程序组件:

zabbix_server:服务端守护进程;接收agent发送的报告信息,任务:配置、统计数据、操作数据;
Zabbix_database:专用于存储所有配置信息,以及由zabbix收集的数据;
Web Interface:zabbix的GUI接口,通常与server运行在同一台主机上;
zabbix_get:命令行工具,手动测试向agent发起数据采集请求;
zabbix_sender:命令行工具,运行于agent端,手动向server端发送数据;
zabbix_proxy:可选组件,常用于分布监控环境中,代理server收集部分被监控端的监控数据,并统一发给server;
zabbix_agent:agent守护进程;部署在被监控主机上(server上也要配置,被监控),负责收集本地数据并发给server或者proxy;
 

相关术语(又叫逻辑主件):

主机(host):被监控的物理设备实体;可由ip或者DNS名称指定;
主机组(host group):将一类主机组合,(还可以套模板----》即:使组内的主机都一样的模板(监控指标等一系列设定),方便管理);
监控项(item):每一个被监控主机上的可被采集的指标;对于监控对象,每个item都是由“key”标识的;
触发器(trigger):对采集的数据进行不合理空间评估,不满足OK,满足就报警;一个表达式
事件(event):每当触发器执行一次OK---Problem(|Problem---OK)就会产生事件,或者,新的agent或重新上线的agent的自动注册也会引起事件的发生; 四种事件源:trigger(触发), discovery(主机发现), auto registration(自动注册), internal(Zabbix自身发生的内部事件)
动作(action):事件的处理方法,通过包含操作(如发送通知)和条件(何时执行操作);
报警升级(escalation):执行的动作:发送警报或者执行远程命令的自定义方案;
媒介(media):发送通知的手段或通道;eg:Email,SMS(目前我们大陆用不了)
通知(notification):向特定用户发送其关注的事情
采集--》判断阈值范围,满足就OK,不满足就触发事件,事件发生的动作,
远程命令(remote command):预定义的命令,被监控主机处于某特定条件时自动执行;
模板(template):用于快速定义被监控主机的预设条目集合,通常包含:item、trigger、graph、screen、application和low-level discovery rule;模板可以直接链接到单个主机;
应用(application):同一类item的集合;
web场景(web scennario):
前端:zabbix的web接口

工作过程简述:

当zabbixserver定期的接收到agent发送来(sender)的采集数据后(或从agent端要(get)过来数据后),存到mysql,然后进行一些计算(最大值、最小值、平均值等);但在存储之前,要先判断一下是否满足触发器定义的表达式,即是否在合理取值范围内,合理---OK,不合理---Problem,一旦触发器有状态改变,就会触发一个事件发生,事件会伴随着定义的一个动作(eg:执行远程命令,或者报警);过一段时间,若想查看之前的数据变化,就可以打开展示接口查看;
即:
采集---》判断阈值范围---》若是有从OK变problem或者由problem变OK的状态转换----》触发事件的发生---》执行一些动作
监控系统Zabbix的简单介绍_第2张图片

你可能感兴趣的:(监控)