一.zabbix监控

1.为什么要监控

当我们需要实时关注与其相关的各项指标是否正常,往往存在着很多的服务器、网络设备等硬件资源,如果我们想要能够更加方便的、集中的监控他们,zabix可以实现集中监控管理的应用程序

监控的初衷就是当某些指标不符合我们的需求时,我们能够在第一时间发现异常。

监控可以给我带来:

在需要的时刻,提起提醒我们服务器出问题

当出问题之后,可以找到问题的根源

网站/服务器的可用性

1)网站可用性

当系统的高可用性,里衡量其可靠性的标准 是用 n个9来表示,在一年之中系统使用时间与总时间的一个比值,值越高可靠性越强,用不同9的个数级别代表系统的稳定性。

1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天

2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天

3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时

4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟

5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟

6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒

2.监控范畴

监控系统的监控指标 监控系统性能指标_运维

3. 怎么来监控

1)远程管理服务器

远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM

2)监控硬件

查看硬件的温度/风扇的转速,使用 ipmitool

ipmitool 实现对服务器的命令行远程管理的

 yum -y install OpenIPMI ipmitool  # IPMI 只能在物理机运行,虚拟机不行

3)查看cpu 相关

lscpu 、uptime 、top 、vmstat 、 mpstat

4)查看内存相关

free

5)查看磁盘相关的

df 、 dd、iotop

6)查看网络相关的

ifconfig 、iftop

除了使用系统命令查看计算机状态数据,还可以使用监控工具,如zabbix监控系统

3.Zabbix 监控

zabbix是一个开源的监控系统,提供了分布式监控以及集中的web管理页面

 zabbix具备常见商业监控软件所具备的功能,主机性能监控,网络设备性能监控,数据库性能监控,ftp、http等通用协议的监控,当被监控的指标异常可以发送基于 E-mail的报警

zbbix提供报表及实时的图形化数据处理,实现对监控主机7x24小时集中监控

Zabbix通过C/S模式采集监控数据,通过B/S模式在web端展示和配置,被监控对象只需要支持SNMP协议或者运行Zabbix agents代理程序即可,服务端监听端口为 10051,被监控端即Zabbix——agents代理程序监控10050端口

4.官方网站

Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution

5.Zabbix主要功能

1、数据收集:从被监控端 间隔的收集数据

2.灵活的阈值定义:定义故障的临界值,达到阈值就触发报警,Zabbix中称为触发器(trigger)

3.高级警告配置:可以自定义告警升级(escalation)、接收者及告警方式;通过远程命令实行自动化动作

4.实时绘图:通过内置的绘图引擎实现监控数据实时绘图

5.具备应对复杂环境情况:通过Zabbix proxy可以非常容易的创建远程监控

6.zabbix监控范畴

硬件监控:Zabbix IPMI Interface,通过IPMI接口进行监控,比如电压、温度、风扇状态、电源状态等

系统监控:Zabbix Agent Interface,收集cpu相关指标数据、磁盘的 IO 相关数据、内存数据、其他应用服务的相关指标数据等,当需从被监控端收集数据,被监控端应安装 agent 程序

java 监控:通过JMX进行监控java JVM虚拟机

网络设备监控:Zabbix SNMP Interface,通过SNMP协议与被监控对象进行通信,SNMP协议的全称为simple network management protocol,被译为简单网络管理协议

应用服务监控:Zabbix Agent UserParameter, agent指的就是被监控端

MySQL数据库监控:percona-monitoring-plulgins,对mysql 的监控通过monitoring 插件

URL监控:Zabbix Web 监控

7.zabbix 监控组件

主要包括:Zabbix server(服务端) 、Zabbix proxy(zabbix代理) 、 Zabbix Agent(客户端被监控)

监控系统的监控指标 监控系统性能指标_服务器_02

每个模块的职责:

 1、Zabbix Server:用来获取agent存活状况及监控数据。所有的配置、统计、操作数据均通过Server进行存取到database

2.Zabbix Database:用户存储所有zabbix的配置信息、监控数据的数据库

3.Zabbix Web:Zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,通常与zabbix Server运行在同一台主机上。也可以部署在不同主机

3.Zabbix Proxy:常用于分布监控环境中,代理zabbix Server收集部分被监控的监控数据并统一发往Server端;(通常大于500台主机需要使用),也大大减少 zabbix server 的连接数

4.Zabbix Agent:用于部署在被监控的主机上,并将数据发往 server 或 proxy

另外,zabbix server 、 proxy 、agent 都有自己的配置文件以及log 文件。

8.zabbix常用的监控架构平台

1)server+agentd 模式: 

使用于小规模,一般小于500台可以使用server+agentd模式

        将zabbix agent 部署到被监控主机上,由agent采集数据,发送给 zabbix server,zabbix server从agent 接收到的数据存储于database数据当中,查看监控的各种数据信息,需要 zabbix web 平台

zabbix web是使用php编写的,想要使用zabbix web展示相关监控信息,需要依赖LAMP或LNMP环境

监控系统的监控指标 监控系统性能指标_服务器_03

 2)server+proxy+agentd模式:

当监控规模变得庞大时,需要使用 zabbix 分布式监控,每个区域设置台代理主机,采集区域内的被监控对象的信息被agent采集,提交给代理主机,zabbix proxy代理主机在将收集到的信息,统一交给 zabbix server处理。

分摊了zabbix server的压力,同时,我们还能够通过统一的监控入口,监控所有的对象

监控系统的监控指标 监控系统性能指标_linux_04

9. Zabiix运行过程图

监控系统的监控指标 监控系统性能指标_运维_05

 zabbix server:负责接收 agent 或 proxy 发来的监控数据,zabbix server 将数据保存到 database数据库中,zabbix web 根据数据在前端进行展现和绘图吗,查看监控的数据信息

agent分为主动和被动两种模式:

主动:agent请求server 获取监控项的列表,并主动将监控项内需要检测的数据提交给 server/proxy

被动:server 向 agent 请求获取监控项的数据,agent返回数据