监控方式

zabbix获取数据的方式是多种多样的,总体来说,zabbix收集数据的方式分为两种,一种是需要客户端的,一种是不需要客户端的

需要客户端的

主动式的agent
被动式的agent
日志文件监控

  1. 被动式

查看客户端的配置文件,排除# $ 开头的

在页面配置

  1. 主动式 也是trap

在页面配置
配置active监控项,查看zabbix_agent的进程数量

主动式监控依赖的是agent端从server获取任务的信息,key,更新周期这些的,在zabbix_server.conf配置文件中可以设置刷新值,范围是60-3600s,意味着以60-3600s为周期agent端向server端推送数据,

配置文件说明:

主动式与被动式的区别

server端定义主动式的监控项,在agent端。有 active check进程,用来检查server端定义的监控项,然后agent端主动执行推送数据,
被动格式数据收集用的是poller进程,主动式收集数据使用的是trap进程
server端配zabbix-server.conf修改

修改traper pooler数量

可以修改服务端开启的trap数量,pool数量,默认是3个


修改超时时间

配置文件中可以设置超时值

默认3秒,当命令收集数据耗时太长可以修改该值

zabbix_agent.conf
zabbix-agent.conf 可以修改agent进程数量 ,默认3

监控项key的语法格式

无需客户端的

  1. 简单检查 simple check 不需要安装agent客户端


    zabbix server或者proxy通过tcp udp协议发起监控请求,用来检查网络是否通畅,延迟,端口是否正常响应等。执行命令,获取返回的信息达到监控目的

依赖于fping

没有的话需安装
yum install fping
分配组跟权限
chown root:zabbix /sbin/fping
chmod 4710 /sbin/fping

配置zabbix_server.conf, 设置fping可执行脚本的位置。默认的是/usr/sbin/fping

页面配置

显示延迟的监控项

参数说明:
target 监控主机的ip,可置空,默认使用的是就是受控主机的ip
packets 包的数量 
interval 发送包的间隔,   单位毫秒  mm
size 每个包的大小 timeout 超时, 
mode 返回最小值 最大值或者平均值

返回值为当前受控主机的网络延迟值
返回的值为0.003

可以添加预处理进行倍数转化和单位添加
可以添加监控项预处理

添加乘以1000,将值扩大1000倍

查看fping进程, 可以看到fping执行了这条监控

  1. telnet check

通过telnet登录到受控主机执行命令获取数据
需要配置要监控设备的账号信息

参数说明
1 一个简短的说明
2 需要登录的主机ip
3 端口 一般是23
4 编码格式,默认是utf-8

需要安装telnet,需要开放23端口,或者关闭防火墙,selinux
安装 yum install telnet 启动 systemctl start telnet.socket

查看telnet服务状态

设置开机启动

为telnet创建用户

在server端尝试用telnet登录受控主机

登录成功

页面配置

telnet agent相当于在server端用telnet服务登录了受控主机,然后就像在受控主机上输入命令一样进行相应值的获取。

  1. zabbix 内部检查
    zabbix为我们添加的zabbix模板已经足够了


示例:

当历史数据的缓存使用量大于75%,则报警,此时可以通过修改server端的配置项来扩充

默认是16M

  1. log monitor 日志监控
    仅能使用主动式监控

zabbix agent 主动到server拉取最新的主动模式的监控项,有日志监控的,agent就会根据监控项的配置找到对应的日志进行监控,当有满足条件的,如匹配到关键字的,就将信息返回给zabbix server,找不到返回的就是空的

不同的一点就是 logrt支持日志的迭代,当一个日志文件存满进行轮转的时候,会跟随这个轮转的日志进行监控 
rt就是ratation  轮转的意思
参数file  日志文件的路径
参数regexp 正则匹配的语法
encoding 编码格式maxlines  zabbix agent 每秒最大处理的行数,向server发送的最大行数
mode  默认的是all 新的旧的都进行正则匹配,一般我们使用的是skip 跳过那些旧的数据,只监控新写入的
output可以定义日志的输出格式
maxdelay也是为了忽略旧的数据,要小心使用,可能造成丢掉新的错误日志,一般保持默认即可

rt中的options 只有logrt中有只要针对日志格式的类型 一般也是默认

页面中配置



只要日志信息中有能被正则所匹配到的任意信息,这段日志就可以被提取出来
日志信息中有ERROR 正则语法是(ERRORALERT),这条日志就能被提取到

  1. 外部检查
    external check 外部检查
    就是server端或者proxy端直接执行脚本来获取监控数据
    由于脚本的执行就是在server端或者proxy端,被控主机就不用安装agent了



配置zabbix server.conf 指定脚本的路径

实例:
使用dig来查看域名解析的时间


自定义脚本

给权限
chmod a+x dns_resolve.sh

在完成这些之后,还需要对用户及dig命令的执行范围确认一下,看是否zabbix用户能否调用,确保脚本能被执行

添加外部检查的监控项
不用加双引号, 空格隔开

  1. http agent
    不需要安装zabbix agent 用来监控http的业务或者接口,服务器的响应性能情况,响应码,响应内容,

依赖curl


查看zabbix server的日志信息

页面配置


实例 访问zabbix


结果

  1. web场景

web 场景 web步骤 web 请求
zabbix按照顺序执行场景中定义的请求,如果其中一个出现异常,zabbix 将不会访问底下的请求,就中断了

