Zabbix企业级分布式监控环境部署

news2024/12/29 11:47:48

“运筹帷幄之中,决胜千里之外”。在IT运维中,监控占据着重要的地位,按比例来算,说占30%一点也不为过。对IT运维工程师来说,构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中,可供选择的工具众多,然而真正符合需求,能够真正解决业务问题的监控系统软件却凤毛麟角。

一:监控系统的功能概述

监控、从中文的字义来看,有两个内容,一是检测,二是控制。重点在第一个字眼,即检测、预防的意思。

监控,对应的英文单词是Monitoring。在计算机领域,可以将其分为5种监控类型。

  • 应用性能监控
  • 业务交易监控
  • 网络性能监控
  • 操作系统监控

上面5种类型将监控这个概念划分成了多个领域。我们通常所说的监控,都会模糊的包含以上5个细分的领域。在任何一个IT业务环境中,都会存在各种各样的硬件设备、软件应用等。

按照逻辑层次划分,我们可以将我们可以将监控行为划分为5个层次:基础设施监控、系统层监控、应用层监控、业务监控、端用户体验监控。

最底层基础设施监控:这层一般由运维人员负责,涉及到的方面比较接近硬件体系,例如网络,交换机,路由器等低层设备,这些设备的可靠性稳定性就直接影响到上层服务应用的稳定性,所以需要对网络的流量,丢包情况、错包情况,连接数等等这些基础设施的核心指标进行监控。

系统层监控:这层涵盖了物理机、虚拟机、操作系统等,这些都是属于系统级别监控的方面,主要对几个核心指标进行监控,如cpu使用率、内存占用率,磁盘IO和网络带宽情况。

应用层监控:这层涉及到方面和服务紧密相关,例如对url访问的性能,访问的调用数,访问的延迟,还有对服务提供性能进行监控,服务的错误率等,同时对sql也需要进行监控,查看是否有慢sql。对于cache来说,需要监控缓存的命中率和性能,每个服务的响应时间等等。

业务监控:业务监控具体指什么?举个例子,比如说一个典型的交易网站,需要关注它的用户登录情况、注册情况、下单情况、支付情况等等,这些直接影响到实际触发的业务交易情况,这层监控可以提供给运营和公司高管们,提供他们需要关注的数据,直接以数据支撑公司在战略层面的决策和方向。

端用户体验监控:一个应用程序可能通过app、h5、pc端的方式交付到用户的手上,用户通过浏览器,客户端打开连到我们的服务,那么在用户端,用户的体验是怎么样?用户端的性能是怎么样?以及有没有产生错误等等……这些信息都需要进行监控并记录下来,如果没有监控,有可能因为某些BUG或者性能问题,造成用户体验非常差,而我们并没有感知。其中包括监控用户端的使用性能、返回码,在哪些城市地区,他们的使用情况是怎么样,还有运营商的情况,包括三大运营商不同用户的连接情况。我们需要进一步知道,是否有哪些渠道哪些用户接入的时候存在着问题,我们还需要知道客户端使用的操作系统浏览器的版本。

二:监控系统的实现原理

1:模块组成

一个监控系统的组成大体可以分为两部分:数据采集部分和数据存储、分析告警、展示部分,这两部分构成了监控系统的基本模型。

2:采集协议

按照支持的协议方式,监控IT数据采集可以分为两种:专用客户端采集和公用协议采集。

3:监控模式

监控系统数据采集的工作模式可以分为被动模式和主动模式。被动模式指的是服务器端到客户端采集数据;主动模式是客户端主动上报数据到服务器。

一般来说被动模式对监控端服务器的开销较大,适合小规模的监控环境;被动模式对监控端服务器的开销较小,适合大规模的监控环境。

4:代理架构

对于大规模的监控环境,被监控节点比较多,并且监控类型也很多,监控产生的数据和网络连接开销非常大,数据采集方式除了使用主动模式之外,还需要使用代理的架构,通过代理架构分摊服务器端的性能开销。另外,代理架构还支持跨地域、跨网络的分布式监控。常见的代理架构为C/S/P架构,即Client/Proxy/Server。

三:监控系统的开源产品

1:zabbix

Zabbix是一款出色的企业级运维监控平台,可用于监控从服务器、网络设备到Web应用程序和数据库的性能和可用性的一切;它可以安装在 Linux、AIX、Windows、Solaris、MacOS X、FreeBSD、OpenBSD 等系统上使用,具有非常良好的适配能力

2:Prometheus+Grafana

