Zabbix Item各类型讲解

Agent

Zabbix Agent有被动和主动代理检查。 配置Items时,可以选择需要的类型:

  • Zabbix agent - 用于被动检查
  • Zabbix agent (active) - 用于主动检查

 注:如果与agent 被动模式一起使用,zabbix server或proxy配置文件中超时时间需要大于或等于agent配置文件中超时时间

 snmp agent/traps

SNMP 通过轮询或陷阱两种方式工作。

轮训:

   A 点(Zabbix 服务器或代理)可以通过 SNMP 协议从 B 点(网络设备)轮询数据:连接到设备,轮询 OID 或 MIB,获取值,然后关闭连接。

陷阱:

  另一种方法是通过 SNMP 陷阱监视网络设备。 但不是 Zabbix 服务器连接到网络设备,而是配置为决定何时何地发送 SNMP 陷阱的设备。

 与 SNMP 代理相比,SNMP 陷阱有什么好处?

  代理以更新间隔轮询数据。 如果一个重要指标在更新间隔之间失败,我们将无法做出反应,而且可能产生金钱损失。 使用 SNMP 陷阱,一旦事件发生,设备将立即向 Zabbix 服务器发送陷阱,您将收到通知或执行远程命令。

SNMP traps设置步骤:

  • 安装附加软件包 net-snmp-utils、net-snmp-perl 和 net-snmp: 
yum install −y net-snmp-utils net-snmp-perl net-snmp
  • 下载并解压 Zabbix 源代码。
wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.10.tar.gz
  • 从 misc 文件夹复制脚本
cp zabbix-_._._/misc/snmptrap/zabbix_trap_receiver.pl /tmp/zabbix_trap_receiver.pl

  注:上边命令将文件放到了/tmp临时文件,生产环境中也可以放到其他目录

  • 给复制的文件添加执行权限
chmod +x /tmp/zabbix_trap_receiver.pl
  •  配置陷阱接受者和community名称
vi /etc/snmp/snmptrapd.conf

  如下配置增加到配置文件中,对conf文件保存并退出

authCommunity execute public
perl do "/tmp/zabbix_trap_receiver.pl";

    这会将用于身份验证的社区名称设置为“public”,并配置每次收到陷阱时执行的脚本。

  • 通过编辑 Zabbix 服务器配置文件启用 SNMP 陷阱。打开配置文件并搜索“/SNMP”。
vim /etc/zabbix/zabbix_server.conf
  • 这将是一个读取 zabbix_traps.tmp 文件的内部进程,perl 脚本在该文件中写入接收和翻译的陷阱。
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp (must be same as in zabbix_trap_receiver.pl)

  本质上,发生的事情是这样的:

  • 设备向虚拟机发送一个陷阱,由二进制 SnmptrapD 接收。
  • SnmptrapD 执行 perl 脚本,将陷阱转换为适合 Zabbix 服务器的格式(基本上是添加一个标头)。
  • 翻译后,陷阱保存到/tmp/zabbix_traps.tmp。
  • SNMP 陷阱检查文件是否有新陷阱并将它们与主机匹配。
  •  Finally, restart Zabbix server processes for changes to take effect:
systemctl restart zabbix-serverc
  •  查看SNMP trapper process是否随zabbix server启动成功

  • 测试 

  snmp trap支持两个key:

 

  •  snmptrap[regexp]:捕获与 regexp 中指定的正则表达式匹配的所有 SNMP 陷阱。 如果未指定 regexp,则捕获任何陷阱。
  • snmptrap.fallback:捕获该接口的任何 snmptrap[] 项未捕获的所有 SNMP 陷阱。

  Type of information — ‘Text’.

   通过snmptt监控snmptrap可以参考链接  

        通过Perl traps可以参考链接

 Simple checks

        简单检查通常用于服务的远程无代理检查。

  请注意,简单检查不需要 Zabbix agent。 Zabbix server/proxy 负责处理简单的检查(建立外部连接等)。

Internal checks

指标名称 指标解释
zabbix[boottime] Zabbix server或 Zabbix proxy进程的启动时间,以秒为单位。
zabbix[cluster,discovery,nodes] 发现高可用性集群节点。
 zabbix[history] 存储在 HISTORY 表中的值的数量,zabbix6.0已经弃用
 zabbix[history_log] 存储在 HISTORY_LOG 表中的值的数量,zabbix6.0已经弃用
 zabbix[history_str] zabbix6.0已经弃用
 zabbix[history_text] zabbix6.0已经弃用
 zabbix[history_uint] zabbix6.0已经弃用 
 zabbix[host,,items] 主机上启用的项目数(包括支持和不支持)
 zabbix[host,,items_unsupported] 主机上启用的不受支持的项目数
 zabbix[host,,maintenance] 主机的当前维护状态
 zabbix[host,discovery,interfaces] Zabbix 前端中主机的所有配置接口的详细信息
 zabbix[host,<type>,available] 检查主机上特定类型的主界面的可用性
 zabbix[hosts] 受监控的主机数
 zabbix[items] 启用的项目数(支持和不支持)。
 zabbix[items_unsupported] 不支持的项目数
 zabbix[java,,<param>] 关于 Zabbix Java 网关的信息
 zabbix[lld_queue] 在低级发现处理队列中排队的值的计数
 zabbix[preprocessing_queue] 在预处理队列中排队的值的计数
 zabbix[process,<type>,<mode>,<state>] zabbix server和proxy各进程使用率
