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

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

157次阅读
没有评论

共计 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、短信等云产品特惠热卖中