7、zabbix使用进阶(03)

节知识点:

zabbix自动发现

web监控

zabbix自动发现   官网:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/network_discovery

1、zabbix提供了网络发现功能:network discovery

基于HTTP、ICMP、SSH、LDAP、TCP、SNMP、Telnet、Zabbix_agent等协议的一种扫描指定网络内的主机,从而实现当协议或者服务存在时,可以自动判断为主机或设备是存在的,就会把IP添加到被监控主机列表上。

一旦主机被发现,如何对其进行操作,将由action来决定。

2、LLD:Low Level Discovery 低级发现功能

上面两种发现功能(即动作)Zabbix 所有动作都是基于发现事件,例如:

  • 发送通知
  • 添加/删除主机
  • 启用/禁用主机
  • 添加主机到组
  • 从组中删除主机
  • 将主机链接到/取消链接模板
  • 执行远程脚本命令

基于事件的网络发现动作, 可以根据设备类型、IP地址、状态、运行时间/停机时间等进行配置,查看操作and条件页面。

创建主机

如果在动作→操作选择添加主机操作,那么主机会被添加, 即使添加主机操作未被执行,通过下列的操作仍然可以添加主机,这样的操作是:

  • 启用主机
  • 禁用主机
  • 添加主机到主机组
  • 将主机链接到模板
移除主机

从Zabbix 2.4.0开始,如果已发现的实体不在自动发现规则的IP范围内,则由网络发现规则创建的主机将会被自动删除。主机将立即删除

 

网络发现由两个阶段组成:发现(discovery)和动作(actions)。

网络发现模块每次检测到 service 和 host(IP)都会生成一个 discovery 事件

不支持发现网络拓扑
添加主机时的创建接口:
当网络自动发现,添加主机时,它们的接口根据以下规律来创建的:

网络发现演示:   官网 https://www.zabbix.com/documentation/4.0/zh/manual/discovery/network_discovery/rule

配置环境:

zabbix server:node1 192.168.128.131

zabbix agent: node2 192.168.128.132

zabbix agent: node1 192.168.128.132 (被发现)

 

1、首先同步3台主机的时间

# date; ssh node2 'date'; ssh node3 'date'

Mon Jan 28 11:43:04 CST 2019
Mon Jan 28 11:43:04 CST 2019
Mon Jan 28 11:43:05 CST 2019

2、在node3节点安装zabbix agent程序并启动

# cd /etc/yum.repos.d/

# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm 

# yum install zabbix-agent zabbix-sender

3、修改zabbix-agent的配置文件

# vim /etc/zabbix/zabbix_agentd.conf

#Server=127.0.0.1
Server=192.168.128.131     //修改为server端的IP

#ServerActive=127.0.0.1
ServerActive=192.168.128.131   //自动注册

#Hostname=Zabbix server
Hostname=node3    //本主机的名字

# EnableRemoteCommands=0
EnableRemoteCommands=1     //此处更改为1,表示启用执行远程命令的功能

# LogRemoteCommands=0
LogRemoteCommands=1       //更改为1,表示启用记录远程执行命令的日志功能

4、将node2上定义的user parameters文件复制到node3主机上

# scp /etc/zabbix/zabbix_agentd.d/{mysql.conf,os.conf} root@node3:/etc/zabbix/zabbix_agentd.d/

# systemctl start zabbix-agent

# ps -aux

zabbix 6464 0.0 0.0 80920 1292 ? S 12:01 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 6465 0.0 0.0 80920 1456 ? S 12:01 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 6466 0.0 0.0 80920 1844 ? S 12:01 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 6467 0.0 0.0 80920 1844 ? S 12:01 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 6468 0.0 0.0 80920 1844 ? S 12:01 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]

# ss -tunl   //查看是否监听了10050端口

5、配置zabbix web界面

配置Zabbix的网络发现规则来发现主机和服务:

  • 首先进入 配置 → 自动发现
  • 单击 创建发现规则(Create rule) (或在自动发现规则名称上编辑现有规则)
  • 编辑自动发现规则属性

