关于Zabbix:干货丨-Zabbix-应用技能进阶

14次阅读

共计 4599 个字符,预计需要花费 12 分钟才能阅读完成。

转自 @twt 社区,作者:Zabbix 大叔_乐维。

前言

在过来的几年里,开源产品和商业监控应用程序产生了爆炸式增长,涌现出了一批优良且利用宽泛的监控工具,如 Zabbix、Prometheus 等,零碎运维人员须要把握这些新工具,以及解决这些工具在日常利用中的各种故障、难题等。咱们将继续在社区和公众号中公布同行分享的相干实用常识和技巧。

一、如何在 Zabbix 执行近程主机的脚本或指令?

场景需要:

1、咱们能够通过 zabbix_server 的 web 界面的脚本性能实现对曾经装置了 zabbix_agent 主机实现近程关机而不必手动登陆而后输出关机指令

2、咱们能够通过 zabbix_server 的 web 界面的脚本性能实现某个服务的启动敞开和重启

试验配置过程:

1、创立脚本 关上 zabbix_server 的 web 配置界面,抉择治理, 接着抉择蓝色导航条中的脚本选项, 最初点击创立脚本。

脚本名称:自定义

类型:如果是 window 或者 linux 主机类型都是抉择脚本。IPMI 类型 (暂且不探讨)

执行在:有三种类型,

(1)zabbix 客户端, 阐明创立的脚本会在装置了 zabbix 客户端的主机上运行。

(2)zabbix_server(代理), 阐明脚本会在 zabbix 代理上执行。

(3)zabbix 服务器,阐明脚本会在服务器下面执行。

命令:能够填系统命令, 或者某个脚本的绝对路径

要求的主机权限: 抉择默认就好了

创立一个显示主机 ip 的脚本

重要:脚本创立实现后, 必须到 zabbix_agent 的配置文件中开启容许 zabbix 客户端执行近程命令

把默认的 EnableRemoteCommands= 0 改成 EnableRemoteCommands=1

重启 zabbix 客户端, 使配置失效

脚本创立实现后,咱们去到 zabbix_server 的 web 界面中的监测, 而后找到蓝色导航条中的最新数据, 找一台曾经曾经装置了 zabbix 客户端的 window 主机执行。因为 ifconfig 是 Linux 主机的系统命令,所以测试只能找装置了 zabbix 客户端的 Linux 主机测试。

而后在主机列中,鼠标左键一下主机名, 就会呈现一些咱们自定义和内置的脚本。显示 IP 的脚本就是咱们方才创立的。

执行后果:

失常的显示出装置了 zabbix 客户端的 linux 主机的 ip

原文地址:http://www.talkwithtrend.com/Article/247577

二、用 Zabbix 监控网站的访问量

需要: 监控网站 pv 和 uv 的总量和 5 分钟内的 pv 和 uv 的增量

1. PV、UV 是什么?

UV:独立访客,每个独立上网电脑视为一位访客,一天之内网站的访客数量

PV:访问量,页面浏览量或者点击量,用户每拜访一次记录一次

2. 依据的拜访日志统计网站 PV 和 UV 总量

[root@server-web scripts]# cd /usr/local/zabbix/scripts/

[root@server-web scripts]# cat pvuv_number.sh

/bin/bash

desc: used nginx pv and uv

uv_number(){

cat /usr/local/nginx/logs/access.log |awk ‘{print $1}’|sort|uniq|wc -l

}

pv_number(){

cat /usr/local/nginx/logs/access.log |awk ‘{print $7}’|wc -l

}

case $1 in

uv|UV)

uv_number;

;;

pv|PV)

pv_number;

;;

esac

exit 0

[root@server-web scripts]# chmod 755 pvuv_number.sh

[root@server-web scripts]# chown zabbix:zabbix pvuv_number.sh

[root@server-web scripts]# chown zabbix:zabbix pvuv_number.sh

[root@server-web scripts]# vim /usr/local/zabbix/etc/zabbix_agentd/nginx.conf

[root@server-web scripts]# chmod 755 /usr/local/zabbix/etc/zabbix_agentd/nginx.conf

[root@server-web scripts]# chown zabbix: /usr/local/zabbix/etc/zabbix_agentd/nginx.conf

3. 制作模板

3.1 增加 PV 的总量

3.2 增加 5 分钟内访问量 #工夫抉择 5 分钟,而后在依据 zabbix 的简略更改的性能获取 5 分钟内的增量。

3.3 UV 依据 PV 的相似

4. 实现成果

原文地址:http://www.talkwithtrend.com/Article/247773

三、Zabbix 触发器配置指定失效星期

剖析: 心愿在星期一时某一监控阈值在固定较高的位子,其余工夫则默认该监控阈值处在一个较低的固定地位。

上面以监控某一台主机的 CPU 使用率为例:

1、去到某一主机的触发器配置外面,找到原有的 CPU 使用率告警触发器。如图 1.1.

2、进行入下图 2.1 配置。

3、进行下图 3.1、3.2 配置。

4、调整结束,点击“更新”如图 4.1。

