一.监控基础及zabbix介绍
监控基础
监控:其实质可以理解为传感器,用来检测指标。
1)基本的流程就是:数据采集------》数据存储--------》数据展示
2)在采集数据中,我们就会按照时间序列组织数据,采集到数据超过阈值进行报警。
SNMP协议:
NMS称为:网络监控系统。市面上的各类监控系统很多,有的不一定有存储。如同所示,是最基础的,也是通常市面上各类监控系统都支持的SNMP协议监控,利用SNMP协议监控,最为划算,稳定,成熟等等好处。是大多监控系统最常用的协议,因此各大厂商都是内置支持snmp协议。
SNMP称为:简单网络管理协议,在必要时采集数据,管理被监控端,不进行存储,人工判断。
有三种模式:1)被动模式:采集
2)主动模式:报告
3)管理模式:修改
snmp组成:MIB管理信息库:(约定监控端、被监控端采集、报告格式、采集对象、如何传输等等)
管理信息结构:MIB表示的符号
SNMP协议本身(TCP/UDP/IP的一种)
报告格式:从三种模式中,我们知道如下表示:
mns:get,getnext(采集以及采集下一个)、set(设置修改)、trap(捕获)
agent: response
开源监控
我们知道监控流程是:采集、展示、存储、报警,但是SNMP不进行存储,更不要说展示,所以我们想到了开源监控。
cacti监控,可以进行组件的编写,具有强大的即时绘制展示能力,本事对于报警功能弱,当然也可以通过插件的形式进行报警,但是在被监控端,状态的变化由弱到强是有一定过程的,转换不及时等等。
nagios监控:又是另外一个,报警机制强,但是不展示,通过设定值,进行报警升级,可以定义各组件依赖关系。但是支持数百太,太多的话,自己都忙不过来,分布式管理,但是管理麻烦。
zabbix:结合两者优势:
zabbix有专门的agent协议,可以在被监控端进行脚本命令,实现本地命令,自愈被监控端,如果不行,在进行报警;但是范围有限,比如交换机,路由器等。
所以,监控功能的实现:zabbix有:专用的agent、ssh、ping、snmp、ipmi等。对于snmp协议,windows是自带的,linux需要下载net-snmp;
zabbix是php实现的,在zabbix下存储有mysql和pysql。
zabbix是企业级10个监控指标、开源、用户多,平台多的优势。
zabbix架构中的组成
zabbix server:是核心组件,c语言开发,数据分析也是通过它。
zabbix agent:是重要组件,一般监控都是用它,也是c语言开发
zabbix database:支持的库有oracle、mysql等等。
zabbix web GUI:重要组件,设置、展示功能,可以设置监控多少个指标等。
zabbix proxy:(分布式监控环境中的专用组件,有自己的database),定周期,可以将自己采集的数据发送zabbix server端口,php研发的。
zabbix依赖的各种组件以及依赖的各种配置文件
1)从图可以看出,每一个快,都可以进行一个host主机部署,提高性能,zabbix server和zabbix web GUI实质是没有任何关系的。
2)zabbix server可以自身与azbbix进行通信,也可以通过zabbix_get和zabbix_agnetd进行通信
zabbix server一般是进行周期性采集数据进行通信,而zabbix_get则是脚本测试阶段进行的通信
3)一个zabbix server可以监控多个客户端zabbix agentd,所以需要启用多个zabbix server进程;同理,一个zabbix agentd需要监控本地的多个指标相应zabbix server,也需要启用多个进行,这些都是图中相应的配置文件中进行配置的。
4)在zabbix_agentd中,zabbix_sender也可以主动模式汇报zabbix server
zabbix常用的术语
主机(host):要监控的网络设备,可由IP或者DNS名称指定。
主机组(host group):主机的逻辑容器(多个主机),包括主机和模板。模板就是一类指标。
监控项(item):一个特定监控指标的相关的数据,这些数据来自被监控对象;item是zabbix进行数据收集的核心,定义监控就是定义监控项的。
触发器(trigger):一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,有阈值;为problem和ok状态
事件(event):即发生一个关注的事件,比如触发器的状态转变,新的agent或者新上线的agent的注册等等。
动作(action):事件发生了,所触发的动作,就是处理方法,通过包含操作(如发送通知)和条件(何时执行)
报警升级:(escalation):发送报警或执行远程命令的自定义方案。如每隔5分钟方一次报警,共5次。
媒介(media):发送通知的手段或通道。
通知(notification):就是选定媒介向用户发送的有关某事件的信息。
远程命令(remote command):预定义的命令,可在被监控主机处于某特定下自动执行的命令
模板(template):用于快速定义被监控主机的预设条码集合。包含item、trigger、graph、screen、application,zabbix(low-level discovery rule)低级别主动发现功能,在一个网段主动添加各种监控,但是相当消耗资源,可以连接到单个主机上。
应用(application):一组item的集合
web场景(web scennario):用于检测web站点可用性的一个或者多个http请求。
前端(frontend):zabbix的web接口。
zabbix的逻辑结构
这里需要注意:zabbix poller在被检测端,可能启动多个,因为并行发送快。
zabbix服务器端运行的主要进程
最后: zabbix产生的数据主要由4部分组成:配置数据、历史数据、历史趋势数据、事件数据(知道就可以了)