运用Zabbix实现内网服务器状态及局域网状况监控(1) —— Zabbix介绍

时间:2022-04-03 20:02:34

一、Zabbix简介

Zabbix 是一个企业级的、开源的、分布式的监控套件

Zabbix 可以监控网络和服务的监控状况.

Zabbix 利用灵活的告警机制,允许用户对事件发送基于 Email 的告警.这样可以保证快速的对问题作出响应.

Zabbix 可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划.

Zabbix 支持 polling 和 trapping 两种方式. 所有的 Zabbix 报告都可以通过配置参数在 WEB 前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix 可以通过尽可能的配置来扮演监控你的IT 基础框架的角色,而不管你是来自于小型组织还是大规模的公司.

Zabbix 编写和发布基于 GPL V2 协议. 源代码是免费发布的。

二、Zabbix特性

Zabbix 是一个高度集成的网络监控套件,通过一个软件包即可提供如下特性:

1. 数据收集
 a) 可用性及性能检测
 b) 支持 SNMP(trapping 及 polling)、 IPMI、 JMX 监控
 c) 自定义检测
 d) 自定义间隔收集收据
 e) server/proxy/agents 吸能
2. 灵活的阀值定义
 a) 允许灵活地自定义问题阀值, Zabbix 中称为触发器(trigger), 存储在后端数据库中
3. 高级告警配置
 a) 可以自定义告警升级(escalation)、接收者及告警方式
 b) 告警信息可以配置并允许使用宏(macro)变量
 c) 通过远程命令实行自动化动作(action)
4. 实时绘图
 a) 通过内置的绘图方法实现监控数据实时绘图
5. 扩展的图形化显示
 b) 允许自定义创建多监控项视图
 c) 网络拓扑(network maps)
 d) 自定义的面板(screen)和 slide shows,并允许在 dashboard 页面显示
 e) 报告
 f) 高等级(商业)监控资源
6. 历史数据存储
 a) 数据存储在数据库中
 b) 历史数据可配置
 c) 内置数据清理机制
7. 配置简单
 a) 主机通过添加监控设备方式添加
 b) 一次配置,终生监控(译者注:除非调整或删除)
 c) 监控设备允许使用模板
8. 模板使用
 a) 模板中可以添加组监控
 b) 模板允许继承
9. 网络自动发现
 a) 自动发现网络设备
 b) agent 自动注册
 c) 自动发现文件系统、网卡设备、 SNMP OID 等
10. 快速的 web 接口
 a) web 前端采用 php 编写
 b) 访问无障碍
 c) 你想怎么做就能做么做
 d) 审计日志
11. Zabbix API
 a) Zabbix API 提供程序级别的访问接口,第三方程序可以很快接入
12. 权限系统
 b) 安全的权限认证
 c) 用户可以限制允许维护的列表
13. 全特性、 agent 易扩展
 a) 在监控目标上部署
 b) 支持 Linux 及 Windows
14. 二进制守护进程
  a) C 开发,高性能,低内存消耗
  b) 易移植
15. 具备应对复杂环境情况
 a) 通过 Zabbix proxy 可以非常容易的创建远程监控

三、Zabbix进程构成

默认情况下Zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server以及额外的zabbix_java_gateway.

zabbix_agentd

客户端守护进程,收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

zabbix_get

单独使用的命令,通常在server或者proxy端执行,用户获取被监控端数据,通常用于排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender

用于发送数据给server或者proxy,通常用于耗时比较长的check,并且与trapper配合使用。生存环境中,个别非常耗时间check经常导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix_server

zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server。

备注:当然不是数据都是主动提交给 zabbix_server,大多数情况下都是 server 主动去取数据。

zabbix_proxy

zabbix代理守护进程。功能类似server,唯一不同的是它只有一个中转站,它需要把收集到的数据提交/被提交到server里。一般跨机房、地区的环境需要用到proxy。

zabbix_java_gateway

zabbix2.0 之后引入的一个功能。顾名思义: Java 网关,类似 agentd,但是只用于 Java 方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到 server 或者 proxy。