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

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

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

phpzabbix企业级监控对象运用实战zabbix操作进阶 GraphQL

② 用法格式 syntax

UserParameter=<key>,<command>  A user parameter also contains a key  一个用户参数也包含一个键  The key will be necessary when configuring an item   在配置监控项时,key是必需的  Note: Need to restart the agent   把稳:须要重新启动agent 做事2、用法展示

(1)修正agent 真个配置,设置用户参数

① free | awk '/^Mem/{print $3}' 自己须要查找的参数的命令

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

cd /etc/zabbix/zabbix_agentd.d/vim memory_usage.confUserParameter=memory.used,free | awk '/^Mem/{print $3}'

③ systemctl restart zabbix-agent.service 重启agent 做事

(2)在zabbix-server 端,查询

zabbix_get-s192.168.30.7-p10050-k"memory.used"

(3)在监控上,设置一个item监控项,利用这个用户参数

(4)查询graph 图形

3、用法升级

(1)修正agent 真个配置,设置用户参数

① 命令行查询参数的命令

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

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

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

把稳:$1是调用前边的[],位置参数,第一个参数

(2)在zabbix-server 端,查询利用这个用户参数的key

(3)在监控上,设置一个item监控项,利用这个用户参数

① 添加Memory Total 的item监控项,利用memory.stats[MemTotal] 的用户参数

在进程中定义倍数,规定单位

② clone 克隆Memory Total 创建Memory Free 的监控项

memory.stats[MemFree] 用户参数

③ 创建Memory Buffers 的item 监控项,利用 memory.stats[Buffers] 的key

(4)上面3个监控项的graph 图形

① memory total

② memory free

③ buffers

4、利用用户参数监控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/nginx.conflocation ~ .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; #访问这个页面就不用记录日志了 }

② systemctl start nginx 开启nginx做事

(3)在agent 端,设置用户参数

① 查询 curl 192.168.30.7/php-fpm-status

② 设置

cd /etc/zabbix/zabbix_agentd.d/vim php_status.confUserParameter=php-fpm.stats[],curl -s http://127.0.0.1/php-fpm-status | awk '/^$1/{print $$NF}'

剖析:设置用户参数为php-fpm.stats[],1为第一个参数;1为第一个参数;$NF为awk中的参数,倒数第一列

③ 重启做事

systemctl restart zabbix-agent

(4)在zabbix-server 端,查询利用这个用户参数的key

zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[idle]"zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[active]"zabbix_get -s 192.168.30.7 -p 10050 -k "php-fpm.stats[max active]"

(5)创建一个模板,在模板上创建4个item监控项,利用定义的用户参数

① 创建一个模板

② 在模板上配置items 监控项,利用刚定义的用户参数

fpm.stats[total processes]

③ 再clone克隆几个items监控项

fpm.stats[active processes]

④ fpm.stats[max active processes]

⑤ fpm.stats[idle processes]

(6)host主机链接模板

(7)查看graph 图形

① php-fpm total processes

② php-fpm active processes

③ php-fpm max active processes

④ php-fpm idle processes

(8)把模板导出,可以给别人利用

① 导出模板

最下面有导出

② 自己定义用户参数的文件,也不要忘却导出

/etc/zabbix/zabbix_agentd.d/php_status.conf

二、Network discovery 网络创造1、先容

(1)先容

网络创造:zabbix server扫描指定网络范围内的主机;

网络创造是zabbix 最具特色的功能之一,它能够根据用户事先定义的规则自动添加监控的主机或做事等

优点:

  加快Zabbix支配

  简化管理

在快速变革的环境中利用Zabbix,而不须要过度管理

(2)创造办法:

ip地址范围;

  可用做事(ftp, ssh, http, ...)

  zabbix_agent的相应;

snmp_agent的相应;

(3)网络创造常日包含两个阶段:discovery创造 和actions动作

① discovery:

Zabbix定期扫描网络创造规则中定义的IP范围;检讨的频率对付每个规则都是可配置的

每个规则都有一组用于为IP范围实行的做事检讨

由网络创造模块实行的做事和主机(IP)的每个检讨都会天生一个创造事宜

8种相应事宜

② 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 、状态、上线/ 离线等进行配置

(4)网络创造:接口添加

