阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

企业级监控工具应用实战-Zabbix操作进阶

479次阅读
没有评论

共计 14414 个字符,预计需要花费 37 分钟才能阅读完成。

目录

  • 一、User parameters 用户参数
    • 1、介绍和用法
    • 2、用法展示
    • 3、用法升级
    • 4、使用用户参数监控 php-fpm 服务的状态
  • 二、Network discovery 网络发现
    • 1、介绍
    • 2、配置网络发现 Network discovery
  • 三、web 监控
    • 1、介绍
    • 2、创建设置 web 场景
    • 3、查看测试
  • 四、主动 / 被动 监控
    • 1、介绍
    • 2、设置一个通过內建 key 发送数据的主动监控
    • 3、设置一个通过命令 zabbix_sender 发送数据的主动监控
  • 五、基于 SNMP 监控(了解)
    • 1、介绍
    • 2、配置 SNMP 监控
    • 3、设置入站出站 packets 的 SNMP 监控
  • 六、JMX 接口
    • 1、介绍
    • 2、配置 JVM 接口监控
  • 七、分布式监控
    • 1、介绍
    • 2、实现分布式 zabbix proxy 监控
  • 八、查询使用网上模板监控
    • 1、找官方的 share 分享网站
    • 2、在 node1 上使用此模板
  • 九、zabbix-server 监控自己,数据库,nginx
    • 1、下载安装,配置 agent
    • 2、自动生成 Zabbix server 的主机
    • 3、在主机中添加模板
    • 4、启用 Zabbix server
    • 5、监控到数据
  • 十、调优
    • 1、调优
    • 2、zabbix 服务器的进程
    • 3、其它解决方案

无监控,不运维。好了,废话不多说,下面都是干货。

流量党勿入,图片太多!!!

一、User parameters 用户参数

1、介绍和用法

① 介绍

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

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

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

② 用法格式 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}’ 自己需要查找的参数的命令

企业级监控工具应用实战 -Zabbix 操作进阶

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

cd /etc/zabbix/zabbix_agentd.d/

vim memory_usage.conf

UserParameter=memory.used,free | awk ‘/^Mem/{print $3}’

③ systemctl restart zabbix-agent.service 重启 agent 服务

(2)在 zabbix-server 端,查询

zabbix_get -s 192.168.30.7 -p 10050 -k “memory.used”

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

(4)查询 graph 图形

企业级监控工具应用实战 -Zabbix 操作进阶

3、用法升级

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

① 命令行查询参数的命令

企业级监控工具应用实战 -Zabbix 操作进阶

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

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

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

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

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

memory.stats[MemFree] 用户参数

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

① memory total

企业级监控工具应用实战 -Zabbix 操作进阶

② memory free

企业级监控工具应用实战 -Zabbix 操作进阶

③ buffers

企业级监控工具应用实战 -Zabbix 操作进阶

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.conf

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;   #访问这个页面就不用记录日志了
}

企业级监控工具应用实战 -Zabbix 操作进阶

② systemctl start nginx 开启 nginx 服务

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

① 查询 curl 192.168.30.7/php-fpm-status

企业级监控工具应用实战 -Zabbix 操作进阶

② 设置

cd /etc/zabbix/zabbix_agentd.d/

vim php_status.conf

UserParameter=php-fpm.stats[*],curl -s http://127.0.0.1/php-fpm-status | awk ‘/^$1/{print $$NF}’

分析:设置用户参数为 php-fpm.stats[*],$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]”

企业级监控工具应用实战 -Zabbix 操作进阶

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

① 创建一个模板

企业级监控工具应用实战 -Zabbix 操作进阶

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

fpm.stats[total processes]

企业级监控工具应用实战 -Zabbix 操作进阶

③ 再 clone 克隆几个 items 监控项

fpm.stats[active processes]

企业级监控工具应用实战 -Zabbix 操作进阶

fpm.stats[max active processes]

企业级监控工具应用实战 -Zabbix 操作进阶

fpm.stats[idle processes]

企业级监控工具应用实战 -Zabbix 操作进阶

(6)host 主机链接模板

企业级监控工具应用实战 -Zabbix 操作进阶

(7)查看 graph 图形

① php-fpm total processes

