Zabbix架构学习记录

教程来源于 https://www.bilibili.com/video/av47893710  内容为自己简单整理

整理文档下载:

作用

数据收集

数据展示

告警策略

告警发送

事件管理

报表管理

认证权限

数据收集

zibbix 客户端占用的系统资源很少,可以获取cpu 内存网卡 磁盘 日志 文件系统 网卡等

snmp

ipmi 可以获取监控数据,也可以管理硬件设备,重启,关机,获取硬件日志

zibbix 支持自定义监控,可以通过shell python ruby perl powershell 任何可自行脚本手机监控数据

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

zabbix 支持8中运算符,29个函数可以任意组合使用,完全可以满足我们告警阈值设置需求

支持历史数据进行分析,和上周月等数据进行对比分析

可以对服务器自行相关命令如重启,

协议 TLS:Transport Layer Security 传输层安全性协议

SSL:TLS的前身,SSL 3.0 但是被发现可以被攻击,不够安全

 

通过zabbix api可以获取监控数据,自动配置管理,与第三方系统联动,开发自己的监控app等等

 

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

Zabbix Server: Zabbix服务端,负责数据汇总处理,告警策略,告警发送等

Zabbix Web:Zabbix 前段页面,提供了友好的展示和操作页面,负责数据的暂时,监控胸膛的配置管理,用户权限配置管理等等

Database:数据配置和储存库,Zabbix支持多种数据库,包括Mysql,Oracle,DB2等等

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

Zabbix Proxy:Zabbix代理,分布式部署架构会用到,主要是手机设备的监控数据并将数据发送给对应的Zabbix Server

1.数据通过Zabbix 客户端手机并发送给Zabbix服务端,
2.Zabbix服务储存数据处理数据,触发告警功能
3.用户和管理员可以通过Zabbix前端页面查看数据展示和配置管理

4.如果多设备,多机房,都可以通过Zabbix Proxy实现分布式架构部署

 

 

监控功能

Poller进程主要负责Server主动拉取类型的监控数据

Trapper进程主要负责Agent主动上报的监控数据

Http Poller 进程主要负责URL监控类型的数据收集

Icmp pinger进行负责ping存活监控数据收集

Java gateway 进程负责java gateway和java网关通信和处理数据

Java poller 进程负责拉取JMX类型获取

Ipmi poller 进程负责IPMI类型数据获取

Timer 进程负责处理和时间有关的数据以及告警

Vmware collector 进程负责收集vmware虚拟化环境监控数据

unreachable poller 负责处理无法达到类的监控处理

 

管理功能

preprocessing 进程会对监控数据进行预处理,然后服务端的history syncer进程负责将数据分析保存到数据库中

housekeeper 进程负责定期清理历史数据

alerter 进程 负责处理发送告警

alerter manager 负责管理alerter进程

escalator 进程负责处理告警过程中各个步骤,比如 告警升级等

分布式通信

Proxy poller进程负责分布式通信

自动发现功能

Discovery process 是负责设备自动发现功能的

组件功能

 

监控收集

Host 主机,任何监控设备都叫主机,服务器交换机,储存,打印机都成为主机

Host group 主机组,主机的逻辑分组,比如同一个机房的主机分一组,同个办公室的打印机分一组,可以根据主机组设置用户的访问权限

Item监控项,监控的一个指标,比如 cpu使用率,负载,网卡接收流量

Value preprocessing 监控项数据预处理,就是数据再存入数据库之前按照指定的规则预处理,比如处理成数据的变化量,数据每秒变化淑女,或者单位的换算,从ms换成s

Application应用,一组监控项的逻辑分组,比如Nginx的监控项统一到Nginx应用中

Template模版,就是可以应用到多个监控设备的监控集合,包含监控项,触发器,图形,LLD,web

监控等等,同类监控整理成模版,重复利用提高监控效率

Web scenario web场景,是监控web的一个或多个http请求,一个场景中可以是单个URL,可以是多个URL