key的查找方法:

# mysql
MariaDB [zabbix]> use zabbix;
MariaDB [zabbix]> show tables;
MariaDB [zabbix]> desc items;
MariaDB [zabbix]> select key_ from items; //可以取出相关的key

参数描述
名称(Name)规则名称,唯一。 例如: “Local network”。
通过代理发现 (Discovery by proxy)谁执行当前发现规则:What performs discovery:
no proxy - Zabbix server 执行发现
<proxy name> - 这个proxy执行
IP范围(IP range)发现规则中的IP地址范围. 可能的格式如下:
单个IP: 192.168.1.33
IP段: 192.168.1-10.1-255. 范围受限于覆盖地址的总数(小于64K)。
子网掩码: : 192.168.4.0/24
支持的子网掩码:
/16 - /30 for IPv4 addresses
/112 - /128 for IPv6 addresses\\IP列表: 192.168.1.1-255, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24
Zabbix 3.0.0起,此字段支持空格,表格和多行。
Update interval

This parameter defines how often Zabbix will execute the rule.
The interval is measured after the execution of previous discovery instance ends so there is no overlap.
Time suffixes are supported, e.g. 30s, 1m, 2h, 1d, since Zabbix 3.4.0.
User macros are supported, since Zabbix 3.4.0.
Note that if a user macro is used and its value is changed (e.g. 1w → 1h), the next check will be executed

according to the previous value (far in the future with the example values).

检查(Checks)

Zabbix将使用这个检查列表进行发现。
支持的checks: SSH, LDAP, SMTP, FTP, HTTP, HTTPS, POP, NNTP, IMAP, TCP, Telnet,

     Zabbix agent, SNMPv1 agent, SNMPv2 agent, SNMPv3 agent, ICMP ping.
基于协议的发现使用 net.tcp.service[] f功能测试每个主机, 但不包括查询SNMP OID的SNMP协议。                                                                             通过在未加密模式下查询监控项(item)来测试Zabbix agent 。有关更多详情,请参阅agent items

"端口"参数可以是以下之一:
单端口: 22
端口段: 22-45
端口列表: 22-45,55,60-70

设备唯一标识

(Device uniqueness

criteria)

唯一标准如下:
IP地址 - 使用 IP 地址作为设备唯一性标识,不处理多IP设备。如果具有相同IP的设备已经存在,则将认为已经发现,并且不会添加新的主机。
发现检查类型 - 使用 SNMP 或者 Zabbix agent 的 check 作为唯一标识。
启用(Enabled)With the check-box marked the rule is active and will be executed by Zabbix server.
If unmarked, the rule is not active. It won't be executed.

6、定义Template,在发现主机后可以直接套用模板

(1)、先确保主机组存在,因为一旦发现某个主机,通常都要对其进行归组

(2)、在监控时要定义模板,在被监控主机添加后直接链接至此模板,就可以实现监控功能了

(3)、下面分别对此模板中的Applications、items、Graphs等分别进行定义

模板已经准备好了,一旦发现主机,可以直接把此模板套用到主机上 

7、定义动作(action)将所发现的Linux服务器添加到相应的组和模板中,上述只是定义了发现主机,发现主机后还要可以添加主机。

 

发现主机并添加

 

主动注册:auto_registation   官网:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/auto_registration

由于使用discovery方法,zabbix server每个一段时间就要扫描所定义网段(即便之前已经扫描过了),扫描非常消耗资源,所以可以关闭自动发现,改为agent端自动注册。

Active Agent Auto-Registration  适用于不知道哪个网段会出现新的主机

本次使用新主机node4:192.168.128.134作为自动注册主机 

配置过程:

(1)定义agent端

ServerActive=

Server=

Hostname=

ListenIP= 设置为本机某特定IP;

ListenPort=

HostMetadata=

HostMetadataItem=item key,一般使用system.uname

(2)配置action,要求其事件来源为auto-registation

1、同步时间

2、在node4安装zbbix-agent和zabbix-sender,并修改配置文件

# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm 

# yum install zabbix-agent zabbix-sender

