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

“运筹帷幄之中,决胜千里之外”。在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.mzph.cn/news/883173.shtml

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

相关文章

基于模型划分的云边协同推理算法

摘要 在网络状态和任务需求的动态变化下&#xff0c;为减少模型推理时延和计算成本&#xff0c;在软件定义网络( Software Defined Network&#xff0c;SDN) 中提出了一种基于模型划分的云边协同推理算法。通过构建复杂度预测器分配任务执行环境&#xff0c;采用深度Q网络(Dee…

国产标准数字隔离器的未来---克里雅半导体

标准数字隔离器是电信号隔离技术的重要组成部分&#xff0c;近年来取得了重大进展。随着工业自动化、汽车电子和电信等行业对更高性能的需求不断增长&#xff0c;国内数字隔离器制造商正在稳步赶上全球标准。本文讨论了数字隔离器技术的新兴趋势、材料创新的影响&#xff0c;以…

网站建设中需要注意哪些安全问题?----雷池社区版

服务器与应用安全指南 1. 服务器安全 1.1 操作系统安全 及时更新补丁&#xff1a;确保操作系统始终安装最新补丁&#xff0c;以防范系统漏洞。例如&#xff0c;Windows Server 定期推送安全更新&#xff0c;修复如远程代码执行等潜在威胁。优化系统服务配置&#xff1a;关闭不…

一家医药企业终止,收入依赖阿里健康,学术推广费快赶上净利润

知原药业终止原因如下&#xff1a;知原药业报告期三年的推广费用超3亿元&#xff0c;快赶上这三年累计3.68亿元的净利润了&#xff0c;交易所质疑其学术推广费单价合理性、是否存在销售返利。并且&#xff0c;公司研发费用率低于行业平均水平&#xff0c;在电商平台营销主要依赖…

pytorh学习笔记——cifar10(三)模仿VGGNet创建卷积网络

VGG16是由牛津大学视觉几何组&#xff08;Visual Geometry Group&#xff09;提出的一种深度卷积神经网络模型。 VGGNet 探索了卷积神经网络的深度与其性能之间的关系&#xff0c;成功地构筑了 16~19 层深的卷积神经网络&#xff0c;同时拓展性又很强&#xff0c;迁移到其它图片…

【LeetCode】11.盛最多水的容器

思路&#xff1a; 利用双指针法进行移动&#xff0c;一个在头一个在尾&#xff0c;此时宽度最宽&#xff0c;当宽度缩小时&#xff0c;高度发生变化&#xff0c;从而可以找到最大值。 代码&#xff1a; int maxArea(int* height, int heightSize) {int* left height;int* …

仿真学习 | Fluent版本迭代一览及选择指南

在计算机辅助工程&#xff08;CAE&#xff09;领域&#xff0c;软件版本的更新迭代&#xff0c;影响了工程师的工作效率、工作习惯和仿真精度&#xff0c;“如何选择软件版本”也永远是摆在每个初学者面前的第一个难题。 计算流体动力学&#xff08;CFD&#xff09;领域的领军…

嵌入式工程师必备——NTC曲线拟合

最近搞了一下NTC热敏电阻&#xff0c;打算和大家分享一下&#xff1b; 首先看NTC手册&#xff0c;25℃时是5K&#xff0c;温度系数B是3470&#xff0c;有一些NTC会直接给出公式&#xff0c;那种直接按照手册计算就好&#xff1b; 1、下面是温度和阻值对照表&#xff0c;这个表…

深度学习:YOLO目标检测和YOLO-V1算法损失函数的计算

简介 YOLO&#xff08;You Only Look Once&#xff09;是一种基于深度学习的目标检测算法&#xff0c;它的核心思想是将目标检测问题转化为一个回归问题&#xff0c;通过一个神经网络直接预测目标的类别和位置。 YOLO算法将输入图像分成SxS个网格&#xff0c;每个网格负责预测…

Golang | Leetcode Golang题解之第498题对角线遍历

题目&#xff1a; 题解&#xff1a; func findDiagonalOrder(mat [][]int) []int {m, n : len(mat), len(mat[0])ans : make([]int, 0, m*n)for i : 0; i < mn-1; i {if i%2 1 {x : max(i-n1, 0)y : min(i, n-1)for x < m && y > 0 {ans append(ans, mat[x…