Macros   可以认为是一个变量,可以应用在告警模版等功能中

数据展示

Graph 图表,可以将一个或多个监控项的监控数据放进同一张图表中,比如将CPU使用率,系统使用率,空闲率,都放入CPU监控图表中

Screen 将多个graph聚在一张监控大屏中,比如将CPU,网卡,内存,IO这些图表放在,一起就组成了直接的聚合图表

Maps 网络拓扑图,Zabbix还支持拓扑图展示监控,并在拓扑图中加入对应的监控指标,当该监控项异常时,拓扑图也会显示异常,很方便异常定位问题

Slide shows 幻灯片播放,每隔一段时间轮播播放多个聚合图表

告警相关

Trigger触发器,是告警的策略设置,可以分别设置正常的状态和异常的状态的触发器,比如cpu持续超过5分钟CPU使用率超过80%就出发告警

Event 事件,比如告警状态的变化,自动化发现线路生效,客户端注册发现成功等等

比如说如上,触发了超过5分钟cpu使用率超过80%行程这个,然后触发器状态OK》Problem

这就是一个事件

Problem异常状态,OK正常状态

Action操作,根据事件和条件定义的一系列动作,比如说cpu发生告警事件,触发一个操作,操作是发送告警给管理员,让他及时处理

Escalation 升级,是在一个动作内执行的操作,告警升级操作就是通过这个实现,比如cpu告警告警信息发送就是一个escalation

Media 媒介,指告警通知的方式,短信,邮件 微信

Notification 通知,关于时间的消息,通过制定的媒介发送给用户

Remote command 远程命令,预先预定,制定条件下会被执行的命令

Maintenance 维护模式,就是系统升级或者维护的时间段,该时间段可以不发送告警

 

认证和权限

User 科可以是内部用户,也可以是LDAP用户

User Group 用户组,多个用户组成的逻辑住,比如运维组,研发组,产品组

Permission 权限,用户或者用户监控设备的访问权限是不同的,可以是读写权限,只读权限,或者没有权限

User type 用户类型,普通用户,管理员,超级管理员

普通用户只能查看对应的监控设备,管理员可以编辑有权限的访问设备,

超级管理员是可以管理监控系统中的额所有配置,一般监控系统管理员是超级用户

安装

安装要求

依赖

 

环境准备

 

Virtualbox https://www.virtualbox.org/wiki/Downloads

CentOS 7.6   https://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/

 

安装配置 课程资料

https://github.com/findsec-cn/zabbix

 

https://github.com/findsec-cn/zabbix/blob/master/第三章 ZabbixServer安装/3.1 Zabbix二进制包安装-命令列表

 

https://github.com/findsec-cn/zabbix/blob/master/第三章 ZabbixServer安装/3.2 Zabbix源码包安装-命令列表

介绍

Zabbix前端介绍

 

Monitoring 监控页面

Inventory 资产信息,资产信息配置,监控设备的信息

Reports 报表

configuration 常用的一些配置

adminstration 用户信息 脚本配置

 

监控部署 11P

 

监控数据查看12P

Graphs 监控图表,默认有一些已经自带的监控报表,可以支持自定义监控报表

Screens 自带监控和自定义监控,web监控创建

图表中中文乱码解决

 

用户以及告警媒介 13P

告警触发流程

监控阈值设置

 

diff 函数 前后两个数值是否发生变化,如果发生变化,就触发告警

last 是最新监控项的值大于设定的阈值就触发告警

avg 最近时间的指定的平均值,符合设定的阈值就触发告警

nodata  设定阈值时间内没有 获取到数据就触发告警。

change 符合设定的阈值就就触发告警

创建trigger 可以设置不同级别的触发器

 

自带了用户和用户组

安装mailx >yum install mailx

设置邮件发送 调用sh来发送

查看历史告警,monitoring >Problem>

指定邮件发送。

 

默认宏 14P

自带宏 宏函数的应用


自定义宏 15P

 

Administration>General>Macros 自定义宏

