zabbix 7.0编译部署教程

zabbix 7.0编译部署教程
2024-03-08 16:50·乐维社区
zabbix7.0 alpha版本、beta版本已经陆续发布,Zabbix7.0 LTS版本发布时间也越来越近。据了解,新的版本在性能提升、架构优化等新功能方面有非常亮眼的表现,不少小伙伴对此也已经跃跃欲试。心动不如行动,不妨先体验了一把beta版本。

本教程仅适用于编译部署Zabbix7.0 beta1版本,部署环境为kylinV10。文章内容来源于乐维社区。

事前准备:软件包下载
l kylinV10 sp2 x86_64:
https://pan.baidu.com/s/1-pg76mcXLn8rWP22Adr1iA?pwd=lwjk 提取码: lwjk

l nginx: https://nginx.org/download/nginx-1.24.0.tar.gz

l php: https://www.php.net/distributions/php-8.3.3.tar.gz

l pg:https://ftp.postgresql.org/pub/source/v16.2/postgresql-16.2.tar.gz

l timescaledb:https://codeload.github.com/timescale/timescaledb/tar.gz/refs/tags/2.13.1

l zabbix:https://cdn.zabbix.com/zabbix/sources/development/7.0/zabbix-7.0.0beta1.tar.gz

  1. lnpp安装
    linux+nginx+postgresql+php

(1) 本操作示例中linux环境使用kylinV10 SP2

在这里插入图片描述

(2) 环境已配置公网yum源
在这里插入图片描述
1.1. nginx安装
选择nginx版本 1.24.0

(1) yum 安装工具及环境依赖

#编译工具安装
yum -y install gcc-c++
#nginx 依赖安装
yum -y install pcre-devel openssl-devel

(2) itops用户创建

#程序用户itops创建
groupadd itops
useradd -g itops itops
echo Kylin_p@ssw0rd | passwd --stdin itops

(3) nginx编译操作

tar xf nginx-1.24.0.tar.gz
cd nginx-1.24.0/
./configure --user=itops --group=itops --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre
make -j8 && make install

(4) nginx配置文件编写

mv /opt/nginx/conf/nginx.conf /opt/nginx/conf/nginx.bak
vi /opt/nginx/conf/nginx.conf
#i#输入
user itops itops;
worker_processes 1;

error_log logs/error.log crit;
error_log logs/error.log notice;
error_log logs/error.log info;
pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;

sendfile        on;
#tcp_nopush     on;
#keepalive_timeout  0;
keepalive_timeout  65;
#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm index.php;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}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;}
}

}

测试nginx配置格式

chown itops: -R /opt/zabbix
/opt/nginx/sbin/nginx -t

(5) nginx服务文件编写

vi /usr/lib/systemd/system/nginx.service
#i# 输入
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

(6) nginx服务启动及自启

systemctl enable nginx --now
(7) 页面访问测试
在这里插入图片描述
1.2. 数据库安装
选择postgresql 版本16.2

选择timescaledb 版本2.13.1

(1) yum安装工具及环境依赖

yum install -y unzip gcc gcc-c++ perl readline readline-devel openssl openssl-devel zlib zlib-devel ncurses-devel perl-ExtUtils-Embed python python-devel libxslt* python3-devel

(2) cmake 工具安装

yum install cmake -y

cmake版本需大于3.4版本,如yum方式安装cmake版本低,则需要用手动编译方式进行替换

cmake --version

(3) PG编译安装

编译PG

tar xf postgresql-16.2.tar.gz
cd postgresql-16.2/
./configure --prefix=/opt/postgresql --with-pgport=5432 --with-segsize=16 --with-blocksize=32 --with-wal-blocksize=64 --with-libedit-preferred --with-perl --with-openssl --with-libxml --with-python --with-libxslt --enable-thread-safety --enable-nls=en_US.UTF-8 --without-icu
make -j8 && make install

初始化

mkdir /data
chown itops: /data
su - itops
/opt/postgresql/bin/initdb -D /data/postgresql -E utf8

启动

/opt/postgresql/bin/pg_ctl -D /data/postgresql/ start

设定全局变量

vim /etc/profile
#i # 尾行追加如下部分
PATH=/opt/postgresql/bin:/usr/bin:/usr/sbin:/bin:/sbin/bin
export PATH
PG_CONFIG=/opt/postgresql/bin/pg_config
export PG_CONFIG
PGDATA=/data/postgresql
export PGDATA
LD_LIBRARY_PATH=/opt/postgresql/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