Prometheus是一个开源系统监控和警报工具包,主要用于对基础设施的监控,包括服务器(CPU、MEM等)、数据库(MYSQL、PostgreSQL等)、Web服务等,几乎所有东西都可以通过Prometheus进行监控。

3:Cacti

Cacti是一款网络流量监测图形分析工具,它连接到RRDTool,生成与网络数据相关的图表,具有非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板。

4:Nagios

Nagios 是一个监控系统运行状态和网络信息的监控系统,它可以监控所指定的本地或远程主机以及服务,同时提供异常通知功能等;能够监控几乎所有类型的组件,如网络协议、操作系统、系统指标、应用程序、服务、Web服务器、网站、中间件等。

5:Checkmk

Checkmk是一个高度可扩展的监控工具,可监控服务器、网络、云资产、数据库、容器、物联网等。它有两种模式可用,基础版完全开源并提供免费和无限制的监控,企业版附带附加功能。

Checkmk具有部署快、高度自动化、配置灵活的特点。

6:OpenNMS

OpenNMS 是一个企业级基于 Java/XML 的分布式网络和系统监控管理平台。它能够显示网络中各中终端和服务器的状态和配置,为管理网络提供有效的信息。它专为 Linux 设计,但也支持 Windows、Solaris 和 OSX。

OpenNMS可以使用JMX、WMI、SNMP、NRPE、XML HTTP、JDBC、XML、JSON等收集系统指标。

7:Netdata

Netdata 是一款 Linux 性能实时监测工具,它可以为 Linux 系统、应用程序、SNMP 服务等提供实时的性能监测,目前在物理系统、虚拟机、容器和物联网/边缘设备上运行。Netdata具有监控指标多而广,数据收集速度快等特点,可以同时并发监控数万个指标,交互式可视化和富有洞察力的健康警报,可以即时诊断基础架构中的异常情况。

8:LibreNMS

LibreNMS 是一个开源、功能丰富且强大的网络监控系统,易于安装和配置,可以在多种平台上使用;它提供了广泛的功能,包括对各种协议的支持、性能监控、警报等;支持广泛的供应商、设备和协议,包括Cisco、Linux、Windows、HP、Juniper、Dell、FreeBSD、Brocade、Citrix、F5 Networks 等; 还可以根据接口进行接口分组,使用SNMP、CDP、ARP、FDP、OSPF、LLDP、BGP自动发现整个网络。

四: Zabbix 系统概述

1:初识 Zabbix

Zabbix是什么,它是一种企业级的分布式开源监控系统的解决方案,Zabbix 是一个基于 Web 界面的提供分布式系统监控,以及网络监控功能的企业级开源解决方案。

Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持。

Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。

Zabbix 支持轮询和 trapping。所有 Zabbix 报告和统计数据以及配置参数都可以通过基于 Web 的前端访问。基于 Web 的前端确保可以从任何位置评估您的网络状态和服务器的健康状况。如果配置得当,不管对于拥有少量服务器的小型组织还是拥有大量服务器的大公司来讲,Zabbix 都可以在监控 IT 基础设施方面发挥重要作用。

Zabbix 是免费的。Zabbix 是在 GPL 通用公共许可证第 2 版下编写和分发的。这意味着它的源代码是免费分发的,可供公众使用。

2:Zabbix的功能特性

(1)数据收集

  • 可用性及性能检测;
  • 支持 SNMP(trapping 及 polling)、IPMI、JMX 监控;
  • 自定义检测;
  • 自定义间隔收集收据;
  • 三种角色:Server、Proxy、Agent。

(2)灵活的阈值定义

允许灵活地自定义问题阀值,在 Zabbix 中称为触发器(trigger), 存储在后端数据库中。

(3)高级告警配置

  • 可以自定义告警升级(escalation)、接收者及告警方式;
  • 告警信息可以配置,并允许使用宏(macro)变量;
  • 通过远程命令实行自动化动作(action)。

(4)实时绘图

通过内置的绘图方法实现监控数据实时绘图。

(5)扩展的图形化显示

  • 允许自定义创建多监控项视图;
  • 生成网络拓扑(network maps);
  • 自定义的面板(screen)和 slide shows,并允许在 dashboard 页面显示;
  • 生成监控报告。

(6)历史数据存储

  • 数据存储在数据库中;
  • 历史数据可配置;
  • 内置数据清理机制。

(7)配置简单

  • 一次配置,终生监控,除非调整或删除;
  • 允许使用模板添加监控设备。

(8)模板使用

  • 模板中可以添加组监控;
  • 模板允许继承。

