目录
一、Userparameters 用户参数
1、概念
2、用法
二、 用法升级
1、修改agent 端的配置,设置用户参数
2、在zabbix-server 端,查询使用这个用户参数的key
3、在监控项配置
三、使用用户参数监控php-fpm 服务的状态
1、下载,设置php-fpm
2、设置nginx ,设置代理php,和php-fpm的状态页面匹配
四、网络发现(自动化监测添加主机)
1、概念
2、实战
自定义用户参数,也就是自定义key
有时,你可能想要运行一个代理检查,而不是Zabbix的预定义
你可以编写一个命令来检索需要的数据,并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中
用法格式:UserParameter=
先在/etc/zabbix/zabbix_agentd.d/ 目录下创建一个配置文件 (只要是以.conf结尾的文件就行)
[root@web1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@web1 ~]# vim memory_usage.conf
以下图为例
在配置文件里面添加
UserParameter=Mem.used,free -h | awk '/^Mem/{print $3}'
添加完以后重启zabbix-agent
[root@web1 zabbix_agentd.d]# systemctl restart zabbix-agent
重启完以后我们可以试试在server端能不能获取到这个值(前提是server端跟agent端配置好,并且agent配置文件已经关联好了server端,详情见Zabbix5.0安装部署-CSDN博客)
用法:先在server端安装一个命令 zabbix_get
zabbix_get -s (server)ip -p 10050 -k "key名称"
[root@zabbix-server ~]# yum -y install zabbix-get
[root@zabbix-server ~]# zabbix_get -s 10.12.153.239 -p 10050 -k "Mem.used"
由此可见能获取到值,没问题,接下来准备在浏览器配置
首先我们还是创建一个主机,然后利用我们自定义键值给他配置监控项(下图字符类型也可以)
经过测试也没问题,然后添加即可
我们在监测最新数据里面也能看到了
我们再来创建一个监控项还是以内存为例(这里我们换一种数值类型,下图数值732752是KB)
同样在配置文件写入
然后重启zabbix-agent,服务端测试也没问题
测试也没问题
然后我们在最新数据里面观察一下,发现显示有问题,修改一下
① 命令行查询参数的命令
② 修改配置文件,把查找参数的命令设为用户参数
UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}'
分析:$$2:表示不是前边调位置参数的$2 ,而是awk 的参数$2
注意:$1是调用前边的[*],位置参数,第一个参数
可以用这个创建一个监控模板,主机直接链接模板就行了
然后给模版创建监控项
也可以在预处理里面设置自定义倍数,这样他们表达的数据模式就能一样单位了(图形里面体现比较明显)
接下来模板链接到主机就可以了,查看最新数据
在agent 端:
① yum -y install php-fpm
② vim /etc/php-fpm.d/www.conf 打开php-fpm的状态页面
user = nginx
group = nginx
pm.status_path = /php-fpm-status #php-fpm 的状态监测页面
ping.path = /ping #ping 接口,存活状态是否ok
ping.response = pong #响应内容pong
③ systemctl start php-fpm 开启服务
① vim /etc/nginx/conf.d/default.conf
server{
listen 80;
server_name = localhost;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* /(php-fpm-status|ping) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1; #因为这个页面很重要,所有需加访问控制
deny all;
access_log off; #访问这个页面就不用记录日志了
}
}
②开启nginx服务
这时候我们就可以使用用户参数来设置了
先创建一个脚本文件
[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/php-fpm.conf
UserParameter=php-fpm-status[*],curl -s 127.0.0.1/php-fpm-status | awk '/^$1/{print $$NF}'
跟上个类似,重启agent测试一下,可以看到能获取到值
PHP: 状态页面 - Manual
然后就可以创建监控项了,跟上个类似
然后我们可以给这个两个模板的监控项创建图形(创建图形详情见Zabbix5.0安装部署-CSDN博客)这里我们创建一个聚合图形
我们也可以把两个或者多个监控项创建在一个图形里
我们创建了4个图形,所以这里选择2X2就行了
因为我们创建在模板里面的,所以最后需要链接主机,看效果
监测最新数据
ok
网络发现:zabbix server扫描指定网络范围内的主机;
网络发现是zabbix 最具特色的功能之一,它能够根据用户事先定义的规则自动添加监控的主机或服务等
优点:
加快Zabbix部署
简化管理
在快速变化的环境中使用Zabbix,而不需要过度管理
发现方式:
ip地址范围;
可用服务(ftp, ssh, http, ...)
zabbix_agent的响应;
snmp_agent的响应;
网络发现通常包含两个阶段:discovery发现 和actions动作
① discovery:
Zabbix定期扫描网络发现规则中定义的IP范围;检查的频率对于每个规则都是可配置的
每个规则都有一组用于为IP范围执行的服务检查
由网络发现模块执行的服务和主机(IP)的每个检查都会生成一个发现事件
② actions:网络发现中的事件可以触发action,从而自动执行指定的操作,把discvery events当作前提条件;
Sending notifications 发送通知
Adding/removing hosts 添加/删除主机
Enabling/disabling hosts 启用/禁用host
Adding hosts to a group 向组中添加主机
Removing hosts from a group 移除组中的主机
Linking hosts to/unlinking from a template 从模板链接主机或取消链接
Executing remote scripts 执行远程脚本
这些事件的配置还可以基于设备的类型、IP 、状态、上线/ 离线等进行配置
网络发现:接口添加
网络发现中添加主机时会自动创建interface 接口
例如:
如果基于SNMP 检测成功,则会创建SNMP 接口
如果某服务同时响应给了agent 和SNMP ,则两种接口都会创建
如果同一种发现机制( 如agent) 返回了非唯一数据,则第一个接口被识别为默认,其它的为额外接口
即便是某主机开始时只有agent 接口,后来又通过snmp 发现了它,同样会为其添加额外的snmp 接口
不同的主机如果返回了相同的数据,则第一个主机将被添加,余下的主机会被当作第一个主机的额外接口
1、准备一台可以被扫描的主机
环境准备
[root@web2 ~]# yum -y install zabbix-agent zabbix-sender
注:zabbix_sender是Zabbix监控系统中用于向Zabbix-server服务器发送数据的命令行工具(详情见zabbix_sender基础命令浅析)
设置agent 配置,可以把之前设置好的web1的配置传过来
Server=10.12.153.203
ServerActive=10.12.153.203
Hostname=web2
visudo 修改sudo的配置
root ALL=(ALL) ALL
zabbix ALL=(ALL) NOPASSWD: ALL
启动服务
[root@web2 ~]# systemctl restart zabbix-agent
方便测试,我们把搜索ip的范围减小一点,避免消耗太大的资源和时间
设置自动发现规则
已经添加成功,并且链接模版 (添加成功以后就把自动发现动作关闭,否则一直会给我们发邮件,因为我设置的3s,便于实验)
这些自定义模板没有信息我们可以把web1的配置脚本发送给web2
然后web2重启agent,现在就有数据了,上图那个ip写错了,拷贝到本机了,重启拷一份就行,php的也一样,这里就不配置了(安装nginx,php-fpm关联)