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=<key>,<command>

 2、用法

先在/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,服务端测试也没问题

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

测试也没问题

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

 

 这样就可以了(也可以在后面查看它的图形)

二、 用法升级

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

① 命令行查询参数的命令

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

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

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

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

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

3、在监控项配置

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

然后给模版创建监控项

 

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

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

三、使用用户参数监控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服务

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

先创建一个脚本文件

[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 

 接下来我们学个新东西!!!!

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

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

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

 设置自动发现规则

 然后创建一个动作,发现以后要执行的actions

 

 然后我们看效果,已经监测到该主机了

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

 

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

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

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
钉钉是一种流行的即时通讯工具,可以与Zabbix集成,实现实时的报警通知。下面是将Zabbix与钉钉集成的实战步骤: 1. 在钉钉中创建群组:首先,在钉钉中创建一个群组,用于接收Zabbix的报警通知。 2. 创建自定义机器人:在钉钉群组中,点击右上角的设置按钮,选择“智能群助手”->“自定义机器人”->“添加机器人”。选择“自定义”类型,并为机器人取一个名称,例如“Zabbix报警机器人”。 3. 获取Webhook地址:创建机器人后,将会生成一个Webhook地址,该地址用于与Zabbix进行集成。将该地址复制一份备用。 4. 配置Zabbix动作:在Zabbix管理界面中,进入“配置”->“动作”,点击“创建动作”按钮。在触发条件中,配置需要触发报警的条件。在操作选项中,选择“发送消息”并点击“添加新操作”。 5. 配置操作:在操作选项中,选择“发送到用户组”,并选择接收报警通知的用户组。在发送媒介类型中,选择“自定义脚本”。在脚本名称中填写一个名称(例如“钉钉报警”),并在脚本参数中填写Webhook地址。 6. 下载脚本文件:在Zabbix服务器上创建一个脚本文件,用于发送报警通知到钉钉。你可以使用Python、Shell等脚本语言编写该文件。以下是一个Python脚本的示例: ```python import requests import sys def send_to_dingtalk(webhook, message): headers = {'Content-Type': 'application/json'} data = { "msgtype": "text", "text": { "content": message } } response = requests.post(webhook, headers=headers, json=data) if response.status_code != 200: print('F

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值