• Zabbix监控入门到跑路


    Zabbix监控入门到跑路

    一、zabbix概述

    zabbix的主要特点
    • zabbix的主要特点
    • 安装与配置简单,学习成本低
    • 支持多语言(包括中文)
    • 免费开源
    • 自动发现服务器与网络设备
    • 分布式监视以及WEB集中管理功能
    • 可以无agent监视
    • 用户安全认证和柔软的授权方式
    • 通过WEB界面设置或查看监视结果
    • email等通知功能等等
    zabbix组件

    zabbix server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其他组件进行。

    zabbix database:用户存储所有的配置信息,以及存储有zabbix server收集到的数据。

    zabbix web:zabbix 的interface接口,通常与server运行在同一台主机上。

    zabbix agent:部署在被监控主机上,负责收集本地数据发往server端或proxy端

    zabbix proxy:常用于分布式监控环境中,代理server搜集部分监控的监控数据并统一发往server端(通常大于500台主机才需要使用,防止server因为高并发造成高负载)

    两个工具

    **zabbix_sender:**zabbix的一个工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常消耗时间,导致zabbix超时。所以在脚本执行完毕后,使用sender主动提交数据。

    **zabbix_get:**zabbix的一个工具,通常用于从server或者proxy获取远程客户端的信息,以及故障排障等。例如:在server端无法看到客户端的内存数据,可以使用zabbix_get获取客户端的内容的方式来做故障排查。

    zabbix原理

    zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。

    zabbix工作流程

    ​ zabbix在进行监控时,zabbix客户端要安装在被监控设备上,负责定期收集数据,并将其发送给zabbix服务端;zabbix服务端要安装在监控设备上,其将zabbix客户端发送的数据存储的数据库中,zabbix web根据数据在前端进行展示和绘图。

    zabbix的数据收集分为两种模式:

    • 主动模式:

      • zabbix客户端主动向zabbix server请求监控项列表,并主动将监控项内需要的数据提交给zabbix server。
    • 被动模式:

      • zabbix server向agent请求获取监控项的数据,zabbix agent返回数据。

      总结:zabbix的主动和被动模式是以zabbix客户端为基准的。

    zabbix架构
    1、server-client架构
    • 该架构是zabbix的最简单的架构。
    • 监控机和被监控机之间不经过任何代理 ,
    • 直接由zabbixserver和zabbix agentd之间进行数据交互。
    img

    适用于网络比较简单,设备比较少的监控环境 。

    2、server-proxy-client架构
    • 其中proxy是server、client之间沟通的一个桥梁,
    • proxy本身没有前端,而且其本身并不存放数据,
    • 只是将agentd发来的数据暂时存放,而后再提交给server 。
    image-20220825122254941

    适用于跨机房、跨网络的中型网络架构的监控。

    3、master-node-client架构
    • 该架构是zabbix最复杂的监控架构,每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。
    • node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。
    • 适用于跨网络、跨机房、设备较多的大型环境 。
    zabbix支持的监控内容
    1、硬件
    • 电源状态、cpu温度、机器温度、风扇。
    • 物理磁盘、raid、内存状态、网卡状态等。
    2、软件
    • HTTP接口、RPC接口的请求量、耗时、异常量等。

    • JVM上的线程数、死线程数、活跃线程数、GC耗时等。

      • (GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的。)
    • 线程池、连接池的连接数、线程数、拒绝任务、任务耗时等。

    • 日志和业务指标,包括错误日志、访问日志、订单量、PV流量等。

    3、数据
    • 数据库连接、QPS、TPS
    • 并行会话数、缓存数、锁状态等
    • Nginx的活跃、丢弃、等待连接数、错误等
    • Tomcat上的线程数、请求量、耗时、内存消耗等
    • 缓存、内存消耗、内存碎片、消息队列等数据
    zabbix支持的主要监控方式
    1、Agent监控方式

    Agent部署在监控设备上,zabbix-agent会主动收集本机的监控信息并通过TCP协议与zabbix-server传递信息。Agent监控方式分为主动被动模式。通过本机的10050端口将收集的数据发送到zabbix-server的10051端口。

    优点:

    是zabbix常用的监控方式,检测指标深入细致有针对性。

    内容监控功能强大,内置监控项目丰富。

    TCP方式实现通讯,可靠性也有保证。

    缺点:

    需要在每个监控设备上部署zabbix-agent客户端,部署麻烦。

    zabbix-agent客户端运行在被监控机上,会收集本机信息。

    2、Trapper监控方式

    Trapper监控方式使用zabbix-sender程序主动向zabbix-server发送数据。key的名称和发送的数据内容都可以灵活定义。发送的信息使用JSON格式,遵循zabbix-sender协议。可以自定脚本利用zabbix-serder协议向zabbix-server发送数据。

    优点:

    不需要在被监控机器上安装zabbix-agent

    不收集被监控机器的信息

    可以自定义发送的信息内容

    可以使用自定义脚本发送信息。

    缺点:

    需要自定义发送的信息内容

    无内置监控项目

    3、SNMPl监控方式

    SNMP协议(简单网络管理协议),包括进行管理和被管理设备两个部分。作为一种国际通用的网络管理协议被广泛的应用与各种交换机,路由器等网络设备的管理上,也可以作用于服务器的监控上。

    优点:

    服务器一但部署SNMPAgent,任何实现SNMP协议的软件都可以对其进行检测。

    通过这种方式可以进行监控不需要知道被监控设备的用户名和密码,相对比较安全。

    缺点:

    很多服务器并非默认安装SNMPAgent,如果通过这种方式进行监控,需要进行部署软件。

    能监控的参数指标比较固定,不全面和详细。

    由于SNMP协议是通过UDP方式实现的。在网络状况不佳的情况下可靠性不佳。

    4、JMX监控方式

    JMX,全程Java Management Extensions,即Java管理拓展,是Java平台为应用程序,设备,系统等植入管理功能的架构。在zabbix中,JMX数据的获取由zabbix-java-gateway代理程序来负责数据的采集。

    优点:可以详细的监控各类Java程序的运行状态。

    缺点:被监控主机上需要安装zabbix-java-gateway。

    5、IPMI监控方式

    IPMI,全称Interlligent Platform Management Interface,即智能平台管理接口,原本是Intel架构中企业系统的周边设备所采用的一种工业标准,以后成为业界通用的标准。用户可以利用IPMI监控服务器的物理特性,如温度,电压,电扇工作状态,电源供应以及机箱***等指标。

    根据以上对zabbix各主要监控方式的梳理,结论如下:

    根据被监控机器的环境和客户要求选用适当的监控方式,可同时配合多种监控方式。

    有条件在监控机上部署zabbix-agent客户端时,该方法为第一选择,因为其功能强大且配置相对简便。

    需要自定义脚本或者监控信息时,可使用Trapper方式,即使用zabbix-sender程序或者自定义脚本遵循zabbix-sender协议,已JSON形式,通过TCP发送自定义信息。

    具体详细部署见:https://www.cnblogs.com/davidshen/p/10345116.html

    四、zabbix 5.0部署安装

    1、获取zabbix的下资源

    rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm  //配置zabbix下载源
    
    sed -i  's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo //将yum源地址替换为阿里云下资源
    
    vim /etc/yum.repos.d/zabbix.repo
        //修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
    [zabbix-frontend]
    ......
    enabled=1          //开启安装源
    ......
    yum clean all && yum makecache
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、下载安装

    yum install -y zabbix-server-mysql zabbix-agent //下载安装zbbix服务端和agent客户端
    //安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。
    yum -y install centos-release-scl
    yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl //安装 zabbix 前端环境到 scl 环境下
    
    • 1
    • 2
    • 3
    • 4

    3、安装数据库并初始化

    yum install -y mariadb-server mariadb //下载安装数据库
    systemctl enable --now mariadb  //设置mariadb开机自启同时开启服务
    mysql_secure_installation //初始化数据库,并设置密码。
    //添加数据库用户,以及 zabbix 所需的数据库信息
    mysql -u root -p123123
    CREATE DATABASE zabbix character set utf8 collate utf8_bin; //创建zabbix数据库并设置中文字符集
    GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix'; //创建zabbix的数据用户并授权
    flush privileges;   //这个命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    初始化zabbix数据库
    rpm -ql zabbix-server-mysql //查询sql文件的位置
    
    zcat /usr/share/doc/zabbix-server-mysql-5.0.24/create.sql.gz | mysql -uroot -pabc123 zabbix //使用sql脚本刷新zabbix数据库
    
    • 1
    • 2
    • 3
    • 4

    4、修改zabbix server配置文件,修改数据的密码

    vim /etc/zabbix/zabbix_server.conf 
    ......
    DBPassword=zabbix					//124行,指定 zabbix 数据库的密码
    
    //修改 zabbix 的 php 配置文件
    vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
    ......
    php_value[date.timezone] = Asia/Shanghai		//24行,取消注释,修改时区
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5、启动zabbix服务

    systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
    systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
    
    • 1
    • 2

    6、web安装zabbix

    浏览器访问:http://192.168.10.10/zabbix
    点击下一步,设置数据库的密码 zabbix
    安装完成后,默认的登录账号和密码为:Admin/zabbix
    设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。
    
    • 1
    • 2
    • 3
    • 4

    7、安装zabbix中文字符集(zabbix改为中文后需要中文字符集支持)

    yum install -y wqy-microhei-fonts
    
    \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
    
    • 1
    • 2
    • 3

    五、Agent监控方式部署

    1、手动添加客户端

    zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。
    zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。

    1.1、关闭防火墙和核心防护
    systemctl disable --now firewalld
    setenforce 0
    
    • 1
    • 2
    1.2、配置客户端和服务端的时间
    yum install -y ntpdate
    ntpdate -u ntp.aliyun.com //同步阿里云
    
    //客户端配置时区,与服务器保持一致
    mv /etc/localtime{,.bak}
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1.3、设置 zabbix 的下载源,安装 zabbix-agent2
    rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
    
    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
    
    yum install -y zabbix-agent2
    //修改 agent2 配置文件
    vim /etc/zabbix/zabbix_agent2.conf
    ......
    Server=192.168.10.10			#80行,被动模式,指定 zabbix 服务端的 IP 地址
    ServerActive=192.168.10.10		#120行,主动模式,指定 zabbix 服务端的 IP 地址
    Hostname=server-test1			#131行,指定当前 zabbix 客户端的主机名
    
    //启动 zabbix-agent2
    systemctl start zabbix-agent2
    systemctl enable zabbix-agent2
    
    netstat -natp | grep zabbix
    tcp6       0      0 :::10050                :::*                    LISTEN      43654/zabbix_agent2 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    image-20220826161848342

    1.4、在服务端验证zabbix-agent2的连通性
    yum install -y zabbix-get				//安装 zabbix 主动获取数据的命令
    
    zabbix_get -s '192.168.10.11' -p 10050 -k 'agent.ping'
    1
    
    zabbix_get -s '192.168.10.11' -p 10050 -k 'system.hostname'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image-20220826162117829

    1.5 在server中添加监控主机
    //在 Web 页面中添加 agent 主机
    点击左边菜单栏【配置】中的【主机】,点击【创建主机】
    【主机名称】设置成 server-test1
    【可见的名称】设置成 server-test1-192.168.10.11
    【群组】选择 Linux server
    【Interfaces】的【IP地址】设置成 192.168.10.11
    
    再点击上方菜单栏【模板】
    【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
    点击 【添加】
    
    自定义脚本监控 https://kaikai136.blog.csdn.net/article/details/111309497?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-111309497-blog-123223449.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-111309497-blog-123223449.pc_relevant_paycolumn_v3&utm_relevant_index=1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aLqGT3CE-1663501474705)(C:\Users\15560\AppData\Roaming\Typora\typora-user-images\image-20220826162823086.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SsHpyyET-1663501474705)(C:\Users\15560\AppData\Roaming\Typora\typora-user-images\image-20220826163303034.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ufn2DbxT-1663501474705)(C:\Users\15560\AppData\Roaming\Typora\typora-user-images\image-20220826163441867.png)]

    image-20220826163610389

    image-20220826164013719

    2、自定义监控内容

    案列:自定义监控客户端服务器登录的人数
    需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息

    1、创建zabbix的监控项配置文件,用于自定义key
    在客户端配置脚本
    vim /etc/zabbix/zabbix_agent2.conf
    #可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
    268 Include=/etc/zabbix/zabbix_agent2.d/*.conf
    #自定义监控项的格式如下
    291 #	Format: UserParameter=,
    
    cd /etc/zabbix/zabbix_agent2.d/
    
    vim UserParameter_login.conf
    UserParameter=login.user,who|wc -l
    
    systemctl restart zabbix-agent2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    image-20220826165912868

    image-20220826165943762

    image-20220826170243869

    image-20220826170410521

    2、在web上进行配置
    1.创建模板
    点击左边菜单栏【配置】中的【模板】,点击【创建模板】
    【模板名称】设置成 Template Login User
    【可见的名称】设置成 Template Login User
    【群组】选择 Template
    【描述】可自定义
    点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了
    
    2.创建应用集(用于管理监控项的)
    点击上方菜单栏【应用集】,点击【创建应用集】
    【名称】设置成 Login User
    点击 【添加】
    
    3.创建监控项
    点击上方菜单栏【监控项】,点击【创建监控项】
    【名称】设置成 Number of login users
    【键值】设置成 login.user			#键值必须要与自定义的监控项配置文件中设置的保持一致
    【更新间隔】设置成 10s
    【历史数据保留时长】Storage period	30d		#保留时间可自定义设置
    点击 【添加】
    
    4.创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
    点击上方菜单栏【触发器】,点击【创建触发器】
    【名称】设置成 Number of login users is greater than 3
    【严重性】设置成 一般严重
    【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
    点击 【添加】
    
    5.创建图形
    点击上方菜单栏【图形】,点击【创建图形】
    【名称】设置成 Number of login users
    【宽】、【高】可直接采用默认值
    【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
    点击 【添加】
    
    6.将主机与模板关联起来(一个主机可以关联多个模板)
    点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
    点击上方菜单栏【模板】,【Link new tamplates】搜索 login,选择 Template Login User,点击【更新】
    
    此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标
    
    7.设置邮件报警
    点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
    【名称】设置成 qq_Email
    【SMTP服务器】设置成 smtp.qq.com
    【SMTP服务器端口】设置成 25
    【SMTP HELO】设置成 qq.com
    【SMTP电邮】设置成 自己的邮箱地址,例如 xx@qq.com
    【认证】选择 用户名和密码
    【用户名称】设置成 自己的邮箱地址,例如 xx@qq.com
    【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
    【描述】可自定义
    点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
    点击 【添加】,并测试功能
    
    8.告警邮箱内容设置:
    主题:
    Problem: {EVENT.NAME}事件 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
    内容:
    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}
    
    
    9.点击左边菜单栏【User settings】-->【报警媒介】,点击【添加】
    【类型】选择 qq_Email
    【收件人】设置成 xxx@163.com
    【当启用时】设置成 1-7,00:00-24:00
    点击 【添加】
    再点击 【更新】
    
    点击左边菜单栏【配置】中的【动作】,选择相对应的动作名称,点击【启用】
    
    //测试邮件报警
    增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80

    image-20220828002803301

    image-20220828003922071

    image-20220828005913533

    image-20220828012812691

    image-20220828012857316

    image-20220828013043702

    告警信息:

    image-20220828013302759

    image-20220828013401298

    3、自动发散性与自动注册
    zabbix 自动发现(对于 agent2 是被动模式)

    zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。
    缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。

    部署配置自动发现
    1.确保客户端上的 zabbix-agent2 服务状态正常
    systemctl is-active zabbix-agent2.service 
    active
    
    2.在 Web 页面删除原有的客户端主机
    点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
    
    3.在服务端和客户端上配置 hosts 解析
    vim /etc/hosts
    192.168.10.10 test
    192.168.10.11 server-test1
    
    4.在 Web 页面配置自动发现
    点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
    【名称】设置成 mynetwork
    【IP范围】设置成 192.168.10.1-254
    【更新间隔】设置成 30s
    【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
    【设备唯一性准则】选择 IP地址
    【主机名称】选择 DNS名称
    【可见的名称】选择 主机名称
    勾选 【已启用】,点击 【更新】
    
    点击左边菜单栏【配置】中的【动作】,上方菜单选择 【Discovery actions】
    勾选 【Auto discovery. Linux servers.】,点击 【启用】
    
    点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机
    
    可在服务端查看 zabbix 日志
    tail -f /var/log/zabbix/zabbix_server.log
    ......
      6601:20210922:225044.115 enabling Zabbix agent checks on host "zbx-agent01": host became available
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    image-20220828014244448

    image-20220828021017880

    image-20220828021122457

    image-20220828021147752

    image-20220828021454351

    zabbix 自动注册(对于 agent2 是主动模式)

    zabbix agent2 会主动上报自己的信息,发给 zabbix server。
    缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。

    配置自动注册
    1.环境准备
    点击左边菜单栏【配置】中的【自动发现】,勾选发现规则,点击 禁用
    点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
    
    vim /etc/hosts
    192.168.10.10 test
    192.168.10.11 server-test1
    
    2.修改 zabbix-agent2 配置文件
    vim /etc/zabbix/zabbix_agent2.conf
    ......
    HostnameItem=system.hostname		#139行,取消注释
    //查看配置信息
    egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf 
    systemctl restart zabbix-agent2.service
    
    3.在 Web 页面配置自动注册
    点击左边菜单栏【配置】中的【动作】,上方菜单选择 【Autoregistration actions】,点击【创建动作】
    【名称】设置成 Auto registration
    点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 zbx-agent01
    点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击 【add】
    再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【add】
    再点击【添加】,【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Template OS Linux by Zabbix agent,点击 【add】
    点击下方的【添加】
    
    点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机
    
    在服务端查看 zabbix 日志
    tail -f /var/log/zabbix/zabbix_server.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    image-20220828021710793

    image-20220828022643066

    image-20220828022201748

    image-20220828022300716

    image-20220828022602418

    4、部署 zabbix 代理服务器

    分布式监控的作用:
    ●分担 server 的集中式压力
    ●解决多机房之间的网络延时问题

    agent --> proxy --> server

    第一步:关闭防火墙和核心防护
    systemctl disable --now firewalld
    setenforce 0
    hostnamectl set-hostname zbx-proxy
    
    • 1
    • 2
    • 3
    第二步:安装proxy端服务
    //设置 zabbix 的下载源,按照 zabbix-proxy
    rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
    
    cd /etc/yum.repos.d
    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
    
    yum install -y zabbix-proxy-mysql zabbix-get
    
    //安装 zabbix 所需的数据库
    yum install -y mariadb-server mariadb
    
    systemctl enable --now mariadb
    
    mysql_secure_installation         #初始化数据库,并设置密码,如 abc123
    
    //添加数据库用户,以及 zabbix 所需的数据库信息
    mysql -u root -pabc123
    
    CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
    GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
    flush privileges;
    
    //导入数据库信息
    rpm -ql zabbix-proxy-mysql 		#查询 sql 文件的位置
    
    zcat /usr/share/doc/zabbix-proxy-mysql-5.0.*/schema.sql.gz | mysql -uroot -pabc123 zabbix_proxy
    
    //修改 zabbix-proxy 配置文件
    vim /etc/zabbix/zabbix_proxy.conf
    Server=192.168.10.10				#30行,指定 zabbix 服务端的 IP 地址
    Hostname=zbx-proxy					#49行,指定当前 zabbix 代理服务器的主机名
    DBPassword=zabbix					#196行,指定当前数据库 zabbix 用户的密码
    
    //启动 zabbix-proxy
    systemctl start zabbix-proxy
    systemctl enable zabbix-proxy
    
    //在所有主机上配置 hosts 解析
    vim /etc/hosts
    192.168.10.10 test
    192.168.10.11 server-test1
    192.168.10.12 zbx-proxy
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    Web 页面配置 agent 代理
    点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
    点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
    
    点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】
    【agent代理程序名称】设置为 zbx-proxy
    【系统代理程序模式】选择 主动式
    【代理地址】设置为 192.168.10.13
    点击 【添加】
    
    //配置 agent 使用 proxy
    1.在客户端修改 agent2 配置文件
    vim /etc/zabbix/zabbix_agent2.conf
    ......
    Server=192.168.10.13			#80行,指定 zabbix 代理服务器的 IP 地址
    ServerActive=192.168.10.13		#120行,指定 zabbix 代理服务器的 IP 地址
    
    2.在 Web 页面配置
    点击左边菜单栏【配置】中的【主机】,点击【创建主机】
    【主机名称】设置成 zbx-agent01
    【可见的名称】设置成 zbx-agent01
    【群组】选择 Linux server
    【Interfaces】的【IP地址】设置成 192.168.80.30
    【由agent代理程序监测】选择 zbx-proxy
    
    再点击上方菜单栏【模板】
    【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
    点击 【添加】
    
    3.分别在客户端和代理服务器上重启服务
    systemctl restart zabbix-agent2
    
    systemctl restart zabbix-proxy
    
    点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常
    
    在服务端查看日志
    tail -f /var/log/zabbix/zabbix_proxy.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    image-20220828025907083

    image-20220828030359167

    image-20220828030419805

    image-20220828030516338

    image-20220828030813348
    =192.168.10.13 #80行,指定 zabbix 代理服务器的 IP 地址
    ServerActive=192.168.10.13 #120行,指定 zabbix 代理服务器的 IP 地址

    2.在 Web 页面配置
    点击左边菜单栏【配置】中的【主机】,点击【创建主机】
    【主机名称】设置成 zbx-agent01
    【可见的名称】设置成 zbx-agent01
    【群组】选择 Linux server
    【Interfaces】的【IP地址】设置成 192.168.80.30
    【由agent代理程序监测】选择 zbx-proxy

    再点击上方菜单栏【模板】
    【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
    点击 【添加】

    3.分别在客户端和代理服务器上重启服务
    systemctl restart zabbix-agent2

    systemctl restart zabbix-proxy

    点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常

    在服务端查看日志
    tail -f /var/log/zabbix/zabbix_proxy.log

    
    [外链图片转存中...(img-ptHuJBv5-1663501474712)]
    
    [外链图片转存中...(img-UaBWo2CU-1663501474712)]
    
    [外链图片转存中...(img-Gs3258SK-1663501474712)]
    
    [外链图片转存中...(img-jWFH9fSj-1663501474712)]
    
    [外链图片转存中...(img-mTkylj78-1663501474713)]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    【Vue五分钟】 五分钟了解Vue组件的核心概念
    try语句异常处理
    xinput1_3.dll丢失的解决方法,快速修复xinput1_3.dll文件
    【二】async和await_vue环境和工具
    Eolink 治愈了后端开发者的痛
    具有平滑正曲线边界的一般凸体的精确闭式闵可夫斯基研究(Matlab代码实现)
    BL808学习日志-0-概念理解
    Java快速启动
    Android入门第38天-使用随鼠标移动的圆点来熟悉onTouchEvent
    SpringBoot:(四)底层注解详解
  • 原文地址:https://blog.csdn.net/weixin_46514551/article/details/126922038