前言
近期的项目中出现了一些线上问题,但问题发现较晚,响应速度较慢;或是在测试过程中遇到一些由于代码错误出现的性能问题,由于没有相对成熟的监控体系,导致面对这些问题非常被动。 Zabbix是一个企业级的、开源的、分布式的监控套件。Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以快速定位/解决存在的各种问题。
主要功能介绍
Zabbix是一个高度集成的网络监控套件,可实现如下功能: 1、数据收集:自定义间隔收集收据 2、灵活的阀值定义:灵活地自定义故障阀值,Zabbix中称为触发器(trigger), 存储在后端数据库中; 3、高级告警配置:可以自定义告警升级(escalation)、接收者及告警方式;通过远程命令实行自动化动作; 4、实时绘图:通过内置的绘图引擎实现监控数据实时绘图; 5、具备应对复杂环境情况:通过Zabbix proxy可以非常容易的创建远程监控; ...
监控类型
1、硬件监控:通过SNMP协议实现对打印机、路由器、交换机的设备的监控; 2、系统监控:如CPU的负载,上下文切换、内存使用率、磁盘读写、磁盘使用率、磁盘inode节点。当然这些都是需要配置触发器; 3、服务监控:进程监控、界面服务、TCP端口连接,响应时间、DNS监控、NTP监控等; 4、Web监控:比如可以使用自带的web监控来监控页面相关的延迟、js响应时间、下载时间等。
Zabbix工作原理及搭建流程
一、Zabbix监控组件 主要包括:Zabbix Server、Zabbix Proxy、Zabbix Agent
每个模块工作职责: 1、Zabbix Server:Zabbix Server为核心组件,用来获取agent存活状况及监控数据。所有的配置、统计、操作数据均通过Server进行存取到database; 2、Database Storage:用户存储所有配置信息,以及存储由Zabbix Server收集到的数据; 3、Web Interface:Zabbix的GUI接口,通常与Server运行在同一台主机上; 注意:如果采用SQLite作为数据库,web接口和Zabbix Server必须运行在同一台主机上 4、Zabbix Proxy:常用于分布监控环境中,代理Server收集部分被监控的监控数据并统一发往Server端;(通常大于500台主机需要使用) 5、Zabbix Agent:部署在被监控主机上,负责收集本地数据发往Server端或Proxy端; 二、具体工作原理:
1、首先要创建一个host,再创建一个item来搜集数据; 2、通过item来创建触发器(trigger); 3、通过触发器(trigger)来创建一个动作(action)。 例如:如果你想监控一个服务器的CPU负载状况,你首先为该服务器创建一个主机条目,其次是创建一个item来监控服务器的CPU状况,并创建相应的触发机制,当CPU负载达到某个阀值,触发操作,该操作包括执行设定的动作和发送邮件报警。 三、Zabbix监控服务搭建流程 1、准备工作 (1)准备两台机器,分别作为Server和Agent (2)下载安装Zabbix拓展源,httpd和php,mysql及相关组件
2、配置服务端 (1)修改字符集及创建Zabbix数据库; (2)创建用户 3、启动Zabbix Server (1)启动httpd (2)连接mysql,配置时区等 (3)启动Zabbix服务(服务端监听接口默认10051) 4、安装配置客户端 (1)客户端安装Zabbix拓展源 (2)安装Zabbix-Agent (3)配置客户端,指定监控服务端ip及主机名 (4)启动客户端Zabbix(客户端监听端口默认为10050)