自动化监控系统zabbix(一)

自动化监控Zabbix

  • 一、什么是it监控系统
    • 1.单一的程序监控系统
    • 2.分布式监控系统
    • 3. 监控系统有什么作用
    • 4.监控系统的功能
    • 5.zabbix特点
  • 二、功能介绍
    • 1.zabbix 数据收集
    • 2.zabbix数据展示
    • 3.zabbix故障检测
    • 4.zabbix告警发送
    • 5.zabbix安全和认证
    • 6.zabbix自动化
        • Zabbix提供2个自动化手段来帮助技术人员高效管理设备监控
    • 7.zabbix API
    • 8.zabbix4.0特性
    • 9.zabbix 架构
    • 10.zabbix server 组成
    • 11.zabbix 监控功能(下文与上图结合在一起查看)

一、什么是it监控系统

监控系统资源以及性能的硬件或软件
Zabbix是由前端、服务器、代理端、客户端、Java监控网关几个组件组成
前端主要是由php写的
服务端、代理端、客户端是由C语言写的
Java监控端是由java写的
Zabbix是一个跨平台的软件,可以在windows、linux、unix等操作系统上部署,他是基于GPL开源软件协议的

1.单一的程序监控系统

Windows系统的任务管理程序
Linux中的top、vmstat、iostat等

2.分布式监控系统

Zabbix、open-falcon

3. 监控系统有什么作用

通过这些监控系统可以了解系统的繁忙程度、是否有异常的进程占用资源
监控硬件中比较常见的是通过传感器获取设备的监控信息
监控系统是为了给用户提供稳定、高效、安全的服务

4.监控系统的功能

收集数据、数据展示、告警策略、告警发送、事件管理、报表管理、认证权限
智能监控发展方向、KPI聚类、瓶颈分析、KPI异常检测定位、故障预测、容量预估

5.zabbix特点

监控任何的设备、系统、应用、服务和资源,无论是监控网络、云、服务器还是应用,服务都可以搞定。可以无限扩展,分布式部署,高可用,并且也注重安全

二、功能介绍

1.zabbix 数据收集

Agent多平台部署
支持SNMP和IPMI
支持无agent监控
自定义监控
支持监控计算和聚合
Web事务监控

(1)Zabbix可以通过agent客户端来收集数据,客户端是支持多平台的
比如windows、linux、unix、openBSD、AIX、solaris、Mac等操作系统都可以安装。

(2)Zabbix客户端占用系统资源很少,可以获取CPU,内存,网卡,磁盘,日志等信息,可以满足绝大多数的服务器设备的监控需求。

(3)Zabbix支持通过SNMP(简单网络管理协议)获取监控数据,通过SNMP不仅可以监控网络设备,也可以监控打印机、储存、UPS,基本上只要联网的设备都可以通过SNMP监控。

(4)Zabbix也支持通过IPMI获取硬件的温度,风扇,硬盘,电源等,(IPMI是智能平台管理接口是一个开放的硬件管理接口标准),通过IPMI不仅可以获取监控数据、也可以管理硬件设备,重启,关机,获取硬件日志等等。

(5)Zabbix自带检测有TCP,ICMP、SSH、Telnet检测方式

(6)Zabbix支持而自定义监控,通过shell、python、ruby、Perl、powershell任何可执行的脚本收集监控数据(如果对监控开关性能要求很高,那可以通过加载监控模块来实现监控,这种方式只支持unix、linux系统)

(7)默认zabbix提供URL监控,可以使用该功能监控线上的业务是否正常,异常响应或者没有匹配的关键字及时告警

2.zabbix数据展示

图标及监控大屏
网络拓扑图
幻灯片图标
图片展示插件

3.zabbix故障检测

故障预警
故障规则和恢复规则独立
多个告警规则组合
与历史数据对比分析告警
支持数据波动规则
告警依赖关系

Zabbix支持8种运算符,29个函数可以任意组合使用,完全可以满足我们的告警阈值设置需求。一般监控系统都是监控数据达到设定的阈值才会触发告警操作,zabbix同样支持该设置,但zabbix更注重故障预警,就是故障发生前通知相关负责人或者进行相关操作,这样就可以有效避免故障发生,zabbix主要通过趋势分析来判断数据未来的走势,若趋势异常则触发告警操作,zabbix还支持和历史数据进行对比分析,比如和上周的现在进行数据对比分析,如果有异常则触发告警操作。线上的监控数据不一定是稳定的,很多时候是由波动的,面对这种情况一般是去一段时间的平均值作为告警的阈值,或者一段时间内触发了阈值的次数,虽然上面的办法都可以降低告警的数量,提高有效性,但是它是以告警的及时性来换取。

4.zabbix告警发送

发送告警信息
自动修复故障
告警升级
自定义告警信息
告警关联

(1)zabbix当设置了告警策略,当触发告警时,zabbix支持多种告警操作。

	比如:发送消息通知负责人、邮件、短信、电话、微信、钉钉等消息通知这只是最基本的功能,zabbix还可以在告警触发时执行命令或者脚本,这样可快速恢复业务,然后再查询问题的原因。
	
	比如:监控到nginx服务宕机,那么最先要做的不是查看他为什宕,而是要快速启动它,让他继续提供服务。Zabbix还可以实现告警升级,这个也可以应用在刚刚的场景中,开始已经发送消息通知负责人,并执行了重启的命令,5分钟后发现业务依然没恢复,这时候就可以进行告警升级,比如通知领导,发送电话语音告警给负责人等,这样时间就升级了,让相关的人都关注到并且及时处理。