# vim /etc/zabbix/zabbix_agentd.conf 

Server=192.168.128.131

ServerActive=192.168.128.131

Hostname=node4

# ListenPort=10050   //监听的地址是10050,如果是默认就不用修改

ListenIP=192.168.128.134   //监听的地址

# systemctl start zabbix-agent

# ss -tunl   //查看是否监听了10050

把discovery和自动注册结合起来使用,即可以定义自动发现的时间是一天扫描一次,而且扫描尽可能广的主机。

上面定义完自动注册功能后,需要在前端即web界面进行配置

Host metadata:每一agent端向server端发送数据时,可以发送自己相关的metadata。

# vim /etc/zabbix/zabbix_agentd.conf 

HostMetadata=node4auto

# systemctl restart zabbix-agent

以上就完成了自动注册。

但是有一个问题,一共配置了四台主机,而在最新数据显示中只有node2主机,自动发现的node3主机和自动注册的node4主机都没有显示最新的数据。

因为两台主机应用的模板中的item是用户自定义的,而自定义没有复制到目标主机上

将模板中用户自定义的item复制到目标主机上

# scp /etc/zabbix/zabbix_agentd.d/{mysql.conf,os.conf} root@node4:/etc/zabbix/zabbix_agentd.d/
# yum install mariadb-server
# vim /etc/my.cnf
skip_name_resolve = on
# systemctl start mariadb

# systemctl restart zabbix-agent

以上配置对于agent来说都是被动监控模式,但是所有active agent是支持主动监控模式的。

主动模式监控配置如下:Configuration --> Hosts --> node4 --> Item --> Create item

LLD:Low Level Discovery    官网:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/low_level_discovery

由于item配置时具有不确定性,比如监控入站流量时,centos6网卡名为eth0,centos7的网卡名ens33,所以使用固定名称是有问题的。所以在这种情况下就用到了LLD。

LLD的主要功能:是识别特定item,并按特定主机返回的数据定义相应的参数。

LLD的两个步骤:

(1)自动发现特定变量的名称;(大多都是针对于网络接口或者文件系统作区别对待,也可以自定义一下发现规则,可能需要写脚本请求某个变量并获取某个变量的值)

项目"net.if.discovery"可能会返回两对:"{#IFNAME}" - >"lo"(接口名)    "{#FSNAME}"文件系统名称    "{#IFNAME}" - >"eth0"网卡名。

(2)添加针对对变量的Items;(服务器端向客户端请求数据时,首先向客户端索取某些特定的信息,而agent端发现时所返回的数据类型为JOSN类型,主要便于数据交换)

 
 
 
 
 
 
 

web监控  https://www.zabbix.com/documentation/4.0/zh/manual/web_monitoring/items

创建web方案

场景参数