(8)网络自动发现

  • 自动发现网络设备;
  • Agent 自动注册;
  • 自动发现文件系统、网卡设备、SNMP OID 等。

(9)快速的 Web 接口

  • Web 前端采用 PHP 编写;
  • 访问无障碍。

(10)Zabbix API

Zabbix API 提供程序级别的访问接口,第三方程序可以很快接入。

(11)权限系统

  • 安全的权限认证;
  • 用户可以限制允许维护的列表。

(12)全特性、Agent 易扩展

  • 在监控目标上部署;
  • 支持 Linux 及 Windows。

(13)二进制守护进程

(1) C 语言开发,高性能,低内存消耗;

(2) 易移植。

(14)具备应对复杂环境情况

通过 Zabbix Proxy 可以非常容易的创建远程监控。

3:Zabbix 角色及架构

(1)Zabbix Server

zabbix_server 是 Zabbix 服务端守护进程。Zabbix Agentd、Zabbix Proxy 的数据最终

都是提交到 Server。当然,并不是所有数据都主动提交给 Zabbix Server,也有的是 Server 主动获取数据。

(2)Zabbix Agent

zabbix_agentd 是客户端守护进程,此进程主要用于收集客户端数据,例如 CPU 负载、内存、硬盘使用情况等。

(3)Zabbix Proxy

zabbix_proxy 是 Zabbix 代理守护进程,功能类似 Server。不同的是,zabbix_proxy只是一个中转站,它需要把收集到的数据提交/被提交到 Server。

(4)Zabbix_Web

zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,通常与zabbix_server运行在同一台主机上,也可以单独部署在独立的服务器上。

(5)Zabbix 整体架构

五:实验拓扑结构

1:设备列表

设备

主机名

IP地址

系统

软件

zabbix server

ZBX

192.168.207.131

CentOS7.9

zabbix server 6.4.8

zabbix proxy

proxy

192.168.207.165

CentOS7.9

zabbix proxy 6.4.8

zabbix agent

agent01

192.168.207.166

CentOS7.9

zabbix agent 6.4.8

zabbix agent

agent02

192.168.207.167

CentOS7.9

zabbix agent 6.4.8

2:拓扑结构

:LNMP环境的搭建(在server主机上)

1:配置yum仓库

修改主机名

(1)下载阿里的仓库文件

[root@localhost ~]# hostnamectl set-hostname ZBX

[root@proxy ~]# hostnamectl set-hostname proxy

[root@agent01 ~]# hostnamectl set-hostname agent01

[root@agent02 ~]# hostnamectl set-hostname agent02

#在第一台机器操作 切换阿里源

[root@zbx ~]# curl -o \

/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

[root@zbx ~]# curl -o \

/etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

(2)安装php7的仓库

[root@zbx ~]# yum -y \

install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

(3)生成mariadb10.11的仓库文件

[root@zbx ~]# cat <<EOF> /etc/yum.repos.d/mariadb.repo

[mariadb]

name = MariaDB

baseurl = https://mirrors.aliyun.com/mariadb/yum/10.11/centos/7/x86_64/

gpgcheck=0

EOF

(4)清空yum缓存

[root@zbx ~]# yum clean all

2:安装php74、nginx、mariadb

(1)安装php7.4和nginx

[root@zbx ~]# yum install -y --enablerepo=remi \

--enablerepo=remi-php74 mod_php php-gd* php php-opcache php-mbstring  php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-fpm php-devel php-bcmath php-ldap gcc* libxml2-devel net-snmp net-snmp-devel libevent-devel curl-devel

(2)安装mariadb-10.11

[root@zbx ~]# yum -y install mariadb-server mariadb-devel nginx

备注:

zabbix6.4.8需要的各个平台软件的版本如下:

mysql的版本要求8.0.30-8.1.X

mariadb的版本要求10.5.00-11.1.X

nginx的版本要求1.20 or later

php的版本要求7.4.0 - 8.2.X

3:关闭防火墙

[root@zbx ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

[root@zbx ~]# setenforce 0

[root@zbx ~]# systemctl disable firewalld

[root@zbx ~]# systemctl stop firewalld

4:配置nginx

(1)生成nginx配置文件

cd /etc/nginx

cp nginx.conf nginx.conf.bak

rm -rf nginx.conf

cp nginx.conf.default nginx.conf

(2)修改nginx配置文件

[root@zbx ~]# vim nginx.conf

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   /www;

            index  index.html index.htm index.php;

        }

        location ~ \.php$ {

            root           /www;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

            include        fastcgi.conf;

        }

    }

5:启动服务

systemctl start nginx

systemctl enable nginx