以用户购买商品为例
登陆页面 》 登陆 》进入商品搜索 》进入选中商品的详情页 》 购买选中商品 》支付 》退出

可以看出 web场景是模仿一整套的流程,他跟http agent还有有区别的, http agent是针对于一个,key是自定义的 web场景是一组,他的key是zabbix根据名称生成的

也依赖curl
image.png

监控项分为 场景监控项和步骤监控项。创建出场景之后,zabbix会自动生成3个场景监控项 :该场景的下载速度 场景中失败的步骤 场景监控最后的错误信息
对于每个步骤,他也可以生成2个监控项,步骤的下载速度,步骤的响应码

创建场景
image.png

步骤1
打开首页

登陆

登出

使用到上次定义的{sid}

  1. ssh
    前提

    数据收集方式
    image.png

语法

跟telnet是很类似的

查看zabbix_server的日志信息

可以看到现在server端是支持了ssh的

查看/etc/passwd文件
可以看到默认的zabbix用户是不允许shell登录的
需要做修改

修改家目录,修改默认的bash

手动构建家目录

给予家目录属主和属组

授予权限

更改zabbix用户的默认把式

再次查看/etc/passwd

在server端尝试ssh登录到受控客户端

页面配置

最新数据中显示

通过秘钥来ssh登录受控主机
在server端先关闭zabbix_server和agent服务,不然再修改zabbix用户的时候容易出现一些问题
查看server端的/etc/passwd 发现默认的zabbix用户也是nologin的
需要重新指定下shell

重启server跟agent服务

修改 zabbix_server.conf
修改ssh key的位置

重启server服务

生成秘钥

查看ssh路径下的文件

给agent端传输生成的秘钥

受控主机端的zabbix家目录下就多了一个.ssh目录

当agent端有了server端给的秘钥之后,再次ssh登录就不再需要密码,直接登录

页面配置

  1. JMX Agent
    java 管理扩展 java manager extention
    前提条件

    数据收集流程

语法

在server端安装 zabbix_jave_gateway

更改配置文件
打开这栏

启动服务,查看运行状态

监听在10052端口

更改zabbix_server的配置

重启zabbixserver
查看启动日志

页面配置
由于java_gateway是在server端启动的,所以需要在zabbix_server服务器上进行

主机接口的更新

监控项的创建
可以使用zabbix自带的java监控模板来查看效果

通过jconsole 来查看jmx

实例:
监控tomcat
在一台受控主机上
安装java

配置java的环境变量

修改/etc/profile文件来配置java环境变量

source /etc/profile

查看java的环境变量

准备tomcat
下载tomcat的gz包并解压

在解压包的bin目录下可以使用脚本来启动关闭tomcat进程

修改tomcat/bin/catalina.sh ,加上jmx的启动参数

查看进程信息

在页面配置
受控主添加 jmx接口,

创建监控项
在jconsole中复制mbean名称

选择属性

查看最新值

配置自动发现
查看mbean

配置自定发现规则
image.png
使用自动发现的宏来创建监控项

  1. IPMI Agent
    Intelligent Platform Management Interface
    智能平台管理接口

可以用来监控硬件的健康信息,物理状态(风扇,电压,电源等),
优势:独立于操作系统的,只要接入电源的,无论操作是否启动,都可以实现监控

前提条件

数据收集流程

验证server端是否支持IPMI检查,通过查看启动日志来看

配置 zabbix_server.conf

重启zabbix_server服务,查看ipmi_poller进程

安装ipmitool依赖包

验证ipmitool,显示所有的硬件信息

实例:
获取风扇转速

创建主机

配置IPMI

配置监控项

  1. Datastore Monitor
    通过执行sql语句来获取数据库相关的信息,可以是数据库本身的性能数据,也可以是业务数据
    前提条件

数据收集流程

语法

准备:
zabbix_server在安装的时候获取odbc的支持,安装unix odbc,配置数据库的连接驱动
查看zabbix_server的启动日志,验证是否支持ODBC

安装依赖

安装unix数据库的驱动
yum search odbc 查看支持哪些数据库驱动


查看odbc的配置

修改/etc/odbcinst.ini

image.png

配置/etc/odbc.ini

通过isql来测试配置是否生效

直接就可以进入数据库了

页面配置

  1. calculate items
    会对多个监控项进行取值运算,是由server端直接操作数据库进行运算的
    单个监控项的

  2. Aggregate checks
    聚合计算

    以主机组为维度,来计算一类型的监控项

  3. Dependent items
    依赖监控项
    监控项的取值依赖其他监控项。 相互依赖的监控项最多999个
    而且以来层级最多是3层 a依赖b ,b依赖c

用户自定义监控项


在zabbix_agent中的/etc/zabbix/zabbix_agentd.d目录下添加自定义监控项的配置文件xxx.conf
内容添加用户自定易得key和相应的执行命令

注意
定义的key在同一台主机中,必须是唯一的,不然重启agent启动不了

在server端进行 zabbix_get测试自定义的监控项。

内置执行逻辑:
首先,zabbix 创建一个管道通信,并将该管道作为生成的子进程的一个输出,然后子进程执行该监控项对应的脚本或者命令,并将结果通过这个管道返回给zabbix。zabbix在超时时间内从管道中获取数据,当超过时间仍没有数据,那么就返回空

监控项预处理中的正则
image.png

posted @ 2019-09-07 17:02  π=3.1415926  阅读(369)  评论(0编辑  收藏  举报