执行如下命令使变量生效

source /etc/profile

(4) TS时序库编译(可选)

tar xf timescaledb-2.13.1.tar.gz
cd timescaledb-2.13.1/
echo y | ./bootstrap -DREGRESS_CHECKS=OFF
cd ./build && make
make install

PG配置载入ts模块

echo “shared_preload_libraries = ‘timescaledb’” >> /data/postgresql/postgresql.conf

重启pg令模块生效

su - itops -c ‘pg_ctl restart’

(5) pg服务文件编写

vi /usr/lib/systemd/system/postgresql.service
#i# 输入
[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=forking
User=itops
Group=itops
Environment=PGPORT=5432
Environment=PGDATA=/data/postgresql
OOMScoreAdjust=-1000
ExecStart=/opt/postgresql/bin/pg_ctl start -D ${PGDATA} -s -o “-p ${PGPORT}” -w -t 300
ExecStop=/opt/postgresql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/opt/postgresql/bin/pg_ctl reload -D ${PGDATA} -s
TimeoutSec=300
[Install]
WantedBy=multi-user.target

(6) pg服务启动及自启

su - itops -c ‘pg_ctl stop’
systemctl enable postgresql --now

1.3. php安装
选择php版本 8.3.3

(1) yum 安装工具及环境依赖

oniguruma、oniguruma-devel包(kylinV10) yum -y install libxml2-devel bzip2-devel libcurl-devel libpng-devel libjpeg-devel freetype-devel gmp-devel openldap-devel readline-devel libxslt-devel net-snmp-devel
cp -frp /usr/lib64/libldap* /usr/lib/
yum install oniguruma-*

#编译安装php
tar xf php-8.3.3.tar.gz
cd php-8.3.3/
./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-pgsql=/opt/postgresql --with-pdo-pgsql=/opt/postgresql --enable-gd --enable-bcmath --with-jpeg --with-freetype --enable-ctype --enable-xml --enable-session --enable-sockets --enable-mbstring --with-gettext --with-ldap --with-openssl --without-pdo-sqlite --without-sqlite3 --enable-fpm
sed -i “s@-lcrypto@-lcrypto -llber@g” Makefile
make -j8 && make install
#配置php相关参数
cp php.ini-production /opt/php/etc/php.ini
ln -s /opt/php/etc/php.ini /etc/php.ini
cp /opt/php/etc/php-fpm.conf.default /opt/php/etc/php-fpm.conf
cp /opt/php/etc/php-fpm.d/www.conf.default /opt/php/etc/php-fpm.d/www.conf
sed -i “s@user = nobody@user = itops@g” /opt/php/etc/php-fpm.d/www.conf
sed -i “s@group = nobody@group = itops@g” /opt/php/etc/php-fpm.d/www.conf
sed -i “s@pm.max_children = 5@pm.max_children = 30@g” /opt/php/etc/php-fpm.d/www.conf
sed -i “s@;pid = run/php-fpm.pid@pid = run/php-fpm.pid@g” /opt/php/etc/php-fpm.d/www.conf
sed -i “s@post_max_size = 8M@post_max_size = 16M@g” /opt/php/etc/php.ini
sed -i “s@max_execution_time = 30@max_execution_time = 300@g” /opt/php/etc/php.ini
sed -i “s@max_input_time = 60@max_input_time = 300@g” /opt/php/etc/php.ini

#生成php-fpm启动文件
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chown -R itops: /opt/php
systemctl enable php-fpm --now

  1. zabbix安装及启动
    2.1. zabbix 编译安装
    选择zabbix版本 7.0.0beta1

(1) yum 安装编译工具及依赖

yum -y install libssh2 libssh2-devel OpenIPMI-devel libevent-devel unixODBC unixODBC-devel java-1.8.0-openjdk-devel openssl-devel

(2) zabbix编译及配置参数定义

tar xf zabbix-7.0.0beta1.tar.gz
cd zabbix-7.0.0beta1
./configure --prefix=/opt/zabbix --enable-server --enable-agent --with-postgresql=/opt/postgresql/bin/pg_config --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-openipmi --enable-ipv6 --enable-java --with-openssl --with-ssh2 --with-iconv --with-iconv-include --with-iconv-lib --with-libpcre --with-libevent --with-zlib --with-zlib-include --with-zlib-lib --with-libpthread --with-ldap
make -j8 && make install
chown itops: -R /opt/zabbix
vi /opt/zabbix/etc/zabbix_server.conf
#文件最后追加如下行
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=ZABBIX
DBPort=5432
Timeout=4
LogSlowQueries=3000
User=itops
StatsAllowedIP=127.0.0.1

(3) zabbix库创建

#创建zabbix用户
su - itops -c ‘createuser --pwprompt zabbix’
#输入用户密码

创建zabbix库
su - itops -c ‘createdb -O zabbix -E Unicode -T template0 zabbix’
在这里插入图片描述
(4) 数据库表结构导入

#进入编译包数据库路径下
cd zabbix-7.0.0beta1/database/postgresql/
#导入表结构
cat schema.sql | /opt/postgresql/bin/psql -Uzabbix zabbix
cat images.sql | /opt/postgresql/bin/psql -Uzabbix zabbix
cat data.sql | /opt/postgresql/bin/psql -Uzabbix zabbix
/opt/postgresql/bin/psql -Uzabbix zabbix -c ‘CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE’
#关闭压缩,如果需要正常压缩,则跳过下方sed命令
sed -i ‘s#compression_status=1#compression_status=0#g’ timescaledb/schema.sql
cat timescaledb/schema.sql | /opt/postgresql/bin/psql -Uzabbix zabbix
#抛出 TimescaleDB is configured successfully 即视为超表创建成功,其余提示信息可忽略
在这里插入图片描述
2.2. zabbix 服务及agent程序启动
(1) 启动zabbix_server

/opt/zabbix/sbin/zabbix_server
ss -lnt在这里插入图片描述
2) zabbix agent启动