systemctl start php-fpm

systemctl enable php-fpm

systemctl start mariadb

systemctl enable mariadb

cd

6:设置数据库密码

[root@zbx ~]# mysqladmin -u root password 'pwd123'

7:测试LNMP环境

[root@zbx ~]# mkdir /www

[root@zbx ~]# vi /www/test.php

<?php

$link=mysqli_connect('127.0.0.1','root','pwd123');                

if($link) echo "恭喜你,数据库连接成功啦!!";                   

mysqli_close($link);                                                   

?>

8:修改php.ini

[root@zbx ~]# vi /etc/php.ini

max_execution_time = 300     ##388行,最长执行时间是 30 秒,数值 0 表示没有    

                                    ##执行时间的限制,你的程序需要跑多久便跑多久

max_input_time = 300         ##398行,以秒为单位设定了脚本接收输入的最大时间

date.timezone =Asia/Shanghai ##923行

post_max_size = 16M         ##694,服务器可以接收的最大POST数据大小

bcmath.scale = 1             ##1205,所有 bcmath 函数中十进制数字的数目

9:修改php-fpm

[root@zbx ~]# useradd -M -s /sbin/nologin zabbix

[root@zbx ~]# vi /etc/php-fpm.d/www.conf

user = zabbix   #在24行左右

group = zabbix   #在26行左右

systemctl restart php-fpm

在浏览器访问ip 查看是否部署成功

:zabbix的安装与配置(在server主机上)

1:创建zabbix数据库并导入数据

(1)创建zabbix数据库

[root@zbx ~]# mysql -uroot -ppwd123

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';

MariaDB [(none)]> grant all privileges on zabbix_proxy.* TO 'zabbix'@'localhost' identified BY 'zabbix';

MariaDB [(none)]> grant all privileges on zabbix_proxy.* TO 'zabbix'@'%' identified BY 'zabbix';

(2)导入zabbix数据

[root@zbx ~]# tar zxvf zabbix-6.4.8.tar.gz

[root@zbx ~]# cd zabbix-6.4.8/database/mysql/

[root@zbx mysql]# mysql -uzabbix -pzabbix zabbix <schema.sql

[root@zbx mysql]# mysql -uzabbix -pzabbix zabbix <images.sql

[root@zbx mysql]# mysql -uzabbix -pzabbix zabbix <data.sql

[root@zbx mysql]# mysql -uzabbix -pzabbix zabbix_proxy <schema.sql

备注:

如果需要运行zabbix server,需要导入schema.sql、images.sql、data.sql 这三个文件到zabbix数据库

如果需要运行zabbix proxy,还需要导入schema.sql到zabbix_proxy数据库。

2zabbix的安装与配置

(1)源码安装zabbix

[root@zbx mysql]# cd /root/zabbix-6.4.8

[root@zbx zabbix-6.4.8]# ./configure --prefix=/usr/local/zabbix/ \

--enable-server --enable-agent \

--with-mysql \

--with-libcurl \

--with-libxml2 \

--with-net-snmp \

--with-unixODBC \

--with-zabbix-get

[root@zbx zabbix-6.4.8]# make

[root@zbx zabbix-6.4.8]# make install

备注:

--prefix=/usr/local/zabbix:指定zabbix安装路径 

--enable-server:启动server端 

--enable-agent:启动agent端 

--with-mysql:编译连接mysql相关依赖包 

--with-libcurl:启动curl相关 ,对 SMTP 身份验证

--with-libxml2:启动xml相关 ,提供对XML文档的各种操作

--with-net-snmp:启动snmp相关,用于snmp监控设备 ,支持snmp协议

--with-unixodbc:启动odbc相关用于监控数据库 

--with-zabbix-get:zabbix_get 是一种命令行的应用

--enable-java:启动java-agent 用于监控java类,需要安装JAVA环境 

--enable-ipv6:启用IPv6 

--with-libcurl 和 --with-libxml2 配置选项对虚拟机监控是必须的

(2)优化命令路径

[root@zbx zabbix-6.4.8]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

[root@zbx zabbix-6.4.8]# ln -s /usr/local/zabbix/bin/* /usr/local/bin

(3)服务控制脚本的优化

[root@zbx zabbix-6.4.8]# cd /root/zabbix-6.4.8/misc/init.d/fedora/core

[root@zbx zabbix-6.4.8]# cp zabbix_agentd /etc/init.d/

[root@zbx zabbix-6.4.8]# cp zabbix_server /etc/init.d/

[root@zbx zabbix-6.4.8]# cd /etc/init.d/