可以自定义宏到全局变量中使用

Templates >Macros 模版中定义宏

宏变量应用顺序是,先是应用模版宏没有找到全局宏
多个模版中有相同宏变量,使用找到的第一个宏变量

优先级:主机宏》模版宏》全局宏

 

配置自定义发现

Zabbix_get

创建低级别自动发现宏简历监控模版。或者执行命令

宏色适用范围 16P

系统定义的宏 可以通过zabbix 中查看使用场景和范围
https://www.zabbix.com/documentation/4.0/manual/config/macros

 

数据收集方式 17P

Passive:被动模式,被Zibbix server 来获取数据

Active:主动推送数据到Zibbix server可以降低server压力

Log file Monitoring:根据日志文件关键字来监控

User parameters:用户自定义监控

 

无客户端监控

SNMP Agent:server通过snmp协议监控设备

SNMP Traps:主动将snmp traps 信息主动推送到server

IPMI Agent: server 通过ipmi 协议监控设备,服务器温度,风扇转速,功率

Simple Check:通过icnp,udp监控网络的状态和端口的信息

Caiculated:通过监控项的值来计算得出结果,在server端进行计算

SSH Agent:SSH远程到对应的设备,执行指定命令

Telnet checks: Telnet远程到对应的设备,执行指定命令

External Agent: 外部脚本监控,由server执行脚本来监控数据

Zabbix Aggregate:  聚合监控,通过数据聚合后再进行结果分析进行监控

HTTP agent: 4.0开始使用,通过http 或者url 来监控数据,通过server或者pollers进行监控

Dependent item: 相互依赖的监控项,比如cpu各项指标同时存在才有参考意义

Zabbix Internal: 监控 server 和pollers性能的

Zabbix Trapper: 被动接受来自于监控设备的监控数据

JMX Agent: 监控java应用的,需要java应用启用jmx

Database Monitor: 数据库监控,通过连接数据库 通过查询获取数据库信息

Web Monitor: web场景监控,模拟场景进行监控

Zabbix Agent(Passive)18P

基本概念、

创建的item 默认的type是被动模式

前提条件:

1.安装Agent 并且正常配置和启动

2.Zabbix Server到Agent网络通信正常

3.Zabbix Server到Agent 10050端口通信正常

常用场景:
数据获取:

数据获取流程:

Zabbix 系统支持的监控项:

 

配置管理

创建监控项:

观察数据收集:

问题排查:

 

Zabbix Agent(active) 19P

基本概念

监控项语法:

前提条件:

常用场景:

数据获取流程:

Agent 主动从server 10050 端口中获取Active监控项

Server 返回监控项目列表包含的key和delay等信息,
Agent 根据Active监控项配置配置发送监控数据到server

Zabbix系统支持的监控项:

监控项Key

Zabbix_get  -s 10.211.55.10 –k ‘proc.num[zabbix_agentd,,,]’

 

 

配置管理

创建监控项:

观察数据收集:

问题排查:

Simple Check 20P

方式:通过icmp,udp,tcp来发起监控请求,监控网络是否通畅,延迟,端口是否相应。

数据收集流程:

Preprocessing 返回的数据预处理

 

Telnet Check 21P

 

条件:被监控设备必须支持 telnet协议

监控方式:通过telent 方式进行监控设备,监控设备需要支持telnet协议,开放防火墙

数据收集流程:

Server 通过telnet 执行命令然后获取监控设备结果返回。

监控语法:
telnet.run[<unique short description>,<ip>,<port>,<encoding>]

encoding 默认是UTF-8,不是的话需要自己指定编码

创建item时候 可以指定的temp位置,然后再指定宝箱吃东西

Zabbix Internal 22P(内部监控原理)

 

 https://www.zabbix.com/documentation/4.0/manual/config/items/itemtypes/telnet_checks

screens 是server监控自身的

 

Log Monitor 23P

前提:需要安装和正确配置 Zibbix Agent,日志监控室主动信息来推送给server