网络创造中添加主机时会自动创建interface 接口

例如:

  如果基于SNMP 检测成功,则会创建SNMP 接口

  如果某做事同时相应给了agent 和SNMP ,则两种接口都会创建

  如果同一种创造机制( 如agent) 返回了非惟一数据,则第一个接口被识别为默认,其它的为额外接口

  即便是某主机开始时只有agent 接口,后来又通过snmp 创造了它,同样会为其添加额外的snmp 接口

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

2、配置网络创造Network discovery

(1)准备一台可被扫描创造的主机

① 安装agent 段的包

yum -y install zabbix-agent zabbix-sender

② 设置agent 配置,可以把之前设置好的node1的配置传过来

vim /etc/zabbix/zabbix_agentd.conf

Hostname=http://node2.along.com #只需修正hostname

③ visudo 修正sudo的配置

Defaults !visiblepw

zabbix ALL=(ALL) NOPASSWD: ALL

④ 开启做事

systemctl start zabbix-agent

(2)设置自动创造规则discovery

注释:

① key:zabbix_get -s 192.168.30.2 -p 10050 -k "system.hostname"

② 更新间隔:1h就好,不要扫描太过频繁,扫描全体网段,太废资源;这里为了实验,设为1m

(3)自动创造成功

(4)设置自动创造discovery 的动作action

a) 创建

b) 设置action动作

① 设置A条件,自动创造规则=http://test.net

② 设置B条件,自动创造状态=up

③ 要做什么操作

添加主机到监控

自动链接Template OS Linux 到此host

c) 配置action 完成,默认是disabled 停用的

d) 启用动作,查看效果

确实已经生效,添加主机成功,模板链接成功

(5)如果自己须要添加的主机已经扫描添加完成,就可以关闭网络扫描了,由于太耗资源

三、web监控1、先容

(1)先容

① Web监控:监控指定的站点的资源下载速率,及页面相应韶光,还有相应代码

② 术语:

  web Scenario: web场景(站点)

  web page :web页面,一个场景有多个页面

  內建key:要测一个页面,要测三个步骤(下边3个內建key)

③ 内建key:

   http://web.test.in[Scenario,Step,bps]:传输速率

   web.test.time[Scenario,Step]: 相应时长

   web.test.rspcode[Scenario,Step]:相应码

2、创建设置web场景

(1)创建

(2)配置web 监测

① 点击步骤,设置web page web页面

a) 设置名为home page,URL为http://192.168.30.7/index.html 的web页面

b) 设置名为fpm status,URL为http://192.168.30.7/fpm-status 的web页面

c) 设置2个web页面成功

② 如果有分外认证,也可以添加

3、查看测试

四、主动/被动 监控1、先容

(1)主动/被动先容

  被动检测:相对付agent而言;agent, server向agent要求获取配置的各监控项干系的数据,agent吸收要求、获取数据并相应给server;

  主动检测:相对付agent而言;agent(active),agent向server要求与自己干系监控项配置,主动地将server配置的监控项干系的数据发送给server;

  主动监控能极大节约监控server 的资源。

(2)zabbix_sender发送数据:实现人工天生数据,发给server端

① zabbix server上的某主机上,直接定义Item时随便定义一个不与其它已有key冲突的key即可,即item type为"zabbix trapper";

② 用法选项:

zabbix_sender

  -z zabbix_server_ip

  -p zabbix_server_port

  -s zabbix_agent_hostname

  -k key

  -o value 值

2、设置一个通过內建key发送数据的主动监控

(1)agent端所须要基本配置:

ServerActive=192.168.30.107 给哪个监控server 发送数据 Hostname=http://node1.along.com 自己的主机名,假设主机定去世了,不设置下一项 #HostnameItem= 如果自己的主机名易变动,这一项相称于key一样去匹配

把稳:若后两项同时启用,下边一个选择生效

(2)设置一个主动监测

① 选择进程,每秒变动,

由于key:system.cpu.switches :高下文的数量进行切换,它返回一个整数值。
为了监控效果,选择下一秒减上一秒的值作为监控

(3)已经有啦graph图形

3、设置一个通过命令zabbix_sender发送数据的主动监控

(1)配置一个zabbix traper(采集器) 的item 监控项