[root@zbx init.d]# vi zabbix_agentd

        BASEDIR=/usr/local/zabbix

[root@zbx init.d]# vi zabbix_server

        BASEDIR=/usr/local/zabbix

(4)修改zabbix服务端参数

[root@zbx init.d]# cd /usr/local/zabbix/etc

[root@zbx etc]# vi zabbix_server.conf

LogFile=/tmp/zabbix_server.log   #在38行左右

LogFileSize=1024     # 单位M,  47

DBHost=localhost     # 数据库主机名  在87行取消注释

DBName=zabbix     # 数据库中库名  99

DBUser=zabbix     # 数据库用户名  115

DBPassword=zabbix    # 用户密码  在123行左右取消注释

#一下内容可根据需求,本次实验无需修改

Timeout=10     ##超时时间,秒  465

CacheSize=256M     # 根据内存情况尽量调大  402

HistoryCacheSize=256M    # 根据内存情况尽量调大  427

TrendCacheSize=256M

ValueCacheSize=256M

StartTrappers=30

StartPollers=10      # agent端的数量

(5)修改zabbix代理端参数本次实验无需修改

[root@zbx etc]# vi zabbix_agentd.conf

Server=127.0.0.1 ##113

ServerActive=127.0.0.1 ##167

Hostname=Zabbix server ##178

备注:

利用HostnameItem可以动态获取主机的名称

如果配置 HostnameItem=system.hostname 而未配置 Hostname=xxx 参数,那么在web监控页面显示的主机的可见名称为 客户端主机的主机名(即通过 hostname 命令得到的结果)

如果配置 Hostname=xxx 而未 HostnameItem=system.hostname 参数,那么在web监控页面显示的主机的可见名称为 xxx

如果未配置 HostnameItem=system.hostname 和 Hostname=xxx 这两个参数,那么在web监控页面显示的主机的可见名称为 客户端主机的主机名(即通过 hostname 命令得到的结果)

如果同时配置 HostnameItem=system.hostname 和 Hostname=xxx 参数,那么在web监控页面显示的主机的可见名称为 xxx (即以配置文件中的Hostname 定义的为准)

要对一大批主机进行自动配置时,这里就可以使用HostnameItem ,所有的主机都使用一个模板进行批量部署,就避免了每台主机再去单独设置hostname的麻烦

(6)拷贝zabbix网站程序到httpd的网站根目录下

[root@zbx etc]# cd /root/zabbix-6.4.8/ui

[root@zbx ui]# cp -rf * /www

[root@zbx ui]# chown -R zabbix:zabbix /www

[root@zbx ui]# cd ~

(7)启动zabbix

[root@zbx ~]# chkconfig --add zabbix_agentd

[root@zbx ~]# chkconfig --add zabbix_server

[root@zbx ~]# chkconfig zabbix_agentd on

[root@zbx ~]# chkconfig zabbix_server on

[root@zbx ~]# systemctl start zabbix_agentd

[root@zbx ~]# systemctl enable zabbix_agentd

[root@zbx ~]# systemctl start zabbix_server

[root@zbx ~]# systemctl enable zabbix_server

[root@zbx ~]# netstat -anpt | grep zabbix

tcp       0    0 0.0.0.0:10050           0.0.0.0:*    LISTEN      15295/zabbix_agentd

tcp       0    0 0.0.0.0:10051           0.0.0.0:*    LISTEN      15340/zabbix_server

3:zabbix初始配置

(1)登录zbbix

http://192.168.27.152/index.php

2)设置语言

(2)检查环境

要求所有必要条件都是“OK”的提示。

(3)填写数据库信息

(4)主机名设置(保持默认即可,不用填写)

(5)安装前信息汇总,确认无误,即可点击下一步

(6)确认安装成功并点完成

(7)登录界面

默认账号:Admin

默认密码:zabbix

(8)登录后的界面

:安装 Zabbix Agent(在agent主机server01上)

[root@localhost ~]# hostnamectl set-hostname server01

[root@localhost ~]# bash

[root@server01 ~]# systemctl stop firewalld

[root@server01 ~]# setenforce 0

[root@server01 ~]# rpm -ivh pcre2-10.23-2.el7.x86_64.rpm

[root@server01 ~]# rpm -ivh zabbix-agent-6.4.8-release2.el7.x86_64.rpm

[root@server01 ~]# vi /etc/zabbix/zabbix_agentd.conf

Server=192.168.27.152  #117行左右指向 Proxy 地址 ,也可以直接指向server端

ServerActive=192.168.27.152 #171行左右指向 Proxy 地址,也可以直接指向server端