echo ‘User=itops’ >> /opt/zabbix/etc/zabbix_agentd.conf
/opt/zabbix/sbin/zabbix_agentd

2.3. zabbix_web 配置及初始化
(1) web部署

#进入编译包路径下
cd zabbix-7.0.0beta1/
#拷贝ui代码至nginx
cp -r ui/ /opt/nginx/html/zabbix
chown itops: -R /opt/nginx/html/zabbix

(2) web页面初始化配置在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是Zabbix7.0 beta1编译部署的全部内容,感兴趣的小伙伴不妨抢先上车体验。

此外,乐维监控V7.0版本也即将与大家见面,敬请期待。

大家好,我是乐乐,专注运维技术研究与分享,更多Zabbix等技术知识与问题,欢迎到乐维社区交流~

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

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

相关文章

ThreeJs 射线拾取不准确设置

欢迎关注进来点个关注; 关注获取更多咨询!关注获取答案! 1、效果图如下: 2、问题描述:点击一开始无法获取当前的位置,官方推荐直接使用 mouseClick.x = (event.offsetX / window.innderWidth) * 2 - 1; mouseClick.y = -(event.offsetY / window.innderHeight) * 2 + 1;…

promise,async →await,then→catch,try→catch 使用简介

提示:promise,async →await,then→catch,try→catch 使用简介 文章目录 前言一、Promise二、promise then/catch三、promise async/await try/catch总结 前言 需求:promise,async →await,then…

多数问题求解之蒙特卡洛与分治法

