如何在OpenEuler 上快速部署一套Zabbix7.0监控系统

如何在OpenEuler 上快速部署一套Zabbix监控系统

一、环境信息

用途机器IP操作系统备注
zabbix-server172.22.33.180openeuler 22.03 LTS SP37.0 LTS 版本,容器部署
zabbix-agent172.16.10.182openeuler 22.03 LTS SP37.0 源码编译部署

二、Docker 部署

2.1 二进制包下载

wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz

2.2 解压,拷贝至/usr/bin 下

tar -xf docker-19.03.9.tgz
cp docker/* /usr/bin
which docker

2.3 编写docker.service文件

vim /etc/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

备注: 如果想要修改docker默认存储路径,不推荐此方式,建议保留/var/lib/docker ,使用软连接的方式

2.4 添加可执行权限

chmod +x /etc/systemd/system/docker

2.5 启动,加载,开机自启动

systemctl daemon-reload 
systemctl start docker
systemctl enable docker

2.6 配置镜像加速器

请自行准备加速地址[2024年6月]

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxxxx/"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

三、docker-compose 部署

3.1 docker 和 docker-compose 的版本对应关系

  • https://docs.docker.com/compose/compose-file/compose-versioning/#version-1-to-2x

3.2 安装docker-compose

#从GitHub上 下载docker-compose 二进制包
root@manager:~# wget https://github.com/docker/compose/releases/download/1.29.0/docker-compose-Linux-x86_64

#把下载下来的软件包上传到/root 路径下
root@manager:~# mv docker-compose-Linux-x86_64 /usr/bin/docker-compose 
root@manager:~# chmod +x  /usr/bin/docker-compose

#安装后查看下版本
root@manager:~# docker-compose version
docker-compose version 1.29.0, build 07737305
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

四、安装部署zabbix-server

4.1 zabbix7.0新功能描述

更多内容源于zabbix官网,更多详情:

https://www.zabbix.com/documentation/current/zh/manual/introduction/whatsnew700

4.2 zabbix7.0安装要求

更多内容源于zabbix官网,更多详情:

https://www.zabbix.com/documentation/current/en/manual/installation/requirements

4.3 zabbix7.0容器化安装方式

更多内容源于zabbix官网,更多详情:

https://www.zabbix.com/documentation/current/en/manual/installation/containers

Zabbix 提供基于各种操作系统基础映像的映像。要获取特定 Zabbix 组件支持的基础操作系统映像列表,请参阅Docker Hub中的组件描述。所有 Zabbix 映像都配置为在基础映像更新时重建最新映像。

image-20240629235906602

此外还需要 PostgreSQL 数据库支持的 Zabbix serve 运行

4.3.1 使用docker-compose运行zabbix-server

这里我没用创建单独的容器网络,直接使用宿主机网络通信,注意宿主机上的端口,切莫端口冲突

  • 创建zabbix工作目录
mkdir -p /home/application/zabbix
  • 创建docker-compose.yaml 文件 **vim /home/application/zabbix/docker-compose.yaml **
    • 注意自定义修改pg数据库的密码
    • postgres_data 数据库的数据目录,单独挂载在zabbix 的工作目录的postgres_data 下,也就是,/home/application/zabbix/postgres_data
    • zabbix 的 zabbix_alertscripts 自定义警报脚本,单独挂载在zabbix 的工作目录的zabbix_alertscripts 下,也就是,/home/application/zabbix/zabbix_alertscripts
    • 网络模式,宿主机模式
version: "3"
services:
  postgres:
    image: postgres:15.7-alpine
    container_name: zabbix-postgres
    environment:
      POSTGRES_DB: zabbix
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: srebro.cn
    command: -c max_connections=2000
    restart: always
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    network_mode: host

  zabbix-server:
    image: zabbix/zabbix-server-pgsql:7.0-alpine-latest
    #image: zabbix/zabbix-server-pgsql:7.0-ubuntu-latest-new
    container_name: zabbix-server
    environment:
      DB_SERVER_HOST: 127.0.0.1
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: srebro.cn
      POSTGRES_DB: zabbix
      TZ: Asia/Shanghai
    volumes:
      - ./zabbix_alertscripts:/usr/lib/zabbix/alertscripts
    network_mode: host
    restart: always
    depends_on:
      - postgres

  zabbix-web-nginx:
    image: zabbix/zabbix-web-nginx-pgsql:7.0-alpine-latest
    container_name: zabbix-web-nginx
    environment:
      DB_SERVER_HOST: 127.0.0.1
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: srebro.cn
      POSTGRES_DB: zabbix
      ZBX_SERVER_HOST: 127.0.0.1
      PHP_TZ: Asia/Shanghai
    network_mode: host
    restart: always
    depends_on:
      - zabbix-server
  • 运行docker-compose
[root@localhost zabbix]# cd /home/application/zabbix
[root@localhost zabbix]# docker-compose up -d
[root@localhost zabbix]# docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
zabbix-postgres     "docker-entrypoint.s…"   postgres            running             
zabbix-server       "/usr/bin/docker-ent…"   zabbix-server       running             
zabbix-web-nginx    "docker-entrypoint.sh"   zabbix-web-nginx    running             

4.3.3 登录zabbix-server web控制台

WEB登录地址: http://172.22.33.180:8080

默认密码: Admin/zabbix

image-20240630001648914

image-20240630001717356

五、安装部署zabbix-agent

5.1 zabbix7.0 源码包下载

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

5.2 编译及依赖包环境准备

我这里是openeuler 系统,尝试使用zabbix 官网提供的7.0 的rpm 包。但是在安装的时候,总是提示环境有问题,报错如下:

[root@localhost ~]# yum install ./zabbix-agent-7.0.0-release1.el7.x86_64.rpm 
  - 没有东西可提供 libcrypto.so.10()(64bit)(zabbix-agent-7.0.0-release1.el7.x86_64 需要)
  - 没有东西可提供 libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)(zabbix-agent-7.0.0-release1.el7.x86_64 需要)
  - 没有东西可提供 libcrypto.so.10(OPENSSL_1.0.2)(64bit)(zabbix-agent-7.0.0-release1.el7.x86_64 需要)
  - 没有东西可提供 libcrypto.so.10(libcrypto.so.10)(64bit)(zabbix-agent-7.0.0-release1.el7.x86_64 需要)
  - 没有东西可提供 liblber-2.4.so.2()(64bit)(zabbix-agent-7.0.0-release1.el7.x86_64 需要)
  - 没有东西可提供 libldap-2.4.so.2()(64bit)(zabbix-agent-7.0.0-release1.el7.x86_64 需要)
  - 没有东西可提供 libssl.so.10()(64bit)(zabbix-agent-7.0.0-release1.el7.x86_64 需要)
  - 没有东西可提供 libssl.so.10(libssl.so.10)(64bit)(zabbix-agent-7.0.0-release1.el7.x86_64 需要)
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

image-20240630002407072

尝试着去解决,最终还是放弃了,需要修改系统上的lib库,太过于复杂,还是索性采用源码编译的方式部署zabbix-agent

  • openeuler 编译及依赖包安装【跟着我安装下面的软件包,编译分分钟丝毫没有问题】
yum groupinstall -y "Development Tools"
yum install -y net-snmp net-snmp-devel libevent libevent-devel openssl openssl-devel curl curl-devel fping pcre pcre-devel pkgconfig
  • 添加zabbix用户,用户组
groupadd --system zabbix
useradd --system -g zabbix -d /usr/local/zabbix -s /sbin/nologin/ zabbix
  • 开始编译zabbix-agent 包
tar -xf zabbix-7.0.0.tar.gz 
cd zabbix-7.0.0/
./configure --prefix=/usr/local/zabbix --enable-agent --with-libcurl --with-net-snmp --with-libevent --with-openssl --enable-ipv6
make
make install

5.3 配置zabbix-agent并启动

  • 创建zabbix-agent 日志目录
mkdir -p /usr/local/zabbix/logs
  • 修改zabbix工作目录权限
chown -Rf zabbix:zabbix /usr/local/zabbix
  • 使用systemd管理配置zabbix-agent
[root@localhost home]# vim /etc/systemd/system/zabbix-agent.service
[Unit]
Description = Zabbix Agent
After = syslog.target network.target
 
[Service]
Type = forking
Restart = on-failure
KillMode = control-group
ExecStart = /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
RestartSec = 10s
TimeoutSec = 0
User = zabbix
Group = zabbix
 
[Install]
WantedBy = multi-user.target

  • 修改配置文件 /usr/local/zabbix/etc/zabbix_agentd.conf 参数【ServerServerActiveHostnameUnsafeUserParameters,LogFile
# 被动模式下的 Zabbix-Server/Proxy 地址
Server=172.22.33.180

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

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

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

# 指定 Zabbix-Agent 的日志文件路径
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
  • reload 并启动zabbix-agent
[root@k8s-node1 etc]# systemctl daemon-reload

[root@k8s-node1 etc]# systemctl enable zabbix-agent

[root@k8s-node1 etc]# systemctl start zabbix-agent

[root@k8s-node1 etc]# ps -ef | grep zabbix_agent
zabbix    478193       1  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
zabbix    478194  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix    478195  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix    478196  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix    478197  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix    478198  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #4 [waiting for connection]
zabbix    478199  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #5 [waiting for connection]
zabbix    478200  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #6 [waiting for connection]
zabbix    478201  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #7 [waiting for connection]
zabbix    478202  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #8 [waiting for connection]
zabbix    478203  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #9 [waiting for connection]
zabbix    478204  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: listener #10 [waiting for connection]
zabbix    478205  478193  0 00:48 ?        00:00:00 /usr/local/zabbix/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root      478329  439035  0 00:48 pts/0    00:00:00 grep --color=auto zabbix_agent

[root@k8s-node1 etc]# netstat -ntlup | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      478193/zabbix_agent 
tcp6       0      0 :::10050                :::*                    LISTEN      478193/zabbix_agent 

5.4 配置zabbix-server 添加客户端监控

登录zabbix-server 控制台/数据采集/主机/右上角,创建主机

image-20240630005106815

  • 填写主机名称,【注意必须和zabbix-agent.conf 中的Hostname 保持一致】
  • 添加模板,勾选 Linux by Zabbix agent
  • 主机群组,Linux servers 【也可以自己创建主机群组】
  • 添加接口,类型为Agent,填写zabbix-agent 客户端IP,端口

image-20240630010024138

等看到zabbix 可用性,变成绿色 就表示,已经成功添加zabbix-agent

image-20240630010107722

查看最新数据, 监测/最新数据

image-20240630011451105

六、总结

关于使用容器化的方式部署zabbix-server ,采用宿主机网络的问题

当部署zabbix-server 的时候,单独创建一个容器网络bridge,zabbix-server 那台主机的zabbix-agent【注意说是zabbix-server 本机】 想要和zabbix-server 通讯的时候,zabbix-agent 的配置文件中的ServerServerActive 配置成宿主机的IP,发现zabbix-agent 日志一直在报错,提示 需要连接zabbix-server 的容器IP,比如 10.114.0.2 ; 当然也可以解决,直接写成容器IP也行,但是我们不能保证容器内的IP不发生变化; 为了解决这个问题,我直接采用了宿主机的通讯方式,在端口不冲突的情况下,完成agent和server 的通讯。

openeuler 系统上,使用zabbix 官网的RPM 包不兼容问题

还是手动编译安装吧,zabbix 没有去做设配openeuler 的RPM包,当然您也可以编译贡献RPM 包给社区,哈哈

此文章,讲的是如何快速部署一套zabbix环境

抛开我们以往的传统部署方式,安装前端环境,apache或者nginx,再去安装数据库,mysql 或者 pg;再就是php 环境,一套部署下来也需要不少精力和时间,只能说容器真的太方便了

来源于srebro.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

七月论文审稿GPT第5版:拿我司七月的早期paper-7方面review数据集微调LLama 3

前言 llama 3出来后&#xff0c;为了通过paper-review的数据集微调3&#xff0c;有以下各种方式 不用任何框架 工具 技术&#xff0c;直接微调原生的llama 3&#xff0c;毕竟也有8k长度了 效果不期望有多高&#xff0c;纯作为baseline通过PI&#xff0c;把llama 3的8K长度扩展…

生产环境部署与协同开发-Docker(原创超全)

关闭防火墙 systemctl stop firewalld.service 关闭SELinux vim /etc/selinux/config 查看yum支持的包并安装docker引擎 yum listyum install -y docker 启动docker设置docker自启动测试docker是否安装成功&#xff1f; systemctl start dockersystemctl enable dockerdoc…

把图片的透明部分去掉

问题&#xff1a; canvas裁剪的图把整个画布都剪下来了&#xff0c;但只要有元素的部分 // 图像处理// 把图片的透明部分去掉 export function getImagesRealSize(dataUrl) {return new Promise((resolve, reject) > {// 将Base64解码为二进制数据let binaryString atob(…

【启明智显活动分享】 启明与你,上海慕尼黑电子展不见不散!

启明与你&#xff0c;上海慕尼黑电子展不见不散&#xff01;&#x1f389; &#x1f50d; 展会现场&#xff0c;你将亲眼目睹RTOS、LINUX、Android全系列方案及产品的精彩展示。从经典到前沿&#xff0c;一站式满足你的技术探索需求。 &#x1f4a1; 更值得期待的是&#xff0…

微信小程序毕业设计-英语互助系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

硬件实用技巧:cadence Aleego创建焊盘过程

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140110911 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

windows USB 设备驱动开发-Host端和Device端

Windows 中的 USB 宿主端驱动程序 下图显示了适用于 Windows 的 USB 驱动程序堆栈的体系结构框图。 此图显示了适用于 USB 2.0 和 USB 3.0 的单独 USB 驱动程序堆栈。 当设备连接到 xHCI 控制器时&#xff0c;Windows 加载 USB 3.0 驱动程序堆栈。 Windows 为连接到 EHCI、OHC…

Windows/Linux/Mac 系统局域网服务发现协议及传输速度比较

简介 分析 / 验证对比常见局域网服务发现协议在 Windows/Linux/Mac 等不同系统下的支持和表现 在使用不同系统的智能硬件时&#xff0c;如常见的树莓派 / Openwrt 路由器 / Debian/Fedora/Windows/Mac 等系统是&#xff0c;系统间相互发现以及网络共享本应是系统的基础服务&a…

【RT摩拳擦掌】基于RT106L/S语音识别的百度云控制系统

【RT摩拳擦掌】基于RT106L/S语音识别的百度云控制系统 一 文档简介二 平台构建2.1 使用平台2.2 百度智能云2.2.1 物联网核心套件2.2.2 在线语音合成 2.3 playback语音数据准备与烧录2.4 开机语音准备与添加2.5 唤醒词识别词命令准备与添加 三 代码准备3.1 sln-local/2-iot 代码…

黑马点评下订单-小程序下单没问题但是Postman发送请求失败了,返回401

经过多方探索&#xff0c;这个✓8错误就是由于黑马点评使用了拦截器&#xff0c;我们直接发送请求是会被拦截器拦截下来的&#xff0c;我给出的解决方案是通过配置Postman解决&#xff0c;方法很简单&#xff01; 解决方案 右边的value写上Redis里面登录所用token值就可以了…

【TB作品】打地鼠游戏,ATMEGA16单片机,Proteus仿真 打地鼠游戏

11个按键LCD1602显示器9个灯蜂鸣器打地鼠小游戏就是九个灯泡&#xff0c;对应九个按键&#xff0c;灯泡有红黄蓝&#xff0c;每间隔一会儿就会亮一个灯&#xff0c;代表地鼠冒出来&#xff0c;按一下按键让灯泡灭掉代表打地鼠&#xff0c;红的三分&#xff0c;黄的两分&#xf…

开发自动发送国际短信的工具需要用到哪些源代码?

在当今数字化、全球化的时代&#xff0c;国际短信作为一种高效、便捷的沟通方式&#xff0c;在各个领域发挥着越来越重要的作用。 开发一款能够自动发送国际短信的工具&#xff0c;不仅能够帮助企业实现精准营销、客户服务&#xff0c;还能为个人提供便捷的跨国交流方式。 本…

手把手教你搭建PyTorch环境:MindStudio中PyTorch模型开发实战

本次实验的视频链接如下&#xff1a;​https://www.bilibili.com/video/BV1iA4y1f7o1/ 本次实验在MindStudio上进行&#xff0c;请先按照 教程 配置环境,安装MindStudio。 ​ MindStudio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台&#xff0c;该IDE上功能很多…

Leetcode.1735 生成乘积数组的方案数

题目链接 Leetcode.1735 生成乘积数组的方案数 rating : 2500 题目描述 给你一个二维整数数组 q u e r i e s queries queries &#xff0c;其中 q u e r i e s [ i ] [ n i , k i ] queries[i] [n_i, k_i] queries[i][ni​,ki​] 。第 i i i 个查询 q u e r i e s [ i …

AI绘画工具Midjourney:和Discord互相成就

前言 提到文生图&#xff0c;很多人都会想到植根于根植于Discord社区的Midjourney&#xff0c;本篇文章就基于作者的使用体验思考&#xff0c;并结合了Discord来对Midjourney进行探讨&#xff0c;感兴趣的朋友一起来看看吧。 如果要说现在最火的文生图&#xff0c;不得不说到Mi…

深入理解 “androidx.databinding.DataBindingUtil“ 细节和使用

介绍 数据绑定&#xff08;Data Binding&#xff09;是 Android 中的一个强大功能&#xff0c;它允许你使用声明性格式而不是编程方式将布局中的 UI 组件绑定到应用中的数据源。androidx.databinding.DataBindingUtil 类是一个工具类&#xff0c;它提供了用于处理数据绑定的方…

单片机语音识别控制蓝牙通信

基于单片机语音识别控制&蓝牙控制 1、Arduino单片机语音控制1.1 直连1.2 蓝牙无线连接1.3 部分核心程序1.4 实物演示 2、51单片机语音控制2.1 直连2.2 蓝牙无线连接2.3 部分核心程序2.4 实物演示 3、STM32单片机语音控制3.1 直连3.2 蓝牙无线连接3.3 部分核心程序3.4 实物演…

数据结构之“刷链表题”

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;数据结构 目录 前言 一、相交链表 题目链接 大致思路 代码实现 二、环形链表1 题目链接 大致思路 代码实现 三、环形链表2 题目链接 大致思路 代码实…

RANSAC空间圆拟合实现

由初中的几何知识我们可以知道&#xff0c;确定一个三角形至少需要三个不共线的点&#xff0c;因此确定一个三角形的外接圆至少可用三个点。我们不妨假设三个点坐标为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)。 圆方程的标准形式为&#xff1a; (xi-x)2(yi-y)2R2 &#xff08;1…

8605 删数问题

这是一个典型的贪心算法问题。我们可以从高位开始&#xff0c;找到第一个比后面数字大的数字&#xff0c;删除它&#xff0c;然后继续这个过程&#xff0c;直到删除k个数字。如果我们已经删除了k个数字&#xff0c;但是还没有找到一个比后面数字大的数字&#xff0c;那么我们就…
最新文章