Hostname=agent01  #182行修改主机名

#Agent 本地的名称,需要与将来在 Server 端的 Web 页面上的主机名称一致,名称自定义

[root@server01 ~]# systemctl start zabbix-agent

[root@server01 ~]# systemctl enable zabbix-agent

备注:

Server:被动模式,允许指定的服务器连接本机获取采集的数据

ServerActive:此参数为主动模式需要设置的,主动提交采集数据给指定的服务器,此处可以注释掉,如果要开启主动模式,则开启

:在zabbix server上添加主机

1:添加agent主机

数据采集-->主机->创建主机

主机名称必须与机器查到的名字一致

添加模板

2:添加完成的状态

主机列表中的Availability(可用性)列包括了每个接口的主机的可用性指标,如果定义了主机的zabbix agent接口,可以通过ZBX选项了解主机的可用性。

ZBX为灰色代表未建立主机连接,未进行数据的采集

ZBX为绿色代表主机可用,zabbix agent检查成功

ZBX为红色代表主机不可用,zabbix agent检查失败

备注:

使用zabbix agent接口,需要为主机添加zabbix agent的监控模板

3:查看图像信息

检测-->主机-->图像

4:解决图像中文乱码:

注意:可以直接执行(4)、(5)两步

(1)查找zabbix定义字体的php文件

[root@ZBX ~]# find / -name defines.inc.php

/root/zabbix-6.4.8/ui/include/defines.inc.php

/www/include/defines.inc.php

注意:

/www是本案中zabbix的前端位置,不同的安装者,此位置可能不同

(2)查看zabbix字体文件中用的字体

[root@ZBX ~]# grep "ZBX_FONTPATH" /www/include/defines.inc.php

define('ZBX_FONTPATH', realpath('assets/fonts')); // where to search for font (GD > 2.0.18)

[root@ZBX ~]# grep "ZBX_GRAPH_FONT_NAME" /www/include/defines.inc.php

define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name

(3)查找zabbix的字体文件位置

[root@ZBX ~]# find / -name DejaVuSans.ttf

/root/zabbix-6.4.8/ui/assets/fonts/DejaVuSans.ttf

/usr/share/fonts/dejavu/DejaVuSans.ttf

/www/assets/fonts/DejaVuSans.ttf

(4)在windows系统中找一个ttf或ttc格式的字体

位置在C:\Windows\Fonts

(5)将选择的字体文件上传到/www/assets/fonts目录下

例如此处选择msyhl.ttc(微软雅黑)

[root@ZBX ~]# cd /www/assets/fonts

[root@ZBX fonts]# ln -snf msyhl.ttc DejaVuSans.ttf

备注:

-s  --symbolic比较容易,有-s时表示创建软连接,没有-s时,表示创建硬链接

-f  --force 强行删除任何已存在的目标文件

-n  --no-dereference 把符号连接的目的目录视为一般文件

刷新页面观察效果

第二种管理方式,通过proxy管理

:proxy端的安装(在proxy主机上)

1:导入数据库(在zabbix server服务器)

在本案例中,将zabbix proxy的数据库一同放在了zabbix server服务器的mysql数据库,需要前往zabbix server主机,将schema.sql文件导入到zabbix_proxy数据库。

[root@ZBX ~]# hostnamectl set-hostname proxy

[root@ZBX ~]# bash

[root@proxy ~]# cd /root/zabbix-6.4.8/database/mysql/

[root@proxy ~]# mysql -uzabbix -pzabbix zabbix_proxy <schema.sql

2:关闭防火墙

[root@proxy ~]# hostnamectl set-hostname proxy

