OpenEuler24.x下ZABBIX6/7实战1:zabbix7.2.4安装及zabbix-agent安装

news2025/3/11 7:02:24

兰生幽谷,不为莫服而不芳;

君子行义,不为莫知而止休。

1 安装及准备

先决条件:建议使用CentOS8以上的操作系统。

CentOS8.5.2111内核版本为

图1- 1

华为OpenEuler24(以后简称OE24)的内核为

[root@zbxsvr ~]# uname -r

5.10.0-182.0.0.95.oe2203sp3.x86_64

因此,OE24完全可以满足。所以本系列实验选用华为OE24进行zabbix6的部署。先安装工具

dnf install -y  gcc gcc-c++ curl-devel wget mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel tar make fping net-tools bash-completion

yum -y update

表1-1 Zabbix网络规划(用你们自己的特征网段规划)

主机名

IP

功能

备注

zbxsvr

192.168.0.10

zabbix服务器和前端

zbxagt

192.168.0.81

zabbix agent

windows

192.168.0.123

zabbix agent

1)下载

cd /opt                                                           #进入opt目录

wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.2.4.tar.gz 

#解压zabbix

tar -zxvf zabbix-*.tar.gz

2)关闭SELinux

①临时关闭SELinux(不需要重启,立即生效,但重启后恢复,我们需要永久关闭SELinux

/etc/selinux/config中的SELINUX=enforcing改为SELINUX=disabled

setenforce 0

②永久关闭SELinux(重启后生效)

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

查看是否修改成功

grep -n 'SELINUX=' /etc/selinux/config

图1- 2

3)安装部署MySQL

(1)安装MySQL

dnf install -y mysql-server  #安装MySQL

(2)启动MySQL并查看MySQL启动状态

systemctl start mysqld && systemctl enable mysqld #启动和开机自启MySQL

service mysqld status                                 #查看MySQL启动状态

出现 active (running)代表安装并启动成功

图1- 3

(3)登录MySQL

默认没有密码,直接回车登录

mysql -uroot -p

4)修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123456';

Admin@123456换成你想要的密码,密码要有一定的复杂度。

(5)创建数据库:

创建zabbix用户的并设置密码,此文档用的是Admin@123456(将Admin@123456换成你想要的密码,密码要有一定的复杂度)

#创建数据库

mysql> create database zabbix character set utf8 collate utf8_bin;

Query OK, 1 row affected, 2 warnings (0.01 sec)

#创建zabbix用户

mysql> create user zabbix@localhost identified by 'Admin@123456';

Query OK, 0 rows affected (0.01 sec)

mysql> grant all privileges on zabbix.* to zabbix@localhost;

Query OK, 0 rows affected (0.00 sec)

quit;

Bye

(6)初始化数据库

[root@localhost zabbix-7.2.4]# mysql -uroot -pAdmin@123456 zabbix < /opt/zabbix-*/database/mysql/schema.sql

mysql: [Warning] Using a password on the command line interface can be insecure.

[root@localhost zabbix-7.2.4]# mysql -uroot -pAdmin@123456 zabbix < /opt/zabbix-*/database/mysql/images.sql

mysql: [Warning] Using a password on the command line interface can be insecure.

[root@localhost zabbix-7.2.4]# mysql -uroot -pAdmin@123456 zabbix < /opt/zabbix-*/database/mysql/data.sql

mysql: [Warning] Using a password on the command line interface can be insecure.

语句说明:-u后面是用户名;-p后面是密码;<后面是sql文件的绝对路径;
执行改语句会出警告:[Warning] Using a password on the command line interface can be insecure.
意思是:在命令行界面上使用明文密码可能不安全;此语句不影响命令执行。

4)安装Zabbix

1)创建group,并添加虚拟用户zabbix

groupadd zabbix

useradd -g zabbix -M -s /sbin/nologin zabbix

(2)编译Zabbix Server和Zabbix agent

./configure --sysconfdir=/etc/zabbix/ \