(2)agent 端手动发送数据

(3)监控到数据的变革

五、基于SNMP监控(理解)1、先容

(1)先容

SNMP:大略网络管理协议;(非常古老的协议)

三种通信办法:读(get, getnext)、写(set)、trap(陷阱);

端口:

  161/udp

  162/udp

SNMP协议:年代久远

  v1: 1989

v2c: 1993

  v3: 1998

监控网络设备:交流机、路由器

MIB:Management Information Base 信息管理根本

OID:Object ID 工具ID

(2)Linux启用snmp的方法:

yum install net-snmp net-snmp-utils

配置文件:定义ACL

  /etc/snmp/snmpd.conf

启动做事:

  systemctl start snmpd 被监控端开启的做事

   systemctl start snmptrapd 监控端开启的做事(如果许可被监控端启动主动监控时启用)

(3)配置文件的先容

开放数据:4步

① 定义认证符,将社区名称"public"映射为"安全名称"

② 将安全名称映射到一个组名

③ 为我们创建一个视图,让我们的团队有权利

掩码:我列出一些注释,有很多,可以再网上查询

.1.3.6.1.2.1.

   1.1.0:系统描述信息,SysDesc

   1.3.0:监控韶光, SysUptime

   1.5.0:主机名,SysName

   1.7.0:主机供应的做事,SysService

.1.3.6.1.2.2.

   2.1.0:网络接口数目

   2.2.1.2:网络接口的描述信息

   2.2.1.3:网络接口类型

   ……

④ 付与对systemview视图的只读访问权

(4)测试工具:

snmpget -v 2c -c public HOST OIDsnmpwalk -v 2c -c public HOST OID 通过这个端口查询到的数据,全列出了

2、配置SNMP监控

(1)下载,修正配置文件

vim /etc/snmp/snmpd.conf

view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.2 # 网络接口的干系数据 view systemview included .1.3.6.1.4.1.2021 # 系统资源负载,memory, disk io, cpu load view systemview included .1.3.6.1.2.1.25

(2)在agent 上测试

snmpget -v 2c -c public 192.168.30.2 .1.3.6.1.2.1.1.3.0

snmpget -v 2c -c public 192.168.30.2 .1.3.6.1.2.1.1.5.0

(3)在监控页面,给node2加一个snmp的接口

(4)在node2上加一个 Template OS Linux SNMPv2 模板

模板添加成功,天生一系列东西

点开一个item 看一下

(5)天生一些最新数据的图形graph了

3、设置入站出站packets 的SNMP监控

(1)监控网络设备:交流机、路由器的步骤:

① 把交流机、路由器的SNMP 把对应的OID的分支启用起来

② 理解这些分支下有哪些OID,他们分别表示什么意义

③ 我们要监控的某一数据:如交流机的某一个接口流量、报文,发送、传入传出的报文数有多少个;传入传出的字节数有多少个,把OID取出来,保存

(2)定义入站出站的item监控项

interface traffic packets(in)

interface traffic packets(out)

六、JMX接口

1、先容

(1)先容

Java虚拟机(JVM)具有内置的插装,使您能够利用JMX监视和管理它。
您还可以利用JMX监视工具化的运用程序。

(2)配置设置先容

① zabbix-java-gateway主机设置:

  安装 zabbix-java-gateway程序包,启动做事;

yum -y install zabbix-java-gateway

② zabbix-server端设置(须要重启做事):

JavaGateway=172.16.0.70

JavaGatewayPort=10052

StartJavaPollers=5 #监控项

③ tomcat主机设置:

   监控tomcat:

     /etc/sysconfig/tomcat,添加

CATALINA_OPTS="-Djava.rmi.server.hostname=TOMCAT_SERVER_IP-Djavax.management.builder.initial=-Dcom.sun.management.jmxremote=true-Dcom.sun.management.jmxremote.port=12345-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false"#启用JVM接口,默认没有启用

  添加监控项:

    jmx[object_name,attribute_name]

      object name - 它代表MBean的工具名称

      attribute name - 一个MBean属性名称,可选的复合数据字段名称以点分隔

    示例:

       jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

④ jmx的详细文档:https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html

2、配置JVM接口监控

(1)安装配置tomcat

① 下载安装tomcat,紧张是用JVM