框内的表达式示意“CPU 总使用率继续 3 分钟大于 95% 且为周一时”触发重大告警。

5、另外,还要配置多一条针对该监控项的触发器,从新关上该触发器,点击“克隆”,如图 5.1、图 5.2.

图 5.2 中的表达式书写办法与后面差不多,只是运算符号由原来的“=”, 改为”<>”,示意不等于,即是非周一。联合全段表白的内容为“在非周一时段,CPU 使用率继续三分钟大于 65%”。

之后间接点击增加,即实现配置。

原文地址:http://www.talkwithtrend.com/Article/247737

四、如何通过 bat 脚本与 zabbix_sender 实时监控利用过程是否正在运行?

作者:刘俊源

为什么要应用 zabbix_sender?

zabbix 获取数据有超时工夫,如果一些数据须要执行比拟长的工夫能力获取的话,那么 zabbix 会出现异常,思考到这种状况,zabbix 减少了 Trapper 性能,客户端本人提交数据给 zabbix,这个通道便是 trapper。

思路解析: 在 window 主机上, 编写一个每隔 5 秒就会执行 tasklist 查看过程的 bat 脚本, 如果该脚本找到了指定的过程就通过 zabbix_sender 发送“is running”到 zabbix_server 服务器, 此时对应的 zabbix_trapper(zabbix 采集器) 监控项就会获取到“is running”这个最新的数据。如果找不到过程的话, 就通过 zabbix_sender 发送“not running”到 zabbix_server 服务器, 此时 zabbix_trapper(zabbix 采集器) 监控项就会获取到“not running”这个最新的数据。最初还要给这个监控利用过程的服务器设置一个触发器, 如果触发器的值等于 not running 就触发告警。

1. 首先咱们要筹备一个监控利用过程的批处理脚本 (bat 脚本)

@echo off
if “%1” == “h” gotobegin
mshtavbscript:createobject(“wscript.shell”).run(“%~nx0h”,0)(window.close)&&exit
:begin
:start
ping -n 5 127.0.0.1>nul
tasklist|findstr “chrome.exe”
if %errorlevel% == 0 (
“C:ProgramFilesZABBIX_AGENT3binwin64zabbix_sender.exe” -s”zabbix-server” -z 192.168.74.128 -k “test” -o “isrunning”
) else (
“C:ProgramFilesZABBIX_AGENT3binwin64zabbix_sender.exe” -s”zabbix-server” -z 192.168.74.128 -k “test” -o “notrunning”
)
goto start

脚本解析:

@echo off 作用是敞开回显性能。如果没有此代码,第三行的 ping –n 5 127.0.0.1>nul 这个命令就会显示到 cmd 控制台。

if “%1” == “h” gotobegin
mshtavbscript:createobject(“wscript.shell”).run(“%~nx0h”,0)(window.close)&&exit
:begin

这段代码的作用是把 bat 脚本放到后盾运行

Ping –n 5 127.0.0.1>nul 这句代码的意思是 ping 本地地址,有 5 条显示记录(如果要每隔十秒或者几十秒执行脚本,能够批改 - n 前面的参数 ping -n 前面的数字越大,脚本执行的距离越长),而后把 ping 的后果重定向到 nul 就是不会输入内容到 cmd 控制台,(Ping –n 5127.0.0.1>nul 与 goto start 这句语句联合, 实现每 5 秒执行一次这个脚本。)

Tasklist|findstr“chrome.exe”这句代码的作用是列出以后运行的过程,而后通过 findstr 工具查看 chrome.exe 程序有没有运行

%ERRORLEVEL% 是批处理脚本的全局变量,返回上一条命令的后果, 如果上一条命令执行胜利就会返回 0, 否则返回 1.

Goto start 作用是跳转到 start 函数块执行函数里的命令。函数块后面要以冒号结尾,第二行的 start 后面要加冒号

(装置 window 版本的 zabbix_agent 就会附带 zabbix_sender)

zabbix_sender 用法

zabbix_sender –s“zabbix_server 的主机名”-z“zabbix_server 的 IP”-k“键值名”-o“自定义发送的音讯”

“C:ProgramFilesZABBIX_AGENT3binwin64zabbix_sender.exe” -s”zabbix-server” -z 192.168.74.128 -k “test” -o “isrunning” 这条命令是如果存在指定的过程, 就发送 is running

“C:ProgramFilesZABBIX_AGENT3binwin64zabbix_sender.exe” -s “zabbix-server”-z 192.168.74.128 -k “test” -o “not running” 这条命令是如果不存在指定的过程, 就发送 not running

(特地留神: 为了获取到最新数据,所以这两个命令的键值必须应用雷同名称的键值“test”)

2. 在 zabbix_server 界面创立 trapper 监控项

测试成果:

Chorme.exe 程序运行,chorme.exe 运行状态监控项获取到“is running”

Chorme.exe 程序没有运行,chorme.exe 运行状态监控项获取到“not running”

3. 配置触发器, 如果 chorme.exe 服务没有运行就要告警

实际效果, 手动敞开 chorme.exe 服务,触发告警

原文地址:http://www.talkwithtrend.com/Artic

正文完
 0