@@@很多人都遇到过告警风暴,短时间内几百上千告警信息一起涌来,技术人员想要从这么多信息中找出关键信息需要花费一定的时间,后来就有了告警聚合和关联。
Zabbix提供了告警分析功能,可以有效降低告警风暴,同时让技术人员只关注时间的根本原因。

如果将服务的监控和服务器宕机做个关联,那么当机器宕机时,只有宕机的信息会发送,其他服务的告警信息只会显示在前端页面,当然zabbix的告警功能还有其他的功能。

5.zabbix安全和认证

加密通信
统一认证
权限管理

(1)Zabbix支持多种认证方式,可以是本地用户,HTTP基础认证,LDAP认证
一般企业内部都是通过LADP和域控结合,统一管理用户和密码。

(2)不同用户登录可以设置不同的权限,可以插件那些机器,对哪些机器有读写权限,那些机器有读权限等。

(3)对安全性要求的话,zabbix任意两个组件之间可以通过TLS加密传输数据,这种设置一般是多地域,多机房的情况会用到,避免数据在传输过程中被窃听或者篡改
在这里解释一下SSL和TSL。

(4)TSL全称是Transport Layer Security 传输层安全性协议
而SSL是TSL的前身,SSL 3.0当时被发现可以被攻击,不够安全,所以在SSL3.0的基础上建立了TSL1.0。

6.zabbix自动化

网络自动发现
低级别自动发现(LLD)
Agent自动注册

Zabbix提供2个自动化手段来帮助技术人员高效管理设备监控

(1)第一个是网络扫描,通过扫描发现网段中满足条件的设备,比如安装了Agent,打开了SNMP,开启了特定服务等,满足条件的设备可以设置操作自动加入监控,应用对应的监控模板,或者是执行某个处理脚本。

(2)第二个是Agent自动注册,只要安装了agent的设备并且配置为主动上报模式,zabbix服务端会根据客户端传过来的信息来执行监控相关操作。
以上的两个功能都可以大幅度的降低认为的操作,提高监控的自动化和完整性。

补充:当监控网卡时,每个网卡的信息都是不一样的,这就用到了zabbix的LLD低级自动发现的功能,该功能可以自动发现并创建监控项,告警策略,图标,例如文件系统,网卡都是通过该功能被zabbix服务端发现并添加至监控了。

7.zabbix API

自动化配置管理与第三方系统结合
通过zabbix API 可以获取监控数据,自动化配置管理,与第三方系统联动,开发自己的监控app等。
zabbix API 支持多种语言的调用,shell、python、go等

8.zabbix4.0特性

性能提升10%-20%
分布式网络带宽降低80%
历史数据支持ES Hadoop kafka等进行联动
告警处理流程提升,
支持HTTP Agent
Tag多个功能支持
支持单点登录

客户端新增http类型监控,可以获取resstful接口的监控数据

9.zabbix 架构

监控系统的组成模块包括数据收集、汇报、储存、展示、告警的分析和发送。
自动化监控系统zabbix(一)_第1张图片

Zabbix Agent:zabbix客户端,负责数据收集上传

Zabbix server:zabbix的服务端,负责数据汇总、处理、告警策略、告警发送等等。

Zabbix web:zabbix前端页面,提供了有好的展示和操作界面,负责数据的展示,监控系统的配置管理,用户权限配置管理等功能

Database:数据和配置存储数据库、zabbix支持多种数据库、包括mysql、oracle、DB2等

Java gateway:java网关,负责通过JMX监控收集java应用性能数据

Zabbix proxy:zabbix代理,分布式部署和架构会用到,主要是收集设备的监控数据并将数据发送给对应的zabbix server

总的一套下来就是这么一个流程:
数据通过zabbix客户端收集并发送给zabbix服务端,zabbix服务端负责存储,分析数据,触发告警等功能用户或者管理员可以通过zabbix前端页面进行数据展示和配置管理,如果设备规模较多、分布在多地域、多机房都可以通过zabbix proxy实现分布式架构部署。

10.zabbix server 组成

自动化监控系统zabbix(一)_第2张图片

11.zabbix 监控功能(下文与上图结合在一起查看)

Poller进程是主要负责server主动拉取类型的监控数据
Trapper进程主要负责Agent主动上报的监控数据
HTTP Poller进程主要负责URL监控类型的数据收集
Icmp pinger是负责ping存活监控数据收集
java gateway进程负责和java gateway通信处理数据
java poller进程负责拉取JMX类型数据获取
ipmi poller进程负责IPMI类型数据获取
timer进程负责处理和时间有关的数据以及告警维护等等
vmware collector进行负责收集vmware虚拟化环境监控数据
unreachable poller负责处理无法到达类的监控处理

数据通过上面这些进程从客户端收集过来。
Preprocessing进程会对监控数据进行预处理然后服务端的history syncer进程负责将数据分析并保存到数据库中,housekeeper进程负责定期清理历史数据,数据收集并经过zabbix server处理,那告警是怎么处理的呢,告警是通过alerter进程处理发送的,而alerter manager 是负责管理alerter进程的,escalator进程是负责处理告警过程中的各个步骤的。比如有告警升级之类的。分布式通信是由proxy poller进程负责的,discovery process是负责设备自动发现功能的。Zabbix server进程数较多



你可能感兴趣的:(监控系统,zabbix,监控系统,zabbix)