--enable-server \

--enable-agent \

--with-mysql \

--with-net-snmp \

--with-libxml2 \

--with-ssh2 \

--with-openipmi \

--with-zlib \

--with-libpthread \

--with-libevent \

--with-openssl \

--with-ldap \

--with-libcurl \

--with-libpcre

指定目录

IPMI监控所需要包

4)安装工具

yum -y install OpenIPMI OpenIPMI-devel ipmitool freeipmi

出现下图代表编译成功

图1- 4

3安装Zabbix ServerZabbix agent

make install                       #安装

zabbix_server --version          #查看安装的zabbix_server版本

出现下图代表安装成功

图1- 5

4.修改 zabbix_server 配置文件,添加数据库登录密码

MySQL数据库zabbix用户的密码,此文档用的是Admin@123456

sed -i 's/# DBPassword=/DBPassword=Admin@123456/' /etc/zabbix/zabbix_server.conf

查看是否修改成功

grep -n 'DBPassword=' /etc/zabbix/zabbix_server.conf

图1- 6

5.编写Zabbix Server系统管理启动文件

vi /usr/lib/systemd/system/zabbix_server.service

[Unit]

Description=Zabbix Server with MySQL DB

After=syslog.target network.target mysql.service

[Service]

Type=simple

ExecStart=/usr/local/sbin/zabbix_server -f

Restart=always

KillSignal=SIGINT

User=zabbix

[Install]

WantedBy=multi-user.target

查看文件是否正确写入

cat /usr/lib/systemd/system/zabbix_server.service

图1- 7

6.编写Zabbix agent系统管理启动文件

echo "[Unit]

Description=Zabbix Agent

After=syslog.target

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

Restart=always

RestartSec=10s

KillSignal=SIGINT

User=zabbix

[Install]

WantedBy=multi-user.target">/usr/lib/systemd/system/zabbix_agent.service

查看文件是否正确写入

cat /usr/lib/systemd/system/zabbix_agent.service

图1- 8

7.关闭zabbix_server 进程,开启 zabbix-server 并设置开机自启

systemctl daemon-reload && pkill zabbix_server

systemctl start zabbix_server && systemctl enable zabbix_server

8.查看zabbix_server 是否启动成功

systemctl status zabbix_server

如图代表成功:

图1- 9

9.关闭zabbix_agent进程,开启 zabbix-agent 并设置开机自启

systemctl daemon-reload && pkill zabbix_agent

systemctl restart zabbix_agent && systemctl enable zabbix_agent

10.查看abbix_agent 是否启动成功

systemctl status zabbix_agent

图1- 10

11.开启防火墙Zabbix服务端10051端口

sudo firewall-cmd --zone=public --add-port=10051/tcp --permanent #开启指定端口(10051

sudo firewall-cmd --reload #重新加载配置文件

四、搭建web前端

1.安装php8.0

sudo dnf install -y php-8.*