企业级监控工具应用实战 -Zabbix 操作进阶

② php-fpm active processes

企业级监控工具应用实战 -Zabbix 操作进阶

③ php-fpm max active processes

企业级监控工具应用实战 -Zabbix 操作进阶

④ php-fpm idle processes

企业级监控工具应用实战 -Zabbix 操作进阶

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

① 导出模板

企业级监控工具应用实战 -Zabbix 操作进阶

最下面有导出

企业级监控工具应用实战 -Zabbix 操作进阶

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

/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 种响应事件

企业级监控工具应用实战 -Zabbix 操作进阶

② 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=node2.along.com #只需修改 hostname

③ visudo 修改 sudo 的配置

#Defaults !visiblepw

zabbix ALL=(ALL) NOPASSWD: ALL

企业级监控工具应用实战 -Zabbix 操作进阶

④ 开启服务

systemctl start zabbix-agent

(2)设置自动发现规则 discovery

企业级监控工具应用实战 -Zabbix 操作进阶

注释:

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

(3)自动发现成功

企业级监控工具应用实战 -Zabbix 操作进阶

(4)设置自动发现 discovery 的动作 action

a) 创建

企业级监控工具应用实战 -Zabbix 操作进阶

b) 设置 action 动作

企业级监控工具应用实战 -Zabbix 操作进阶

① 设置 A 条件,自动发现规则 =test.net

② 设置 B 条件,自动发现状态 =up

企业级监控工具应用实战 -Zabbix 操作进阶

③ 要做什么操作

添加主机到监控

自动链接 Template OS Linux 到此 host

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

d) 启用动作,查看效果

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

三、web 监控

1、介绍

(1)介绍

① Web 监控:监控指定的站点的 资源下载速度 ,及 页面响应时间 ,还有 响应代码

② 术语:

web Scenario:web 场景(站点)

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

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

③ 内建 key:

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

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

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

2、创建设置 web 场景

(1)创建

企业级监控工具应用实战 -Zabbix 操作进阶

(2)配置 web 监测

企业级监控工具应用实战 -Zabbix 操作进阶

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

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

c) 设置 2 个 web 页面成功

企业级监控工具应用实战 -Zabbix 操作进阶

② 如果有特殊认证,也可以添加

企业级监控工具应用实战 -Zabbix 操作进阶

3、查看测试

企业级监控工具应用实战 -Zabbix 操作进阶

四、主动 / 被动 监控

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=node1.along.com   自己的主机名,假设主机定死了,不设置下一项
#HostnameItem=   如果自己的主机名易变动,这一项相当于 key 一样去匹配

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

(2)设置一个主动监测

企业级监控工具应用实战 -Zabbix 操作进阶

① 选择进程,每秒更改,

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

企业级监控工具应用实战 -Zabbix 操作进阶

(3)已经有啦 graph 图形

企业级监控工具应用实战 -Zabbix 操作进阶

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

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

企业级监控工具应用实战 -Zabbix 操作进阶

(2)agent 端手动发送数据

企业级监控工具应用实战 -Zabbix 操作进阶

(3)监控到数据的变化

企业级监控工具应用实战 -Zabbix 操作进阶

五、基于 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 步

企业级监控工具应用实战 -Zabbix 操作进阶

① 定义认证符,将社区名称 ”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: 网络接口类型

 ……

企业级监控工具应用实战 -Zabbix 操作进阶

④ 授予对 systemview 视图的只读访问权

(4)测试工具:

    # snmpget -v 2c -c public HOST OID

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

点开一个 item 看一下

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

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

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

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

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

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

interface traffic packets(in)

企业级监控工具应用实战 -Zabbix 操作进阶

interface traffic packets(out)

企业级监控工具应用实战 -Zabbix 操作进阶

六、JMX 接口

企业级监控工具应用实战 -Zabbix 操作进阶

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/tomcat

CATALINA_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 接口

企业级监控工具应用实战 -Zabbix 操作进阶

② 在 node2 上连接 tomcat JMX 模板

企业级监控工具应用实战 -Zabbix 操作进阶

③ 随便查看一个监控项 item

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

七、分布式监控

企业级监控工具应用实战 -Zabbix 操作进阶

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 zbproxy.along.com

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

