Zabbix实战

目录

一、Userparameters 用户参数

1、概念

 2、用法

二、 用法升级

1、修改agent 端的配置,设置用户参数

2、在zabbix-server 端,查询使用这个用户参数的key

3、在监控项配置

三、使用用户参数监控php-fpm 服务的状态

1、下载,设置php-fpm

2、设置nginx ,设置代理php,和php-fpm的状态页面匹配

四、网络发现(自动化监测添加主机)

1、概念

2、实战


一、Userparameters 用户参数

1、概念

自定义用户参数,也就是自定义key

有时,你可能想要运行一个代理检查,而不是Zabbix的预定义

你可以编写一个命令来检索需要的数据,并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中

用法格式:UserParameter=,

 2、用法

先在/etc/zabbix/zabbix_agentd.d/ 目录下创建一个配置文件 (只要是以.conf结尾的文件就行)

[root@web1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@web1 ~]# vim memory_usage.conf

以下图为例

Zabbix实战_第1张图片

在配置文件里面添加

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"

Zabbix实战_第2张图片

由此可见能获取到值,没问题,接下来准备在浏览器配置  

首先我们还是创建一个主机,然后利用我们自定义键值给他配置监控项(下图字符类型也可以)

Zabbix实战_第3张图片 Zabbix实战_第4张图片

经过测试也没问题,然后添加即可

我们在监测最新数据里面也能看到了

Zabbix实战_第5张图片

 我们再来创建一个监控项还是以内存为例(这里我们换一种数值类型,下图数值732752是KB)

Zabbix实战_第6张图片

同样在配置文件写入

然后重启zabbix-agent,服务端测试也没问题

 再到浏览主机创建一个监控项

Zabbix实战_第7张图片

测试也没问题

Zabbix实战_第8张图片

 然后我们在最新数据里面观察一下,发现显示有问题,修改一下 

Zabbix实战_第9张图片

 

Zabbix实战_第10张图片 这样就可以了(也可以在后面查看它的图形)

Zabbix实战_第11张图片

二、 用法升级

1、修改agent 端的配置,设置用户参数

① 命令行查询参数的命令

Zabbix实战_第12张图片

② 修改配置文件,把查找参数的命令设为用户参数  

Zabbix实战_第13张图片

UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}'

分析:$$2:表示不是前边调位置参数的$2 ,而是awk 的参数$2

注意:$1是调用前边的[*],位置参数,第一个参数

2、在zabbix-server 端,查询使用这个用户参数的key

3、在监控项配置

 可以用这个创建一个监控模板,主机直接链接模板就行了

Zabbix实战_第14张图片

然后给模版创建监控项

 Zabbix实战_第15张图片

也可以在预处理里面设置自定义倍数,这样他们表达的数据模式就能一样单位了(图形里面体现比较明显)

Zabbix实战_第16张图片

Zabbix实战_第17张图片

 接下来模板链接到主机就可以了,查看最新数据

Zabbix实战_第18张图片

三、使用用户参数监控php-fpm 服务的状态

在agent 端:

1、下载,设置php-fpm

① 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 开启服务

2、设置nginx ,设置代理php,和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服务

Zabbix实战_第19张图片

这时候我们就可以使用用户参数来设置了

先创建一个脚本文件

[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测试一下,可以看到能获取到值

Zabbix实战_第20张图片

 PHP: 状态页面 - Manual

 Zabbix实战_第21张图片

 然后就可以创建监控项了,跟上个类似

Zabbix实战_第22张图片

Zabbix实战_第23张图片 Zabbix实战_第24张图片

Zabbix实战_第25张图片 这里我们简单创建了三个

Zabbix实战_第26张图片

然后我们可以给这个两个模板的监控项创建图形(创建图形详情见Zabbix5.0安装部署-CSDN博客)这里我们创建一个聚合图形

我们也可以把两个或者多个监控项创建在一个图形里

Zabbix实战_第27张图片

Zabbix实战_第28张图片

我们创建了4个图形,所以这里选择2X2就行了

Zabbix实战_第29张图片 创建完以后,选择构建函数,把四个图形添加进去

Zabbix实战_第30张图片

 Zabbix实战_第31张图片

因为我们创建在模板里面的,所以最后需要链接主机,看效果

Zabbix实战_第32张图片 Zabbix实战_第33张图片

监测最新数据

Zabbix实战_第34张图片主机=====》聚合图形 

Zabbix实战_第35张图片

ok 

Zabbix实战_第36张图片 接下来我们学个新东西!!!!

四、网络发现(自动化监测添加主机)

1、概念

网络发现: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 接口

  不同的主机如果返回了相同的数据,则第一个主机将被添加,余下的主机会被当作第一个主机的额外接口

2、实战

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

Zabbix实战_第37张图片

方便测试,我们把搜索ip的范围减小一点,避免消耗太大的资源和时间

 设置自动发现规则

Zabbix实战_第38张图片 然后创建一个动作,发现以后要执行的actions

Zabbix实战_第39张图片

Zabbix实战_第40张图片 Zabbix实战_第41张图片

Zabbix实战_第42张图片 然后我们看效果,已经监测到该主机了

Zabbix实战_第43张图片

已经添加成功,并且链接模版 (添加成功以后就把自动发现动作关闭,否则一直会给我们发邮件,因为我设置的3s,便于实验)

Zabbix实战_第44张图片 Zabbix实战_第45张图片

 这些自定义模板没有信息我们可以把web1的配置脚本发送给web2

Zabbix实战_第46张图片

Zabbix实战_第47张图片 然后web2重启agent,现在就有数据了,上图那个ip写错了,拷贝到本机了,重启拷一份就行,php的也一样,这里就不配置了(安装nginx,php-fpm关联)

Zabbix实战_第48张图片

你可能感兴趣的:(zabbix,zabbix,linux,运维)