Zabbix 4.0企业级分布式监控 day08 第六章 数据收集04

6.10 User Parameter

有Agent的用户自定义参数,定义所需要的监控项,从而收集想要的数据
在这里插入图片描述

用户自定义参数.
前提条件: 被监控设备 安装并正确配置zabbix agent ,添加自定义监控的配置文件和命令脚本
(既可以是主动模式 又可以是被动模式)
在这里插入图片描述
语法(在Zabbix Agent的配置文件中)

UserParameter=<key>,<command>

#vim /etc/zabbix/zabbix_agentd.conf
需要确认启动zabbix-agent的用户是否可以启动脚本
可以在zabbix_agent.conf中添加如下配置(一般放在文件中的Include的zabbix_agentd.d下面)

定义用户的数量和进程的数量
UserParameter=user.count,who|wc -l
UserParameter=process.count,ps aux|wc -l 
#UserParameter=processcount[*],ps aux |grep $1|grep -v grep|wc -l  #这样可以传递参数并监控

重启
systemctl restart zabbix-agent.service

如何保证UserParameter配置是正确的?
在server端可以通过zabbix_get 获取监控项的值

查看是否安装 yum list all |grep zabbix
yum install zabbix-get.x86_64

#zabbix get -h
#zabbix_get -s 192.168.93.147 -p 10050 -k user.count
#zabbix_get -s 192.168.93.147 -p 10050 -k process.count
#zabbix_get -s 192.168.93.147 -p 10050 -k process.count[zabbix_agent]

第一步:创建监控项
在这里插入图片描述
在这里插入图片描述
第二步:验证结果
在这里插入图片描述

用户自定义参数在使用过程中的技巧,规范
(一般放在zabbix_agent.conf配置中的Include的zabbix_agentd.d下面)

[root@localhost zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@localhost zabbix_agentd.d]# vim userparameter_process_count.conf
UserParameter=process.count,ps aux|wc -l

重启zabbix agent
查看数据是否依然能收到最新的

如何往用户自定义参数中配置参数

客户端Zabbix Agent
[root@localhost zabbix_agentd.d]# vim userparameter_process_count_new.conf
UserParameter=processcount[*],ps aux|grep $1|grep -v grep|wc -l

这样可以看到指定的进程中的进程数量,比如监控zabbix agent的进程数量
重启zabbix agent,通过服务端Zabbix Server的zabbix_get测试
[root@localhost data]# zabbix_get -s 192.168.93.147 -p 10050 -k processcount[zabbix_agentd]
13

在这里插入图片描述
同样的,可以配置到监控项当中
在这里插入图片描述

在这里插入图片描述

6.11 Zabbix Trapper

无需安装Zabbix Agent

使用场景:只要可以将数据发送给zabbix-server即可
前提条件:

  1. zabbix-server端配置zabbix trapper类型的监控项
  2. 被监控设备使用zabbix_sender命令或其他客户端发送监控数据

语法

zabbix_sender -z <zabbix server ip> -p <port> -s <host> -k <item key> -o <value>.

数据收集流程
在这里插入图片描述

创建两个监控项
在这里插入图片描述
在这里插入图片描述
创建完成之后登陆到zabbix-agent端发送监控数据

yum -y install zabbix-sender
#zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k process.cpu -o 70.9
#zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k log.content -o "warning:test"

[root@localhost ~]# zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k process.cpu -o 70.9
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000059"
sent: 1; skipped: 0; total: 1

在这里插入图片描述

可以将zabbix_sender和user_parameter结合起来

配合脚本