参数说明
主机 (Host)场景所属的主机名或模板的名字。
名称 (Name)唯一的场景名称。
Zabbix 2.2 开始,这个名字支持用户宏和 {HOST.*}  。
应用 (Application)选择一个场景属于的应用 。
Web 场景监控项在 监测中 (Monitoring)→最新数据 (Latest data) 栏中将会分组在选择的应用中。
新的应用 (New application)对场景创建个新的应用。
更新间隔 (Update interval) (秒)执行场景时间间隔,以秒为单位。
重试次数 (Attempts)尝试执行 web 场景中步骤的次数。对于网络问题(超时,没有连接,等等) Zabbix 可以多次重复执行步骤。这个数字对场景的中的所有步骤都会生效。尝试次数最大可以设置为 10,默认值为 1。
注意 : Zabbix 不会因为一个错误的响应代码或者期望的字符串没有出现就会触发这个重试。
Zabbix 2.2 开始支持此参数。
代理 (Agent)选择一个客户端。
zabbix 会模拟选择的浏览器,当一个网站对不同的浏览器返回不同的内容的时候是非常有用的。
zabbix 2.2 开始 ,这块可以使用用户自定义宏。
HTTP 代理 (HTTP proxy)您可以指定要使用一个 HTTP 代理,使用格式 http://[username[:password]@]proxy.mycompany.com[:port]
默认使用 1080 端口。
如果指定,代理将覆盖代理相关联的环境变量,比如 http_proxy HTTPS_PROXY。如果没有指定,那么代理将不会覆盖代理相关的环境变量。
输入的值是通过“是 (as is)”, 不需要进行完整性检查。你也可以输入 SOCKS 代理地址。如果您指定了错误的协议,连接会失败,项目将成为不受支持的。没有指定的协议,代理将被视为一个 HTTP 代理、\ 注意 : HTTP 代理仅支持简单身份验证。
此字段中可以使用用户宏。
Zabbix 2.2 开始支持此参数。
变量 (Variables)可以在场景中的步骤(URL,POST 变量)中使用变量。
它们具有以下格式:
{macro1}=value1
{macro2}=value2
{macro3}=regex:<regular expression>
例如:
{username}=Alexei
{password}=kj3h5kJ34bd
{hostid}=regex:hostid is ([0-9]+)
然后可以在{username},{password}和{hostid}的步骤中引用宏。 Zabbix 将自动将其替换为实际值。请注意,使用regex:的变量:需要一个步骤来获取正则表达式的值,因此提取的值只能应用于后续步骤。
如果值部分以 regex: 开头,那么它之后的部分将被视为正则表达式,将搜索网页,如果找到,则将匹配存储在变量中。 注意,必须存在至少一个子组,以便可以提取匹配的值。
Zabbix 2.2 开始支持变量中的正则表达式匹配。
Zabbix 2.2 开始,{HOST.*}  和用户宏可以在此字段中使用。
在查询字段或提交表单数据时,变量会自动进行 URL 编码,但使用 raw 方式提交数据或者直接在 URL 中使用时,必须手动进行 URL 编码
HTTP 头 (Headers)执行请求时将发送的自定义的 HTTP headers。
应使用与在 HTTP 协议中出现的语法相同的语法列出标题,可选地使用 CURLOPT_HTTPHEADER cURL 选项支持的一些其他功能。
例如:
Accept-Charset=utf-8
Accept-Language=en-US
Content-Type=application/xml; charset=utf-8
用户宏和 {HOST.*}  和可以在此字段中使用。
从 Zabbix 2.4 开始支持指定自定义头。
启用 (Enabled)如果选中此复选框,则此场景处于启用状态,否则禁用。

 

转载于:https://www.cnblogs.com/hanshanxiaoheshang/p/10329541.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程目标     全面理解和掌握 Zabbix 监控系统的架构及运行原理,搭建和管理各种规模的Zabbix监控系统 课程简介         Zabbix是一个开源的企业级的监控解决方案。通过Zabbix可以监控IT基础设施的方方面面,包括硬件、操作系统、网络、虚拟化层、中间件和各种业务应用系统。用Zabbix几乎可以监控你想监控的任意数据。              本课程从Zabbix的介绍、安装开始,一步步带你深入Zabbix,通过学习你会:         1、掌握Zabbix各个组件的配置和管理。         2、掌握不同监控项的类型和配置方法,根据监控需求灵活配置监控项。         3、掌握网络发现、低级发现和主动式agent自动注册,实现自动化监控。         4、掌握模版、宏变量、触发器和告警通知的配置和高级的应用方法。         5、掌握图形、屏幕、拓扑图和仪表盘等数据可视化的方法,利用大屏可以实时的展示监控数据。         6、掌握Zabbix系统自身的维护、备份、升级、排障以及性能优化。         7、掌握Zabbix内部运行机制和Zabbix使用技巧,让zabbix更好的帮助你实现监控目标。                  本课程中还包含很多操作演示,比如像创建主机,创建监控项、触发器、图形、全局事件关联等,也介绍了微信和钉钉告警的配置方法。当你对Zabbix深入了解之后,面对层出不穷的新业务、新应用,你都能轻松自如的制定和提供相应的监控解决方案。 特别提示:官网的中文文档有些地方翻译的有问题,一定要以英文文档为准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值