192.168.30.107 server.along.com

192.168.30.7 node1.along.com

192.168.30.2 node2.along.com

192.168.30.3 node3.along.com zbproxy.along.com

企业级监控工具应用实战 -Zabbix 操作进阶

(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 包里带有,导入数据的文件

企业级监控工具应用实战 -Zabbix 操作进阶

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) 查看数据已经生成

企业级监控工具应用实战 -Zabbix 操作进阶

(4)配置 proxy 端

① vim /etc/zabbix/zabbix_proxy.conf

企业级监控工具应用实战 -Zabbix 操作进阶

Server=192.168.30.107   #server 的 IP
ServerPort=10051   #server 的端口

Hostname=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 代理

企业级监控工具应用实战 -Zabbix 操作进阶

② 配置

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

设置代理成功

企业级监控工具应用实战 -Zabbix 操作进阶

(8)创建 item 监控项

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

企业级监控工具应用实战 -Zabbix 操作进阶

② 进程里设置每秒更改

企业级监控工具应用实战 -Zabbix 操作进阶

③ 成功,graph 图形生成

企业级监控工具应用实战 -Zabbix 操作进阶

八、查询使用网上模板监控

1、找官方的 share 分享网站

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

企业级监控工具应用实战 -Zabbix 操作进阶

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

企业级监控工具应用实战 -Zabbix 操作进阶

就以这个模板为例

企业级监控工具应用实战 -Zabbix 操作进阶

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;
}

企业级监控工具应用实战 -Zabbix 操作进阶

② 启动服务

systemctl restart nginx

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

企业级监控工具应用实战 -Zabbix 操作进阶

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 很短,自己写也行

企业级监控工具应用实战 -Zabbix 操作进阶

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

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

企业级监控工具应用实战 -Zabbix 操作进阶

① 导入下载的模板

企业级监控工具应用实战 -Zabbix 操作进阶

② 主机 node1 链接这个模板

企业级监控工具应用实战 -Zabbix 操作进阶

③ 模板生效

企业级监控工具应用实战 -Zabbix 操作进阶

九、zabbix-server 监控自己,数据库,nginx

1、下载安装,配置 agent

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

EnableRemoteCommands=1    允许远程命令
LogRemoteCommands=1    记录远程命令
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=server.along.com

2、自动生成 Zabbix server 的主机

企业级监控工具应用实战 -Zabbix 操作进阶

3、在主机中添加模板

企业级监控工具应用实战 -Zabbix 操作进阶

4、启用 Zabbix server

企业级监控工具应用实战 -Zabbix 操作进阶

5、监控到数据

企业级监控工具应用实战 -Zabbix 操作进阶

十、调优

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*

3、其它解决方案

grafana:展示

collectd:收集

influxdb:存储

grafana+collectd+influxdb

prometheus:

 exporter:收集

 alertmanager:

grafana:展示

openfalcon

更多 Zabbix 相关教程集合

在 Ubuntu 16.04 服务器上安装 Zabbix 3.2  http://www.linuxidc.com/Linux/2017-07/145519.htm

CentOS 7 LNMP 环境搭建 Zabbix3.0  http://www.linuxidc.com/Linux/2017-02/140134.htm

Ubuntu 16.04 安装部署监控系统 Zabbix2.4  http://www.linuxidc.com/Linux/2017-03/141436.htm

Zabbix 监控安装部署及警报配置  http://www.linuxidc.com/Linux/2017-03/141611.htm

Zabbix 触发器表达式详解 http://www.linuxidc.com/Linux/2017-03/141921.htm

Ubuntu 16.04 下安装部署 Zabbix3.0  http://www.linuxidc.com/Linux/2017-02/140395.htm

CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm

CentOS 7 下 Zabbix 3.0 安装详解 http://www.linuxidc.com/Linux/2017-03/141716.htm

64 位 CentOS 6.2 下安装 Zabbix 2.0.6  http://www.linuxidc.com/Linux/2014-11/109541.htm

Zabbix 3.2.6 通过 Orabbix 监控 Oracle 数据库  http://www.linuxidc.com/Linux/2017-10/147224.htm

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149871.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计14414字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7992960
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...