Agent 和 server中hostName相匹配,对对应的log需要有权限

只要对文件有权限 就可以监控任何日志

数据收集流程:

监控项语法

log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]

log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>]

logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<optioins>]

logrt.count[file_regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]

log 文件匹配关键字

log.count 计算包含关键字文件行

logrt 支持日志迭代,定时切割的情况下,匹配支持匹配正则

 

 

 

数据收集SNMP Agent 24P

基本概念

Snmp 是什么:是一种简单网络管理协议,提供了由网络设备的交付方法,默认是通过UDP 161和162端口进行通信,提供了V1 V2 V3(提供安全验证),
Zabbix 提供了不同版本的交付和对应的Oid(唯一的网络标识符),

Mib :通过不同mib库来映射不同的oid,更加明确oid对应的内容

SNMP 使用场景:一些无法安装 Zabbix Agent的网络设备可以通过SNMP来获取数据。

SNMP监控的前提:

SNMP的监控流程:一般都是zabbix server 主动获取监控数据

SNMP监控项的语法:

配置管理

准备SNMP监控的前提:

创建SNMP监控项:

观察SNMP监控数据获取:

SNMp监控的问题排查:

 

 

数据收集SNMP Trap 25P

基本概念

SNMP Trap: 主动推送结果给server,基于事件

SNMP Trap 场景:监控异常事件然后推送给server,然后server做出及时告警和处理

SNMP trap监控前提:

SNMP Trap 监控的流程:03:00》03:40

被监控设备》发现异常的trap信息通过 SNMP Trap 然后通过perl脚本或者snmp推送到

SNMP Trapper File 》然后Zabbix File 读取file文件 告警。相应告警

SNMP Trap 监控的语法:

Snmptrap[regexp] :snmp trap加上正则表达式,获取符合这个正则表达式的trap信息,如果没有指定的话,就直接返回所有的信息

Snmptrap.fallback : 没有给这匹配的信息。如果没有给正则匹配到就匹配

\0 是输出数据

SNMP和SNMP Trap 区别:snmp监控设备对网络设备发起请求,接收到请求后再进行相应。

SNMP Trap是网络设备对监控设备通过事件主动报告给server。

161端口用于查询,162用于trap通信

配置管理

准备SNMP Trap监控的前提:

创建SNMP Trap 监控项:

观察SNMP Trap 监控数据获取:

SNMP Trap监控的问题排查:

User Parameter 26P

将监控信息用转换成User parameters,然后调用

前提:

数据收集流程:

语法:

UserParameter=key[*],command

在文件  /etc/zabbix/zabbix_agentd.conf 

或者增加到include文件里面,一般配置在include对应的文件里面

增加

UserParameter=user.cont,who|wc –l

传递参数 15:30-17:00

Zabbix Trapper 27P

不需要安装zabbix Agent,自定义脚本

场景:使用脚本交给 zabbix 收集,都可以使用、

前提:

数据收集流程:

语法:

zabbix_sender –z  <Zabbix Server IP> -p <Port> -s <Host> -k <Item key> -o <Value>

在item增加监控然后执行上面命令

给脚本执行权限

chmod a+x aa.sh

 

 

Extenal Check 28P(外部检查)

前提:

数据收集

语法:

scipt[<paramter1>,<parameter2>,...]

用来执行外部的脚本 shell py 等等

HTTP Agent 29P

监控url,可以携带参数和请求类型和requset body

前提

数据收集流程:

支持crul

 

 

Web Monitoring 30P

 

监控web 通过不同步骤来进行模拟请求操作。

前提条件:

 

数据收集:

Web 需要添加到web监控中

语法:

场景监控项

web.test.in[Scenario,,bps]

web.test.fail[Scenario]

web.test.error[Scenario]

步骤监控项

web.test.in[Scenario,Strp,bps]

web.test.time[Scenario,Step,resp]

web.test.rspcode[Scenario,Step]

 

模仿登录 baidu.com

创建用户

模仿监控 登录zabbix

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值