[root@localhost ~]# cd /etc/zabbix/
[root@localhost zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d
[root@localhost zabbix]# mkdir lldscripts
[root@localhost zabbix]# vim /lldscripts/zabbix_trapper_script.sh
[root@localhost zabbix]# cat /lldscripts/zabbix_trapper_script.sh 
zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k process.cpu -o 70.9
zabbix_sender -z 192.168.93.145 -p 10051 -s "findsec_linux" -k log.content -o "warning:test"
[root@localhost zabbix]# chmod a+x /lldscripts/zabbix_trapper_script.sh 
[root@localhost lldscripts]# ./zabbix_trapper_script.sh 
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000135"
sent: 1; skipped: 0; total: 1
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000205"
sent: 1; skipped: 0; total: 1

 
[root@localhost lldscripts]# cd /etc/zabbix/zabbix_agentd.d/
[root@localhost zabbix_agentd.d]# vim userparameter_zabbix_trapper.conf
UserParameter=zabbixtrapper.info,/etc/zabbix/lldscripts/zabbix_trapper_script.sh

[root@localhost zabbix_agentd.d]# systemctl restart zabbix-agent.service

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
好处:①所有监控项在同一秒收集 ②Zabbix Trapper会降低Zabbix Server的压力,下发到各个被监控设备上

6.12 External Check

外部检查 无需Agent,实际应用中用的不多
在zabbix-server或者zabbix-proxy上通过执行脚本获取监控数据

前提条件
zabbix server

  1. 配置ExternalScripts参数,指定脚本的路径
  2. 准备获取监控数据的脚本
  3. 添加External Check监控项

数据收集流程
在这里插入图片描述
语法:

script[<parameter1>,<parameter2>,...]

zabbix-server端执行脚本时会fork子进程来处理脚本,当有大量的外部检查时,会导致zabbix-server的性能下降.

Server服务端:
yum install bind-utils -y
在zabbix-server上修改zabbix_server.conf
打开ExternalScripts=/usr/lib/zabbix/externalscripts
在/usr/lib/zabbix/externalscripts下添加脚本dns_resolve_time.sh 并赋予执行权限

第一个参数是DNS服务器,第二个参数解析的域名

[root@localhost ~]# cat /usr/lib/zabbix/externalscripts/dns_resolve_time.sh
#!/bin/bash

TIMEOUT=15
DNS_SERVER=$1
DOMAIN=$2

if test -z "$1"
then
  echo "from DNS Server"
  exit
fi

if test -z "$2"
then
  echo "DNS Domain"
  exit
fi

RESOLVE_TIME=`(time dig @$1 $2) 2>&1|grep real|cut -dm -f 2|sed 's/[s.]//g'`

echo $RESOLVE_TIME

[root@localhost ~]# chmod a+x /usr/lib/zabbix/externalscripts/dns_resolve_time.sh
[root@localhost ~]# /usr/lib/zabbix/externalscripts/dns_resolve_time.sh 114.114.114.114 www.baidu.com

添加监控项,监控域名解析是否正常,监控公司主站域名
在这里插入图片描述
在这里插入图片描述
结果:
在这里插入图片描述

可以在zabbix-server.log中看到错误日志 或者在web界面对应主机的application监控项里查看监控项的状态
latest data里监控项如果显示灰色就说明监控数据收集异常
#tail -n 200 /var/log/zabbix/zabbix_server.log

想另外个DNS来解析另外个域名
 

6.13 HTTP Agent

不需要安装Agent

通过http或者https请求获取监控数据.也可以通过sender
用于监控业务或者接口的响应性能情况,检测响应码 响应时间

前提条件
zabbix-server

  1. 安装是需要支持curl (启动zabbix-server时web monitoring显示 yes)
  2. 添加http agent监控项

数据收集流程
在这里插入图片描述

#tail -n 500 zabbix_server.log|more
看是否支持curl,如果支持的话可以看到 Web monitor
在这里插入图片描述

第一步:创建监控项, Type of information 为 Log
key是自定义生成的

第二步:查看结果


稍微复杂点的例子
访问请求 zabbix api 的监控
官网文档资料API的值 https://www.zabbix.com/documentation/4.0/manual/api/reference/apiinfo/version

Request:

{
    "jsonrpc": "2.0",
    "method": "apiinfo.version",
    "params": [],
    "id": 1
}

第一步:创建监控项, Type of information 为 Log
key是自定义生成的

第二步:查看结果

6.14 web场景监控

在这里插入图片描述

前提条件
zabbix-server

  • 安装时需要支持curl
  • 添加web监控

数据收集流程
在这里插入图片描述

语法

场景监控项
web.test.in[Scenario,,bps]
web.test.fail[Scenario]
web.test.error[Scenario]
步骤监控项
web.test.in[Scenario,Step,bps]
web.test.time[Scenario,Step,resp]
web.test.rspcode[Scenario,Step]

创建最简单的Web场景

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

较为复杂的登录zabbix网站场景的监控

第一步:创建用于监控登录的账号

第二步:登录请求发送校验 过程
monitor
123456

查看网页源代码,找到关键字 Zabbix SIA,而且相应状态码是200,代表打开首页成功
在这里插入图片描述
在这里插入图片描述

登录后,传递的参数
在这里插入图片描述
登录成功后,会生成一个CSRF token,用于防止跨站脚本攻击的
在这里插入图片描述

退出登录,CSRF token获取,传给SID
在这里插入图片描述
第三步:模拟此登录过程的web场景
创建web场景

配置步骤
第一步:打开首页
在这里插入图片描述

第二步:登录
在这里插入图片描述
regex:name=“csrf-token” content="([0-9a-z]{16})" 赋给变量sid

第三步:验证第二步是否成功的
在这里插入图片描述

第四步:登出
在这里插入图片描述

第五步:校验
在这里插入图片描述
Follow redirects √
200
在这里插入图片描述

验证:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39578545/article/details/106359529