zabbix[proxy,<name>,<param>]

 关于 Zabbix proxy的信息,可以获取proxy时间戳以及数据传输是否有延迟

zabbix[proxy_history] proxy历史表中等待发送到server的值的数量
zabbix[queue,<from>,<to>] 受监控项目数在队列中至少延迟 <from> 秒但小于 <to> 秒的一个数量
zabbix[rcache,<cache>,<mode>] Zabbix 配置缓存的可用性统计。
zabbix[requiredperformance] Zabbix 服务器或 Zabbix 代理所需的性能,以每秒预期的新值表示。
zabbix[stats,<ip>,<port>]  
zabbix[stats,<ip>,<port>,queue,<from>,<to>]  
zabbix[tcache,cache,<parameter>] Effectiveness statistics of the Zabbix trend function cache.
zabbix[trends] TRENDS 表中存储的值的数量,zabbix6.0已经弃用
zabbix[trends_uint] zabbix6.0已经弃用
zabbix[triggers] Zabbix 数据库中启用的触发器的数量,所有项目都在启用的主机上启用。
zabbix[uptime] Zabbix 服务器或 Zabbix 代理进程的正常运行时间(以秒为单位)
zabbix[vcache,buffer,<mode>] Zabbix 值缓存的可用性统计
zabbix[vcache,cache,<parameter>] Zabbix 值缓存的有效性统计
zabbix[version] Zabbix 服务器或代理的版本
zabbix[vmware,buffer,<mode>] Zabbix vmware 缓存的可用性统计。
zabbix[wcache,<cache>,<mode>] Zabbix 写缓存的统计和可用性。

SSH checks

SSH 检查作为无agent监控执行。 SSH 检查不需要 Zabbix agent

密码验证

  SSH 检查提供两种身份验证方法,用户/密码对和基于密钥文件

基于秘钥文件:

  要对 SSH 项目使用基于密钥的身份验证,需要对服务器配置进行某些更改。

# SSHKeyLocation=

  取消注释并设置公钥和私钥所在文件夹的完整路径

SSHKeyLocation=/home/zabbix/.ssh

  现在可以通过命令执行生成公钥和私钥的步骤:

# sudo -u zabbix ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zabbix/.ssh/id_rsa): 
Created directory '/home/zabbix/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/zabbix/.ssh/id_rsa.
Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub.
The key fingerprint is:
90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|       .         |
|      o          |
| .     o         |
|+     . S        |
|.+   o =         |
|E .   * =        |
|=o . ..* .       |
|... oo.o+        |
+-----------------+

  注:ssh-keygen 工具和 SSH 服务器可能支持“rsa”以外的密钥类型,但 Zabbix 使用的 libssh2 可能不支持它们。

  通过使用以下命令,可以将公钥文件安装在远程主机 10.10.10.10 上,以便可以使用 root 帐户执行 SSH 检查:

# sudo -u zabbix ssh-copy-id root@10.10.10.10
The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.
RSA key fingerprint is 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.10.10.10' (RSA) to the list of known hosts.
root@10.10.10.10's password: 
Now try logging into the machine, with "ssh 'root@10.10.10.10'", and check in:
  .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

  现在可以使用 zabbix 用户帐户的默认私钥 (/home/zabbix/.ssh/id_rsa) 检查 SSH 登录:

# sudo -u zabbix ssh root@10.10.10.10

  External checks

  在zabbix server configuation 配置文件中有个参数“ExternalScripts”,用来放外部执行脚本,注意脚本权限以及用户所有权限的命令都应该在脚本中定义好。

  不要过度使用外部检查! 由于每个脚本都需要由 Zabbix 服务器启动一个 fork 进程,运行许多脚本会大大降低 Zabbix 性能。

 JMX monitoring

  关于通过JMX协议监控java应用程序,可以参考链接

   Dependent items

  某些情况下,一个item收集一个指标,通过Dependent可以将一次将内容拆分为多个指标,参考链接

  HTTP agent

  此项目类型允许使用 HTTP/HTTPS 协议进行数据轮询。 使用 Zabbix sender 或 Zabbix sender 协议也可以进行捕获。

  HTTP 项目检查由 Zabbix 服务器执行。 但是,当主机被 Zabbix 代理监控时,HTTP 项目检查由代理执行。

  HTTP 项目检查不需要在被监控的主机上运行任何代理。

  注:Zabbix server/proxy 必须初始配置为支持 cURL (libcurl)。

    

 

posted @ 2022-02-10 10:22  摩天居士-谢烟客  阅读(497)  评论(0)    收藏  举报