监控的纬度:
一、架构体系监控
1.硬件监控:服务器、路由器、交换机、防火墙
2.系统监控:cpu、内存、磁盘、进程
3.服务监控:nginx、php、redis、mysql
4.网站监控:请求时间、响应时间、加载时间
5.日志监控:ELK(收集 存储 分析 展示)
6.安全监控:firewalld waf
7.网络监控:奇云测
8.业务监控:活动产生多少流量、产生多少注册量
二、根据网络模型进行监控
TCP/IP四层模型
三、根据网站实际情况进行监控
四、根据用户访问网站流程监控
综合架构监控服务体系结构
监控常用命令:
CPU:top
监控什么?
us: 用户进程占用cpu百分比 --> 用户态信息
sy: 内核进程占用cpu百分比 --> 内核态信息
id: 空闲的百分比 --> 空闲状态
memory:top free
监控什么?
内存可用率
swap空间使用情况
disk:df、iotop(检查磁盘io消耗)
监控什么?
磁盘使用情况
磁盘的IO消耗
网络:iftop
监控什么?
网络带宽使用情况
进程:top、htop、ps
监控什么?
占用内存情况
内存占满会产生内存溢出--->服务出现僵死
占用cpu情况
负载:w、top、uptime
监控什么?
十分钟负载、十五分钟负载
<CPU内核数
综合架构监控服务脚本
- 如何监控内存使用情况
正常使用情况:内存使用率高于80%
异常使用情况:内存使用率低于80%,发送报警
free|awk 'NR==2{print int($NF/$2*100)}'
- 监控服务运行状态
zabbix监控服务说明
1.结构组成
zabbix-server 监控服务器
zabbix-agent 监控客户端
zabbix-web 网站服务
php 处理动态请求
mysql 数据库存储监控数据
zabbix-proxy 负责收集agent信息汇总告知zabbix-server
(大型架构中使用)
实现zabbix报警功能--触发器/动作
报警方式:
1.页面提示信息报警(值班运维)
2.页面声音提示报警
3.邮件信息报警
4.微信功能报警
1.页面提示信息报警
1)创建触发器
配置--主机--选择相应监控主机触发器--创建触发器
设置好表达式:{监控主机名称:键值名称.调用的表达式函数}<=2
表达式总结:
last() #收集到的最新信息(数值)
max() #在一定周期内,收到的最大值
min() #在一定周期内,收到的最小值
diff() #在一定时间内,判断收集的信息是否不同
change() #最新值和上一个值的差异
avg() #一段时间的平均值
2.邮件信息报警
1)创建触发器
同上
2)修改动作配置
配置--动作---将默认动作进行开启
3)建立和163邮箱服务
管理--报警媒介类型--创建报警媒介
4)定义接收报警的邮件地址
个人中心--报警媒介--设置收件人信息
3.微信报警
================
1、zabbix是什么?
由alexei vladisev创建,目前由其成立的公司-zabbix sia积极的持续开发更新维护,并为用户提供技术支持服务。
zabbix是一个企业级分布式开源监控解决方案
zabbix软件能够监控众多网络参数和服务器的健康度、完整性;zabbix使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。
它基于存储的数据提供出色的报表和数据可视化功能,这些功能使得zabbix成为容量规划的理想选择。
zabbix支持主动轮询(polling)和被动捕获(trapping)。
zabbix所有的报表、统计数据和配置参数都可以通过基于web的前端页面进行访问。能够确保你在任何地方访问被监控的网络状态和服务器健康状态;
适当的配置后,zabbix可以在监控IT基础设施方面发挥重要作用,无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
基于GPL通用公共许可证的第二版编写和发布的,意味着免费、开源。
2、zabbix能干什么?
zabbix是一个高度成熟完善的网络监控解决方案,一个软件包中包含了多种功能。
1)数据采集
可用性和性能检查
执行SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware监控;
自定义检查
按照自定义的时间间隔采集需要的数据
通过server、proxy和agents来执行数据采集。
2)灵活的阈值定义
可以参考后端数据库定义非常灵活的告警阈值,即“触发器”
3)高度可配置化的告警
可以根据递增计划、接收者、媒介类型自定义发送告警通知;
使用宏变量可以使告警通知变得更加高效有用;
自动操作包含远程执行命令。
4)实时图形
内置图形功能可以将健康实时绘制成图形
5)web监控功能
zabbix可以追踪鼠标在web网站上的点击操作,来检查web网站的功能和响应时间。
6)丰富的可视化选项
可以组合多个监控项到单个视图中,创建自定义图标
网络拓扑图
以仪表盘样式展示自定义聚合图形和幻灯片演示
报表
监控资源的更高层次展示视图(业务视图)
7)历史数据存储
存储在数据库总的数据
历史配置
内置数据管理机制(housekeeping)
8)配置简单
将被监控设备添加为主机
主机一旦添加到数据库中,就会采集数据用于监控
将模板用于监控设备
9)使用模板
模板中分组检查
模板可以关联模板,继承已关联模板的属性
10)网络发现
自定发现网络设备
zabbix agent发现设备后自动注册
自动发现文件系统、网络接口和SNMP OIDs值
11)快捷的web界面
基于PHP的web前端
可以从任何地方访问
可以定制自己的操作方式
通过审计日志来查看操作
12)zabbix api
为zabbix提供可编程接口,用于批量操作、第三方软件集合和其他用途
13)权限管理系统
安全的用户身份验证
指定的用户只能查看指定的权限范围内的视图
14)功能强大且易于扩展的zabbix agent
部署于被监控对象上
支持Linux和windows
15)二进制守护进程
为了更好的性能和更少的内存占用,采用C语言编写
便于移植
16)适应更复杂的环境
使用zabbix proxy代理,可以轻松实现分布式远程监控
3、zabbix的架构
zabbix由几个主要的功能组件组成
1)server
zabbix server是zabbix软件的核心组件。agent向其报告可用性、系统完整性信息和统计信息;server也是存储所有配置信息、统计信息和操作信息的核心存储库。
2)数据库
所有配置信息以及zabbix采集到的的数据都被存储在数据库中。
3)web界面
该web界面是zabbix server的一部分,通常和zabbix server运行在同一台物理机器上。
4)proxy
zabbix proxy可以代替zabbix server采集性能和可用性数据,zabbix proxy在zabbix的部署是可选部分,但是proxy的部署可以很好的分担单个zabbix server的负载。
5)agent
zabbix agent部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给zabbix server。
6)数据流
另外,回过头来整体的了解下zabbix内部的数据流对zabbix的使用也很重要;
首先,为了创建一个采集数据的监控项,就必须先创建主机;
其次,在任务的另外一端,必须要有监控项才能创建触发器(trigger),必须要有触发器来创建动作(action);
因此,如果想要收到类似“X个server上的CPU负载过高”这样的告警,必须首先为server X 创建一个主机条目,其次创建一个用于监控其CPU的监控项,最后创建一个触发器,用来触发CPU负载过高这个动作,并将其发送到您的邮箱里;
虽然这些步骤繁琐,但是使用模板的话,实际操作非常简单,也正是由于这种设计,使得zabbix的配置变得更加灵活易用。
4、zabbix的常用术语
主机(host)- 你想要监控的联网设备,有IP/DNS。
主机组(host group)- 主机的逻辑组
可能包含主机和模板,一个主机组里的主机和模板之间并没有任何直接的关联,通常再在给不同用户组的主机分配权限时使用主机组。
监控项(item)- 你想要从主机接收的特定数据,一个度量(metrics)/指标数据。
值预处理(value preprocessing)- 存入数据库之前,转化/预处理接收到的指标数据。
触发器(trigger)- 触发器是一个逻辑表达式,用来定义问题阈值和“评估”监控项接收到的数据;
当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态;当接收的数据低于阈值时,触发器保留/返回“OK”的状态。
时间(event)- 发生的需要注意的事件,例如触发器状态改变、自动发现/监控代理自动注册。
事件标签(event tag)- 提前设置的事件标记,可以用于事件关联,权限细化设置等。
事件关联(event correlation)- 自动灵活地、精确的关联问题和解决方案;
比如,你可以定义触发器A告警的异常可以由触发器B解决,触发器B可能采用完全不同的数据采集方式。
异常(problems)- 处在“异常”状态的触发器。
异常状态更新(problem update)- zabbix提供的异常管理选项,例如添加评论、确认异常、改变严重级别或手动关闭等。
动作(action)- 预先定义的应对事件的动作;
一个动作由操作(例如发出通知)和条件(什么事件进行操作)组成。
升级(escalation)- 用户自定义的一个在动作内执行操作的场景;发送通知/执行远程命令的序列。
媒介(media)- 发送告警通知的方式、途径
告警通知(notification)- 通过预先设定好的媒介途径发送事件信息给用户。
远程命令(remote command)- 预定义好的,满足特定条件的情况下,可以在被监控主机上自动执行的命令。
模板(template)- 被应用到一个或多个主机上的一整套实体组合(如监控项,触发器,图形,聚合图形,应用,LLD,web场景等)。
模板的应用使得主机上的监控任务部署快捷方便,也可以使监控任务的批量修改更加简单,模板是直接关联到每台单独的主机上。
应用(application)- 监控项的逻辑分组。
web场景(frontend)- zabbix提供的web界面
仪表盘(dashborad)- 自定义的web前端模板中,用于重要的概要和可视化信息展示的单元,我们称之为组件。
组件(widget)- dashboard中用来展示某种信息和数据的可视化组件(概览、map、图标、时钟等)。
zabbix api - 允许用于使用json rpc协议来创建、更新和获取zabbix对象(如主机、监控项、图标等)信息或者执行任何其他的自定义的任务。
zabbix server - zabbix软件的核心进程,执行监控操作,与zabbix proxies和agents进行交互、触发器计算、发送告警通知,也是数据的*存储库。
zabbix agent - 部署在监控对象上的进程,能够主动监控本地资源和应用。
zabbix proxy - 代替zabbix server 采集数据,从而分担zabbix server负载的进程。
加密(encryption)- 使用TLC协议支持zabbix组件之间的加密通讯(server、agent、proxy、zabbix_sender和zabbix_get工具)。
网络自动发现(network discovery)- 网络设备的自动发现
低级别自动发现(low-level discovery)- 特定设备上低级别实体的自动发现(如文件系统、网络接口等)。
低级别自动发现规则(low-level discovery rule)- 为自动发现设备中低级别实体设定的一系列规则。
监控项原型(item prototype)- 有特定变量的指标,用于自动发现;低级别自动发现执行之后,该变量将被实际自动发现的参数替换,该指标也自动开始采集数据。
触发器原型(trigger prototype)
- 有特定参数作为变量的触发器,用于自动发现;自动发现执行后该变量将被实际自动发现的参数替换,该触发器自动开始计算数据。
还有其他一些zabbix实体原型也被用于自动发现中--图标原型,主机原型,主机组原型,应用原型。
agent自动注册(agent auto-registration)
- zabbix agent自己自动注册为一个主机,并且开始监控的自动执行进程。