多数问题(Majority Problem)是一个有多种求解方法的经典问题,其问题定义如下: 给定一个大小为 n n n的数组,找出其中出现次数超过 n / 2 n/2 n/2的元素 例如:当输入数组为 [ 5 , 3 , 5 , 2 , 3 , 5 , 5 ] […

爬虫案例2:playwright 超爽体验

参考链接:https://playwright.bootcss.com/python/docs/intro 目标网站:https://spa6.scrape.center/通过观察,页面的信息是通过Ajax请求后返回的信息 下面使用playwright实现绕过token的获取直接拿到返回的数据import asyncio import json f…

邮件发送:行业会议邀请的高效新选择

随着数字化浪潮的不断深入,营销手段也在不断的创新和升级。因此,如何高效、精准地触达并吸引目标用户群体参与行业会议已成为众多会议举办方的核心关注点。在这一背景下,邮件推送服务凭借其独特的优势正逐渐成为行业会议邀请的新选择。 邮件推…

Linux本地搭建FastDFS系统

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

初级爬虫实战——伯克利新闻

文章目录 发现宝藏一、 目标二、简单分析网页1. 寻找所有新闻2. 分析模块、版面和文章 三、爬取新闻1. 爬取模块2. 爬取版面3. 爬取文章 四、完整代码五、效果展示 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…

挑战杯 基于深度学习的人脸表情识别

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的人脸表情识别 该项目较…

explain关键字的用法(mysql高级部分)

文章目录 简介explain关键字分析 简介 explain主要是用来分析sql语句的,当你的系统中出现慢查询SQL后,你可以使用explain关键字对该语句进行分析。通过使用explain,我们可以得到以下结果 表的读取顺序 哪些索引可能使用 哪些索引被实际使用…

48. 【Linux教程】yum 软件包管理

本小节介绍如何在 Linux 系统中使用 yum 命令软件管理。 1.yum 简介 yum 是 Red Hat 软件包管理器,它能够查询有关可用软件包的信息,从存储库获取软件包,安装和卸载软件包,以及将整个系统更新到最新的可用版本。yum 在更新&#…

netty草图笔记

学一遍根本记不住&#xff0c;那就再学一遍 public static void test_nettyFuture() {NioEventLoopGroup group new NioEventLoopGroup();log.info("开始提交任务");Future<String> future group.next().submit(() -> {log.info("执行异步任…

如何实现sam(Segment Anything Model)|fastsam模型

sam是2023年提出的一个在图像分割领域的大模型&#xff0c;其具备了对任意现实数据的分割能力&#xff0c;其论文的介绍可以参考 https://hpg123.blog.csdn.net/article/details/131137939&#xff0c;sam的亮点在于提出一种工作模式&#xff0c;同时将多形式的prompt集成到了语…

【漏洞复现】网康科技 NS-ASG 应用安全网关 SQL注入漏洞(CVE-2024-2330)

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

Spring学习 基础(三)MVC

5、Spring MVC 传统Web模式&#xff1a; Model:系统涉及的数据&#xff0c;也就是 dao 和 bean。View&#xff1a;展示模型中的数据&#xff0c;只是用来展示。Controller&#xff1a;处理用户请求都发送给 &#xff0c;返回数据给 JSP 并展示给用户。 随着 Spring 轻量级开发…

Python逆向:pyc字节码转py文件

一、 工具准备 反编译工具&#xff1a;pycdc.exe 十六进制编辑器&#xff1a;010editor 二、字节码文件转换 在CTF中&#xff0c;有时候会得到一串十六进制文件&#xff0c;通过010editor使用查看后&#xff0c;怀疑可能是python的字节码文件。 三、逆向反编译 将010editor得到…

【Redis】redis持久化

redis 持久化 Redis是内存数据库&#xff0c;数据都是存储在内存中&#xff0c;为了避免进程退出导致数据的永久丢失&#xff0c;需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘&#xff1b;当下次Redis重启时&#xff0c;利用持久化文件实现数据恢复。除此之…

前端性能优化 | CDN缓存

前言 CDN&#xff08;Content Delivery Network&#xff09;是一种分布式的网络架构&#xff0c;通过在全球各地部署节点服务器来快速传输和分发网络内容。CDN的主要目标是提供快速、可靠的内容传输&#xff0c;以提升用户体验。 本文主要从以下方面讲解CDN 什么是CDNCDN的作…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的木材表面缺陷检测系统(深度学习+Python代码+UI界面+训练数据集)

摘要&#xff1a;开发高效的木材表面缺陷检测系统对于提升木材加工行业的质量控制和生产效率至关重要。本篇博客详细介绍了如何运用深度学习技术构建一个木材表面缺陷检测系统&#xff0c;并提供了完整的实现代码。该系统采用了强大的YOLOv8算法&#xff0c;并对YOLOv7、YOLOv6…

十六、接口隔离原则、反射、依赖注入

接口隔离原则、反射、特性、依赖注入 接口隔离原则 客户端不应该依赖它不需要的接口&#xff1b;一个类对另一个类的依赖应该建立在最小的接口上。 五种原则当中的i 上一章中的接口&#xff0c;即契约。 契约就是在说两件事&#xff0c;甲方说自己不会多要&#xff0c;乙方会在…

如何轻松打造属于自己的水印相机小程序?

水印相机小程序源码 描述&#xff1a;微信小程序。本文将为您详细介绍小程序水印相机源码的搭建过程&#xff0c;教您如何轻松打造属于自己的水印相机小程序。无论您是初学者还是有一定基础的开发者&#xff0c;都能轻松掌握这个教程。 一&#xff1a;水印相机搭建教程 1 隐…