cp /opt/zabbix-*/ui/* /var/www/html/ -R  #将源码中的ui文件复制到php目录

chown apache:apache /var/www/html -R

systemctl start httpd && systemctl enable httpd

sudo dnf install -y php-bcmath php-gd php-xml  php-mbstring php-mysqlnd php-ldap

2.修改/etc/php.ini文件

修改php.ini文件
默认值为:
post_max_size = 8M
max_execution_time = 30
max_input_time = 60
Zabbix
要求最低值为:
post_max_size = 16M
max_execution_time = 300
max_input_time = 300

sed -i 's/post_max_size = 8M/post_max_size = 16M/' /etc/php.ini

sed -i 's/max_execution_time = 30/max_execution_time = 300/' /etc/php.ini

sed -i 's/max_input_time = 60/max_input_time = 300/' /etc/php.ini

查看是否修改成功

grep -n 'post_max_size =' /etc/php.ini

grep -n 'max_execution_time =' /etc/php.ini

grep -n 'max_input_time ='  /etc/php.ini

图1- 11

3.重新加载配置文件

sudo service php-fpm reload #重新加载配置

4.开启防火墙http端口

sudo firewall-cmd --permanent --zone=public --add-service=http #打开http端口

sudo firewall-cmd --reload #重新加载防火墙

五、web页面配置

1.浏览器输入服务器ip,出现此界面

图1- 12

2.设置语言为中文:Chinesezh_CN,点击下一步

图1- 13

3.确认都显示OK,点击下一步

图1- 14

4.输入 MySQL数据库zabbix用户的密码,此文档用的是Admin@123456,点击下一步

图1- 15

5.输入主机名(可以中文),时区选(UTC+08:00Asia/Shanghai,点击下一步

图1- 16

6.确认信息,下一步

图1- 17

7.设置完成,点击完成

图1- 18

有可能会出现php设置错误,点击下载zabbix.conf.php并按指示信息,上传到/var/www/html/conf/重新启动浏览器即可。

8.默认用户名为:Admin ;密码为:zabbix ;登录

图1- 19

图1- 20

5)zabbbix-agent2的安装

Zabbix agent是Zabbix监控系统中的关键组件,负责在被监控的主机上定期收集数据并发送到Zabbix server。而zabbix agent2则是agent的升级版,旨在提供更多附加功能,如增加的采集指标、改进的采集逻辑以及简化的自定义监控插件开发。

zabbix agent与zabbix agent2的区别:

①编程语言与架构:

zabbix agent主要使用C语言编写,具有稳定且高效的特点。

zabbix agent2则部分使用Go语言开发,Go语言的模块化、并发性和简洁性使得agent2在扩展性和灵活性方面更具优势。

②TCP连接数:

zabbix agent在与server通信时,可能需要较多的TCP连接。

zabbix agent2降低了与server之间的TCP连接数,从而提高了通信效率。

③并发性:

zabbix agent在主动监控项的检查上,一次只能采集一个指标。

zabbix agent2则支持并发检查,能够同时采集多个主动检查指标,提高了数据采集的效率。

④扩展性:

zabbix agent的扩展通常依赖于C语言开发的模块。

zabbix agent2则易于通过插件进行扩展,无论是新的原生指标还是自定义插件的开发都更加便捷。

⑤配置与部署:

zabbix agent在配置监控MySQL等数据库时,需要在配置文件中指定相关参数。

zabbix agent2则更加简化,只需在模板中修改相关参数即可。

⑥应用场合:

zabbix agent:

优势:稳定、高效,适用于对性能要求不是特别高、监控需求相对固定的场景。

适用场景:小型监控系统、对资源消耗敏感的环境

zabbix agent2:

优势:灵活、易于扩展,适用于需要监控大量指标、对监控系统有较高灵活性要求的场景。

适用场景:大型监控系统、需要频繁更新和扩展监控功能的环境

我最开始随便下载了一个版本,结果安装过程总出错。后来折腾了很久,都会出问题。后来考虑到版本问题,找了百度AI,如下:

图1- 21

我信了,结果还是出错。后来就死马当活马,把OpenEuler22当作CentOS8,下载Agent,如下图。

图1- 22

安装CentOS8的Agent还是出错。在几近崩溃的情况下,安装了CentOS8的Agent2,居然很顺利地装上了。估计是我的Zabbix选的版本太新了。以前选低版本,一路顺畅地完成了。下面分享我的安装过程。

(1)linux下zabbbix-agent2安装

①安装依赖环境

sudo dnf install -y  gcc-c++ curl-devel wget mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel tar make fping net-tools bash-completion

②安装Zabbix agent 2

Agent

zabbix-agent安装失败,此处略过。

Agent2(版本号尽量与server版本号一致)

rpm -Uvh https://repo.zabbix.com/zabbix/7.2/release/centos/8/noarch/zabbix-release-latest-7.2.el8.noarch.rpm
yum clean all && yum install -y zabbix-agent2

yum install -y zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql

③创建zabbix-agent 日志目录

mkdir -p /usr/local/zabbix/logs                             //创建

chown -Rf zabbix:zabbix /usr/local/zabbix            //赋权

④修改配置文件

vi /etc/zabbix/zabbix_agent2.conf

……

# 被动模式下的 Zabbix-Server/Proxy 地址

Server=192.168.0.10

……

# 主动模式下的 Zabbix-Server/Proxy 地址

ServerActive=192.168.0.10

……

#主机名,设定 Zabbix-Agent 主机名,确保唯一且在 Zabbix-Server web 中一致

Hostname=192.168.0.81

……

# 允许使用不安全的用户参数,允许创建自定义监控项

UnsafeUserParameters=1

……

# 指定 Zabbix-Agent 的日志文件路径

LogFile=/usr/local/zabbix/logs/zabbix_agent2.log

……

⑤启动zabbix-agent

systemctl daemon-reload

systemctl enable zabbix-agent2

systemctl start zabbix-agent2

⑥查看zabbix状态

systemctl status zabbix-agent

图1- 23

netstat -ntlup | grep 10050

tcp6       0      0 :::10050                :::*                    LISTEN      3632/zabbix_agent2

⑦firewalld防护墙放行端口

firewall-cmd --permanent --zone=public --add-port=10050/tcp

firewall-cmd --reload

firewall-cmd --list-all

systemctl status firewalld

(2)Windows下zabbbix-agent2安装

① Zabbix 代理(Agent)简介

Zabbix 代理安装在被监控的主机上,负责收集本地系统的性能和状态数据,并将这些数据发送给 Zabbix 服务器。

  • 主要功能
    • 数据采集:采集本地主机的 CPU、内存、磁盘、网络等性能指标。
    • 数据发送:将采集到的数据定期发送给 Zabbix 服务器。
    • 被动模式:等待 Zabbix 服务器的请求后发送数据。
    • 主动模式:主动将数据发送给 Zabbix 服务器。

②安装和配置

  • 安装
    • Linux:通过包管理器(如 aptyum)安装。
    • Windows:下载安装包进行安装。
  • 配置
    • 配置文件:zabbix_agentd.conf

主要配置项包括服务器地址(Server=)、主机名(Hostname=)等。

服务器版本是7.2.4,因此agent也下载7.2.4

图1- 24

双击安装

图1- 25

填写主机名,以及zabbix服务器的ip,由于没有代理,暂时把代理填为服务器ip。

图1- 26

③检查是否启动

 打开windows命令行终端使用命令netstat -an 查看

图1- 27

看到在监听10050端口就是正常启动啦,下面手动启动就不用管啦,做个了解。因为windows安装好会自行启动的。

④手动启动方式 

windows中安装zabbix-agent默认会自己启动,如果没启动的话这时候就需要手动启动。

cmd命令终端进入安装的目录里,我的示例如下:

C:\Users\Administrator>d:

D:\>cd / D:\Program Files\Zabbix Agent

D:\ Program Files\Zabbix Agent >

 现在就要输入命令进行一些操作

//启动服务:

net start "Zabbix Agent"

//停止服务:

net stop "Zabbix Agent"

//查看服务状态:

sc query "Zabbix Agent"

# D:\Program Files\Zabbix Agent>目录就是我的安装目录里,这里我进入到我的安装目录里执行

卸载服务:

D:\Program Files\Zabbix Agent> zabbix_agentd.exe --uninstall

日志查看

D:\Program Files\Zabbix Agent> zabbix_agentd.log

⑤服务器上监控

服务器浏览器前端:监测/主机

图1- 28

⑥新建主机

图1- 29

填写主机名称,新建一个群windows,增加接口

图1- 30

填写agent端的ip,并按添加

图1- 31

主机就进来了。

图1- 32

这样就是成功添加啦,具体的监控项需要自己定义或需要更多的配置步骤,但是我们可以添加一些通用模板来简单测试与使用。

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

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

相关文章

ROS实践一构建Gazebo机器人模型文件urdf

URDF&#xff08;Unified Robot Description Format&#xff09;是一种基于XML的格式&#xff0c;用于描述机器人模型的结构、关节、连杆和传感器信息&#xff0c;并可以与Gazebo、RViz等仿真环境结合使用。 一、基础语法 1. urdf文件组成 URDF 主要由以下几个核心元素&#…

C++学习——哈希表(一)

文章目录 前言一、哈希表的模板代码二、哈希计数器三、哈希表中的无序映射四、哈希表的总结 前言 本文为《C学习》的第11篇文章&#xff0c;今天学习最后一个数据结构哈希表&#xff08;散列表&#xff09;。 一、哈希表的模板代码 #include<iostream> using namespace…

DeepSeek R1在医学领域的应用与技术分析(Discuss V1版)

DeepSeek R1作为一款高性能、低成本的国产开源大模型,正在深刻重塑医学软件工程的开发逻辑与应用场景。其技术特性,如混合专家架构(MoE)和参数高效微调(PEFT),与医疗行业的实际需求紧密结合,推动医疗AI从“技术驱动”向“场景驱动”转型。以下从具体业务领域需求出发,…

Git 如何配置多个远程仓库和免密登录?

自我简介&#xff1a;4年导游&#xff0c;10年程序员&#xff0c;最近6年一直深耕低代码领域&#xff0c;分享低代码和AI领域见解。 通用后台管理系统 代号&#xff1a;虎鲸 缘由 每次开发后台界面都会有很多相同模块&#xff0c;尝试抽离出公共模块作为快速开发的基座。 目标…

【Linux篇】从冯诺依曼到进程管理:计算机体系与操作系统的核心逻辑

&#x1f4cc; 个人主页&#xff1a; 孙同学_ &#x1f527; 文章专栏&#xff1a;Liunx &#x1f4a1; 关注我&#xff0c;分享经验&#xff0c;助你少走弯路&#xff01; 文章目录 1.冯诺依曼体系结构存储分级理解数据流动 2. 操作系统(Operator System)2.1 概念2.2 设计OS的…

【Linux docker】关于docker启动出错的解决方法。

无论遇到什么docker启动不了的问题 就是 查看docker状态sytemctl status docker查看docker日志sudo journalctl -u docker.service查看docker三个配置文件&#xff1a;/etc/docker/daemon.json&#xff08;如果存在&#xff09; /etc/systemd/system/docker.service&#xff…

【医院内部控制专题】7.医院内部控制环境要素剖析(三):人力资源政策

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、引言 在当今医疗行业竞争日益激烈的背景下,医院内部控制的重要性愈发凸显。内部控制作为医院管理的关键组成部分,对于保障医院资产安全、提高会计信息质量、提升运营效率以及实现战略目标起着至关重要的…

计算机网络——交换机

一、什么是交换机&#xff1f; 交换机&#xff08;Switch&#xff09;是局域网&#xff08;LAN&#xff09;中的核心设备&#xff0c;负责在 数据链路层&#xff08;OSI第二层&#xff09;高效转发数据帧。它像一位“智能交通警察”&#xff0c;根据设备的 MAC地址 精准引导数…

CentOS7离线部署安装Dify

离线部署安装Dify 在安装 Dify 之前&#xff0c;请确保您的机器满足以下最低系统要求&#xff1a; CPU > 2 核 内存 > 4 GiB 1.安装docker和docker compose 启动 Dify 服务器最简单的方式是通过docker compose。因此现在服务器上安装好docker和docker compose&#xf…

力扣hot100_二叉树(4)_python版本

一、199. 二叉树的右视图 思路&#xff1a; 直接复用层序遍历的代码&#xff0c;然后取每层的最后一个节点代码&#xff1a; class Solution:def rightSideView(self, root: Optional[TreeNode]) -> List[int]:层序遍历取每层的第一个if not root: return []res []queue …

bug-Ant中a-select的placeholder不生效(绑定默认值为undefined)

1.问题 Ant中使用a-select下拉框时&#xff0c;placeholder设置输入框显示默认值提示&#xff0c;vue2ant null与undefined在js中明确的区别&#xff1a; null&#xff1a;一个值被定义&#xff0c;定义为“空值” undefined&#xff1a;根本不存在定义 2.解决 2.1 a-select使…

颠覆语言认知的革命!神经概率语言模型如何突破人类思维边界?

颠覆语言认知的革命&#xff01;神经概率语言模型如何突破人类思维边界&#xff1f; 一、传统模型的世纪困境&#xff1a;当n-gram遇上"月光族难题" 令人震惊的案例&#xff1a;2012年Google语音识别系统将 用户说&#xff1a;“我要还信用卡” 系统识别&#xff…

练习:关于静态路由,手工汇总,路由黑洞,缺省路由相关

这是题目,我已经画分好了网段,题目要求是这样的: 划分网段 我为什么一个网段划了6个可用IP(一个网段8个地址)呢,因为我刚开始吧环回接口理解成一个主机了,导致我认为两个环回主机在一个网段,其实每个网段只需要2个地址就可以完成这个练习,我懒得划了,就按第一张图的网段来吧…

J6打卡——pytorch实现ResNeXt-50实现猴痘检测

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊 1.检查GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, d…

vue+dhtmlx-gantt 实现甘特图-快速入门【甘特图】

文章目录 一、前言二、使用说明2.1 引入依赖2.2 引入组件2.3 引入dhtmlx-gantt2.4 甘特图数据配置2.5 初始化配置 三、代码示例3.1 Vue2完整示例3.2 Vue3 完整示例 四、效果图 一、前言 dhtmlxGantt 是一款功能强大的甘特图组件&#xff0c;支持 Vue 3 集成。它提供了丰富的功…

音视频入门基础:RTP专题(16)——RTP封装音频时,音频的有效载荷结构

一、引言 《RFC 3640》和《RFC 6416》分别定义了两种对MPEG-4流的RTP封包方式&#xff0c;这两个文档都可以从RFC官网下载&#xff1a; RFC Editor 本文主要对《RFC 3640》中的音频打包方式进行简介。《RFC 3640》总共有43页&#xff0c;本文下面所说的“页数”是指在pdf阅读…

超分之DeSRA

Desra: detect and delete the artifacts of gan-based real-world super-resolution models.DeSRA&#xff1a;检测并消除基于GAN的真实世界超分辨率模型中的伪影Xie L, Wang X, Chen X, et al.arXiv preprint arXiv:2307.02457, 2023. 摘要 背景&#xff1a; GAN-SR模型虽然…

Ubuntu用户安装cpolar内网穿透

前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件&#xff0c;不仅能够在多种环境和应用场景中发挥巨大作用&#xff0c;还能适应多种操作系统&#xff0c;应用最为广泛的Windows、Mac OS系统自不必多说&#xff0c;稍显小众的Linux、树莓派、群辉等也在起支持之列&#…

小程序事件系统 —— 33 事件传参 - data-*自定义数据

事件传参&#xff1a;在触发事件时&#xff0c;将一些数据作为参数传递给事件处理函数的过程&#xff0c;就是事件传参&#xff1b; 在微信小程序中&#xff0c;我们经常会在组件上添加一些自定义数据&#xff0c;然后在事件处理函数中获取这些自定义数据&#xff0c;从而完成…

【Java学习】包装类

面向对象系列九 包装类变量 一、装箱 1.实例化包装对象 2.静态缓存池 3.写法 二、拆箱 包装类变量 每个基本数据类型都有对应的基本类型的包装类变量&#xff0c;将基本数据类型通过对应的包装类对象载入着进入到类与对象面向对象体系 一、装箱 Integer.valueOf(int) —…