yum -y install java-1.8.0-openjdk-devel tomcat-admin-webapps tomcat-docs-webapp

② 加CATALINA_OPTS= #启用JVM接口,默认没有启用

vim /etc/sysconfig/tomcatCATALINA_OPTS="-Djava.rmi.server.hostname=192.168.30.2 -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

③ 开启做事

systemctl start tomcat

(2)在zabbix-server 端,安装配置java-gateway

① 安装配置java-gateway

yum -y install zabbix-java-gateway

/etc/zabbix/zabbix_java_gateway.conf 安装完后,会天生一个java_gateway 的配置文件

systemctl start zabbix-java-gateway.service 不用修正,直接开启做事

② 修正server 配置,开启java-gateway的配置

vim /etc/zabbix/zabbix_server.conf

JavaGateway=192.168.30.107 JavaGatewayPort=10052 StartJavaPollers=5 #打开5个监控项

③ systemctl restart zabbix-server 重启zabbix-server 做事

(3)在node2 主机上添加JMX接口,实验模板

① 添加JMX接口

② 在node2 上连接tomcat JMX 模板

③ 随便查看一个监控项item

(4)自己定义一个堆内存利用的监控项,基于JVM接口(没必要,利用模板就好)

七、分布式监控

1、先容

(1)先容

分布式监控概述

  proxy and node

Zabbix 的三种架构

  Server-agent

  Server-Node-agent

  Server-Proxy-agent

监控Zabbix

(2)配置先容

Zabbix Proxy的配置:

  server-node-agent

  server-proxy-agent

a) 配置proxy主机:

(1) 安装程序包

zabbix-proxy-mysql zabbix-get

zabbix-agent zabbix-sender

(2) 准备数据库

  创建、授权用户、导入schema.sql;

(3) 修正配置文件

  Server=

    zabbix server主机地址;

  Hostname=

    当前代理做事器的名称;在server添加proxy时,必须利用此处指定的名称;

    =须要事先确保server能解析此名称;

  DBHost=

  DBName=

  DBUser=

  DBPassword=

  ConfigFrequency=10

  DataSenderFrequency=1

b) 在server端添加此Porxy

Administration --> Proxies

c) 在Server端配置通过此Proxy监控的主机;

把稳:zabbix agent端要许可zabbix proxy主机实行数据采集操作:

2、实现分布式zabbix proxy监控

实验前准备:

① ntpdate 172.168.30.1 同步韶光

② 关闭防火墙,selinux

③ 设置主机名 hostnamectl set-hostname http://zbproxy.along.com

④ vim /etc/hosts 每个机器都设置hosts,以解析主机名;DNS也行

192.168.30.107 http://server.along.com

192.168.30.7 http://node1.along.com

192.168.30.2 http://node2.along.com

192.168.30.3 http://node3.along.com http://zbproxy.along.com

(1)环境配置(4台主机)

机器名称

IP配置

做事角色

zabbix-server

192.168.30.107

监控

agent-node1

192.168.30.7

被监控端

agent-node2

192.168.30.2

被监控端

node3

192.168.30.3

代理proxy

zabbix-server 直接监控一台主机node1

zabbix-server 通过代理node3 监控node2

(2)在node3 上配置mysql

① 创建配置mysql

vim /etc/my.cnf.d/server.cnf

[server] skip_name_resolve = on innodb_file_per_table = on innodb_buffer_pool_size = 256M max_connections = 2000 log-bin = master-log

② systemctl start mariadb 开启做事

③ 创建数据库 和 授权用户

MariaDB [(none)]> create database zbxproxydb character set 'utf8'; MariaDB [(none)]> grant all on zbxproxydb. to 'zbxproxyuser'@'192.168.30.%' identified by 'zbxproxypass'; MariaDB [(none)]> flush privileges;

(3)在node3 高下载zabbix 干系的包,紧张是代理proxy的包

yum -y install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender

a) 初始化数据库

zabbix-proxy-mysql 包里带有,导入数据的文件

cp /usr/share/doc/zabbix-proxy-mysql-3.4.4/schema.sql.gz ./ 复制

gzip -d schema.sql.gz 解包

mysql -root -p zbxproxydb < schema.sql 导入数据