[root@proxy ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

[root@proxy ~]# setenforce 0

[root@proxy ~]# systemctl disable firewalld

[root@proxy ~]# systemctl stop firewalld

2:设置yum仓库

curl -o \

/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

curl -o \

/etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

[root@proxy ~]# yum clean all

3:安装依赖包

[root@proxy ~]# yum -y install gcc libxml2-devel unixODBC-devel net-snmp-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel libevent libevent-devel mariadb-devel

4:安装zabbix-proxy上传包

[root@proxy ~]# tar zxvf zabbix-6.4.8.tar.gz

[root@proxy ~]# cd zabbix-6.4.8

[root@proxy zabbix-6.4.8]# ./configure \

 --prefix=/usr/local/zabbix \

 --enable-proxy \

 --with-mysql \

 --with-net-snmp \

 --with-libcurl \

 --with-libxml2 \

 --with-unixODBC

[root@proxy zabbix-6.4.8]# make

[root@proxy zabbix-6.4.8]# make install

5:修改配置文件

[root@proxy zabbix-6.4.8]# vi /usr/local/zabbix/etc/zabbix_proxy.conf

ProxyMode=0 ##13

Server=192.168.27.152 ##32

Hostname=Zabbix proxy ##42

ListenPort=10051 ##58

DBHost=192.168.27.152 ##151

DBName=zabbix_proxy ##165

DBUser=zabbix ##180

DBPassword=c ##190

6:启动

[root@proxy zabbix-6.4.8]# useradd -M -s /sbin/nologin zabbix

[root@proxy zabbix-6.4.8]# /usr/local/zabbix/sbin/zabbix_proxy

[root@proxy zabbix-6.4.8]# netstat -anpt | grep zabbix_proxy

7:web管理界面上添加proxy主机

管理-->Proxy>创建agent代理

选择主动式(默认)

8:设置agent端server02主机配置文件

[root@localhost ~]# hostnamectl set-hostname server02

[root@localhost ~]# bash

[root@server02 ~]# systemctl stop firewalld

[root@server02 ~]# setenforce 0

[root@server02 ~]# rpm -ivh pcre2-10.23-2.el7.x86_64.rpm

[root@server02 ~]# rpm -ivh zabbix-agent-6.4.8-release2.el7.x86_64.rpm

vi /etc/zabbix/zabbix_agentd.conf

#修改Server的值

Server=192.168.27.153   #在113行

ServerActive=192.168.27.152  #在171行左右

Hostname=agent02    #在182行左右

备注:

将Server的地址修改为proxy主机的主机

#启动

systemctl start zabbix-agent

systemctl enable zabbix-agent

3:在web管理界面添加proxy代理的agent主机

5:查看web面板监控到的主机数据

备注:

如果ZBX不会变绿,就重启proxy进程

pkill -9 zabbix_proxy

/usr/local/zabbix/sbin/zabbix_proxy

netstat -anpt | grep zabbix_proxy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2223802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读:华为的LiMAC

《LIGHTWEIGHT NEURAL APP CONTROL》 用于app控制的轻量级神经网络 摘要 输入是一个文本目标和一系列过去的移动感知&#xff0c;比如截图和相应的UI树&#xff0c;来生成精确的动作。 针对智能手机固有的计算限制&#xff0c;我们在LiMAC中引入了一个小型Action Transforme…

【安全解决方案】深入解析:如何通过CDN获取用户真实IP地址

一、业务场景 某大型互联网以及电商公司为了防止客户端获取到真实的ip地址&#xff0c;以及达到保护后端业务服务器不被网站攻击&#xff0c;同时又可以让公安要求留存网站日志和排查违法行为&#xff0c;以及打击犯罪的时候&#xff0c;获取不到真实的ip地址&#xff0c;发现…

元数据 - ​媒体管理

媒体管理 Media Management元数据遵循 XMP&#xff08;可扩展元数据平台&#xff09;规范&#xff0c;特别是 xmpMM&#xff08;XMP Media Management&#xff09;命名空间。通过理解和利用这些元数据&#xff0c;可以更好地管理媒体文件的版本、历史记录、派生关系和管理信息&…

Flutter Image和Text图文组件实战案例

In this section, we’ll go through the process of building a user interface that showcases a product using the Text and Image widgets. We’ll follow Flutter’s best practices to ensure a clean and effective UI structure. 在本节中&#xff0c;我们将使用“Te…

ue5实现数字滚动增长

方法1 https://www.bilibili.com/video/BV1h14y197D1/?spm_id_from333.999.0.0 b站教程 重写loop节点 方法二 写在eventtick里

合并数组的两种常用方法比较

在 JavaScript 中&#xff0c;合并数组的两种常用方法是使用扩展运算符 (...) 和使用 push 方法。 使用扩展运算符 this.items [...this.items, ...data.items]; 优点&#xff1a; 易于理解&#xff1a;使用扩展运算符的语法非常直观&#xff0c;表达了“将两个数组合并成一个…

最新版本jdbcutils集成log4j做详细sql日志、自动释放连接...等

maven坐标 <!-- MySQL 8 --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.33</version></dependency><!-- Druid连接池 --><dependency><groupId&…

记一次AWS服务器扩容

1、首先通过下列命令列出设备详情&#xff0c;可以看到红色框起来的部分有160G&#xff0c;需要把新增的20G扩容到根目录(139.9)上 lsblk查看文件系统 df -h2.执行sudo growpart /dev/xvda 1即可把20G的空间扩容到根目录上 扩容成功 但是可以看到并未生效 3.列出文件系统格…

菜叶子芯酸笔记2:服务器、互联技术和AI芯片参数解读

服务器相关知识 服务器是一种高性能计算机&#xff0c;作为网络的节点&#xff0c;存储、处理网络上80%的数据、信息&#xff0c;因此也被称为网络的灵魂。 服务器的分类 种类 描述 塔式服务器(tower server) 正面似PC机&#xff0c;但侧面长度长很多&#xff0c;无统一标准…

pair类型应用举例

在main.cpp里输入程序如下&#xff1a; #include <iostream> //使能cin(),cout(); #include <utility> //使能pair数据类型; #include <string> //使能string字符串; #include <stdlib.h> //使能exit(); //pair类型可以将两个相同的或不同类…

2024年10月-2025年5月 Oracle 19c OCM 考试安排

2024年10月-2025年5月 Oracle 19c OCM 考试安排&#xff1a; 北京考场&#xff1a; 上海考场&#xff1a; 更新时间&#xff1a;2024年10月25日 Oracle 19c OCM往期学员成绩展示&#xff1a; Oracle 19c OCM认证证书&#xff08;电子版&#xff09;

数理统计(第3章第1节:假设检验的基本概念)

目录 假设检验&#xff1a;对母体的分布或者母体分布中的未知参数提出某种假设&#xff0c;由子样推断是否接受该种假设 假设检验的基本概念&#xff08;概率性质的反证法&#xff09; 假设检验&#xff1a;对母体的分布或者母体分布中的未知参数提出某种假设&#xff0c;由子…

云计算欲上九天,AI大模型能否推波助澜?

大数据产业创新服务媒体 ——聚焦数据 改变商业 时代洪流滚滚朝前&#xff0c;千禧年的“世界末日”并未如期而至&#xff0c;但信息大爆炸了&#xff0c;有人开始探索那80%常规生活以外的“20%世界”。谁都未曾想到恰恰这20%成为了如今赛博世界的“种子”&#xff0c;数据不再…

考研读研生存指南,注意事项

本视频&#xff0c;涉及考研读研的方方面面&#xff0c;从考研初试→复试面试→研究生生活→导师相处→论文专利写作混毕业&#xff0c;应有尽有。有了他&#xff0c;你的研究生生涯稳了。 读研考研注意事项&#xff0c;研究生生存指南。_哔哩哔哩_bilibili 一、考研初试注意事…

C# SM2 加签、验签工具

目录 效果 项目 代码 下载 效果 项目 代码 using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Crypto.Signers; using Org.BouncyCastle.Asn1.GM; using System; using System.Text; using System.Windows.Forms; using Org.BouncyCastle.Asn1.X9; using…

二分查找_在排序数组中查找元素的第一个和最后一个位置

1.朴素二分查找 .二分查找 二分查找思路&#xff1a; 1.left0,rightnums.size()-1&#xff08;最后一个元素下标&#xff09;&#xff0c;取中间元素下标 midleft(right-left)/2 &#xff08;防溢出&#xff09; 2.nums[mid]>target &#xff0c;说明mid右边的元素都大于ta…

软考:缓存和数据库数据一致性问题

参考&#xff1a;CSDN博客&#xff0c;8种方案 前言 为什么要一致 如果数据不一致&#xff0c;那么业务应用从缓存中读取的数据就不是最新的数据&#xff0c;这会导致严重的错误 数据一致性是什么 缓存中有数据&#xff0c;那么&#xff0c;缓存的数据需要和数据库中的值相同 …

vue图片加载失败的图片

1.vue图片加载失败的图片 这个问题发生在测试环境和开发本地&#xff0c;线上环境是可以的&#xff0c;测试环境估计被第三方屏蔽了 2.图片有&#xff0c;却加载不出来 <template v-slot:imageUrlsSlots"{ row }"><div class"flexRow rowCenter"&…

重生之“我打数据结构,真的假的?”--3.栈和队列(无习题)

栈和队列 C语言中的栈和队列总结 在C语言中&#xff0c;**栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;**是两种非常重要的数据结构。它们广泛用于各种应用中&#xff0c;比如内存管理、任务调度、表达式求值等。本文将对这两种数据结构进行详细的介…

element ui中el-image组件查看图片的坑

比如说上传组件使用el-image-viewer组件去看&#xff0c;如果用错了&#xff0c;你会发现&#xff0c;你每次只能看一张图片 <template><div><el-upload action"#" list-type"picture-card" :auto-upload"false" :file-list"…