uni-app微信小程序如何使用高德地图。通过经纬度获取所在城市

高德地图官方是这样介绍的使用方法可以参考&#xff1a;入门指南-微信小程序插件 | 高德地图API 我再介绍一下我得具体应用。 1&#xff0c;首先要在申请高德地图开放平台得账号。然后在这个账号中申请一个应用。类型选择微信小程序。 我的应用 | 高德控制台 获取Key-创建工…

怎样把学生的成绩单独告知家长?

期中考试季的到来让校园里的气氛似乎也变得紧张起来。家长们开始频繁地联系老师&#xff0c;希望了解孩子的表现&#xff1b;孩子们则在考试后&#xff0c;绞尽脑汁地想出各种理由&#xff0c;以期在成绩不理想时能减轻家长的失望。老师们更是忙得不可开交&#xff0c;不仅要批…

C++(标准输入输出流、命名空间、string字符串、引用)

C特点及优势 &#xff08;1&#xff09;实现了面向对象&#xff0c;在高级语言中&#xff0c;处理运行速度是最快&#xff1b; &#xff08;2&#xff09;非常灵活&#xff0c;功能非常强大&#xff0c;相对于C的指针优势&#xff0c;C的优势为性能和类层次结构&#x…

【天气识别系统】Python+卷积神经网络算法+人工智能+深度学习+TensorFlow+算法模型训练+Django网页界面

一、介绍 天气识别系统&#xff0c;以Python作为主要编程语言&#xff0c;通过收集了4种常见的天气图像数据集&#xff08;多云、雨天、晴天、日出&#xff09;&#xff0c;然后基于TensorFlow搭建卷积神经网络算法模型&#xff0c;通过多轮迭代训练&#xff0c;最后得到一个识…

Go 语言基础教程:6.条件判断

在这篇教程中&#xff0c;我们将通过一个简单的 Go 语言程序来学习条件判断结构的使用。以下是我们要分析的代码&#xff1a; package mainimport "fmt"func main() {if 7%2 0 {fmt.Println("7 is even")} else {fmt.Println("7 is odd")}if 8…

社交媒体与客户服务:新时代的沟通桥梁

在数字化时代&#xff0c;社交媒体已成为人们日常生活中不可或缺的一部分&#xff0c;它不仅改变了人们的沟通方式&#xff0c;也深刻影响着企业的客户服务模式。从传统的电话、邮件到如今的社交媒体平台&#xff0c;客户服务的渠道正在经历一场前所未有的变革。社交媒体以其即…

聚类分析算法——K-means聚类 详解

K-means 聚类是一种常用的基于距离的聚类算法&#xff0c;旨在将数据集划分为 个簇。算法的目标是最小化簇内的点到簇中心的距离总和。下面&#xff0c;我们将从 K-means 的底层原理、算法步骤、数学基础、距离度量方法、参数选择、优缺点 和 源代码实现 等角度进行详细解析。…

Easy Excel合并单元格情况简单导入导出

需求 实现报表数据的导入导出&#xff0c;表格中部分数据是系统生成&#xff0c;部分数据是甲方填写&#xff0c;录入系统。 批号唯一 Maven <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.…

《IDE 巧用法宝:使用技巧全解析与优质插件推荐》

在日常撸代码的时候&#xff0c;相信兄弟们在IDEA 中用到不少插件&#xff0c;利用插件&#xff0c;不仅可以提高工具效率&#xff0c;撸起代码来&#xff0c;也格外的娃哈哈…… 一、IntelliJ IDEA 作为一个资深 Java 程序员&#xff0c;除了 IDEA 中默认的插件&#xff0c;我…

linux入门之必掌握知识点

#1024程序员节&#xff5c;征文# Linux基础 top命令详解 top命令是用来查看进程系统资源使用情况的工具&#xff0c;它可以动态的现实。 top命令执行后&#xff0c;按大写M可以按内存使用情况进行排序&#xff0c;大写P可以按CPU使用情况进行排序&#xff0c;大写H可以显示线…