b) 查看数据已经天生

(4)配置proxy端

① vim /etc/zabbix/zabbix_proxy.conf

Server=192.168.30.107 #server 的IP ServerPort=10051 #server 的端口 Hostname=http://zbxproxy.along.com #主机名 ListenPort=10051 #proxy自己的监听端口 EnableRemoteCommands=1 #许可远程命令 LogRemoteCommands=1 #记录远程命令的日志 数据的配置 DBHost=192.168.30.3 DBName=zbxproxydb DBUser=zbxproxyuser DBPassword=zbxproxypass ConfigFrequency=30 #多永劫光,去做事端拖一次有自己监控的操作配置;为了实验更快的生效,这里设置30秒,默认3600s DataSenderFrequency=1 #每一秒向server 端发一次数据,发送频度

② systemctl start zabbix-proxy 开启做事

(5)配置node2端,许可proxy代理监控

vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.30.107,192.168.30.3 ServerActive=192.168.30.107,192.168.30.3

systemctl restart zabbix-agent 启动做事

(6)把代理加入监控server,创建配置agent 代理

① 创建agent 代理

② 配置

(7)创建node2 主机,并采取代理监控

设置代理成功

(8)创建item监控项

① 为了实验,随便创一个监控项 CPU Switches

② 进程里设置每秒变动

③ 成功,graph 图形天生

八、查询利用网上模板监控1、找官方的share 分享网站

https://cn.bing.com/ 搜索 zabbix share

例如:我们要实现监控Nginx ,我们查找一个模板

就以这个模板为例

2、在node1 上利用此模板

(1)安装配置 nginx

① yum -y install nginx

vim /etc/nginx/nginx.conf 按照网页的操作指示

location /stub_status { stub_status on; access_log off; # allow 127.0.0.1; #为了操作方便,我取消的访问掌握 # deny all; }

② 启动做事

systemctl restart nginx

(2)下载模板所依赖的脚本

mkdir -p /srv/zabbix/libexec/

cd /srv/zabbix/libexec/

wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/nginx.sh 从网页上获取脚本

chmod +x nginx.sh 加实行权限

(3)配置agent 的用户参数UserParameter

cd /etc/zabbix/zabbix_agentd.d/

wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/userparameter_nginx.conf 很短,自己写也行

(4)在windows 高下载模板,并导入这server 的模板中

wget https://raw.githubusercontent.com/oscm/zabbix/master/nginx/zbx_export_templates.xml 可以现在linux高下载,再sz 导出到windows上

① 导入下载的模板

② 主机node1 链接这个模板

③ 模板生效

九、zabbix-server 监控自己,数据库,nginx1、下载安装,配置agent

vim /etc/zabbix/zabbix_agentd.conf 配置agent

EnableRemoteCommands=1 许可远程命令 LogRemoteCommands=1 记录远程命令 Server=127.0.0.1 ServerActive=127.0.0.1 Hostname=http://server.along.com

2、自动天生Zabbix server 的主机

3、在主机中添加模板

4、启用Zabbix server

5、监控到数据

十、调优1、调优

① Database:

  历史数据不要保存太永劫长;

  只管即便让数据缓存在数据库做事器的内存中;

② 触发器表达式:减少利用聚合函数 min(), max(), avg();只管即便利用last(),nodata();

  由于聚合函数,要运算

③ 数据网络:polling较慢(减少利用SNMP/agentless/agent);只管即便利用trapping(agent(active)主动监控);

④ 数据类型:文本型数据处理速率较慢;只管即便少网络类型为文本 text或string类型的数据;多利用类型为numeric 数值型数据 的;

2、zabbix做事器的进程

(1) 做事器组件的数量;

  alerter, discoverer, escalator, http poller, hourekeeper, icmp pinger, ipmi polller, poller, trapper, configration syncer, ...

  StartPollers=60

  StartPingers=10

  ...

  StartDBSyncer=5

  ...

(2) 设定合理的缓存大小

   CacheSize=8M

   HistoryCacheSize=16M

   HistoryIndexCacheSize=4M

   TrendCacheSize=4M

   ValueCacheSize=4M

(3) 数据库优化

  分表:

    history_

    trends

    events

文章来源:https://www.cnblogs.com/along21/p/8119088.html