如何在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/dockertee /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-alpinecontainer_name: zabbix-postgresenvironment:POSTGRES_DB: zabbixPOSTGRES_USER: zabbixPOSTGRES_PASSWORD: srebro.cncommand: -c max_connections=2000restart: alwaysvolumes:- ./postgres_data:/var/lib/postgresql/datanetwork_mode: hostzabbix-server:image: zabbix/zabbix-server-pgsql:7.0-alpine-latest#image: zabbix/zabbix-server-pgsql:7.0-ubuntu-latest-newcontainer_name: zabbix-serverenvironment:DB_SERVER_HOST: 127.0.0.1POSTGRES_USER: zabbixPOSTGRES_PASSWORD: srebro.cnPOSTGRES_DB: zabbixTZ: Asia/Shanghaivolumes:- ./zabbix_alertscripts:/usr/lib/zabbix/alertscriptsnetwork_mode: hostrestart: alwaysdepends_on:- postgreszabbix-web-nginx:image: zabbix/zabbix-web-nginx-pgsql:7.0-alpine-latestcontainer_name: zabbix-web-nginxenvironment:DB_SERVER_HOST: 127.0.0.1POSTGRES_USER: zabbixPOSTGRES_PASSWORD: srebro.cnPOSTGRES_DB: zabbixZBX_SERVER_HOST: 127.0.0.1PHP_TZ: Asia/Shanghainetwork_mode: hostrestart: alwaysdepends_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.pswp.cn/diannao/38693.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38693.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38693.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【小白入門】關于視頻剪輯該自學還是報課?

★解密&#xff1a;【賦能計劃—剪輯小白入門】 ★ 在這個視頻流量為王的時代&#xff0c;人人都想打造屬于自己的IP&#xff0c;今年更是有許多企業家也紛紛下場干起來了&#xff0c;網上曾流行這樣的一句話&#xff1a;“現在人們的生活方式改變了&#xff0c;所有事情都值得…

Anti-Canine Heartworm Antibody (Chicken) - HRP Conjugated

犬心絲蟲&#xff08;學名Dirofilaria immitis&#xff09;是一種寄生絲蟲&#xff0c;通過蚊子叮咬而傳播。感染犬在早期階段&#xff0c;大多不會出現癥狀。隨著病情發展&#xff0c;將出現咳嗽、呼吸困難等癥狀&#xff0c;并伴有右心功能衰竭&#xff0c;最終全身衰弱或虛脫…

檢索增強生成RAG系列3--RAG優化之文檔處理

在上一章中羅列了對RAG準確度的幾個重要關鍵點&#xff0c;主要包括2方面&#xff0c;這一章就針對其中一方面&#xff0c;來做詳細的講解以及其解決方案。 目錄 1 文檔解析1.1 文檔解析工具1.2 實戰經驗1.3 代碼演示 2 文檔分塊2.1 分塊算法2.2 實戰經驗2.3 代碼演示 3 文檔e…

VLAN基礎

一、什么是Vlan VLAN&#xff08;Virtual Local Area Network&#xff09;是虛擬局域網的簡稱&#xff0c;是一種將單一物理局域網&#xff08;LAN&#xff09;在邏輯層面上劃分為多個獨立的廣播域的技術。每個VLAN都是一個獨立的廣播域&#xff0c;其內部主機可以直接通信&am…

python自動化辦公之shutil

目錄 1復制文件&#xff0c;此時存在2份相同文件 2移動文件&#xff0c;此時僅有1份文件 3刪除文件&#xff0c;此時0份文件 用到的庫&#xff1a;shutil&#xff0c;os 實現的效果&#xff1a;復制文件&#xff0c;移動文件&#xff0c;刪除文件 代碼&#xff1a; 1復制…

并發請求數量限制

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>并發請求數量限制</title> </head> <…

使用Colly庫進行高效的網絡爬蟲開發

引言 隨著互聯網技術的飛速發展&#xff0c;網絡數據已成為信息獲取的重要來源。網絡爬蟲作為自動獲取網頁內容的工具&#xff0c;在數據分析、市場研究、信息聚合等領域發揮著重要作用。本文將介紹如何使用Go語言中的Colly庫來開發高效的網絡爬蟲。 什么是Colly庫&#xff1…

力扣974.和可被K整除的子數組

力扣974.和可被K整除的子數組 將余數相同的做差 若為負數要翻正再存入哈希表若為正數要存入哈希表統一操作 (sj % k k ) % k class Solution {public:int subarraysDivByK(vector<int>& nums, int k) {int n nums.size();vector<long> s(n1);for(int i0;i…

超聲波清洗機怎么選?極力推薦四款口碑大牌超聲波清洗機

相信大家都知道超聲波清洗機&#xff0c;每次眼鏡臟的時候&#xff0c;去眼鏡店里讓老板幫忙清洗&#xff0c;她們用的就是超聲波清洗機&#xff0c;通過超聲波的原理深入物品深處清潔&#xff0c;清潔效果非常好。相對手洗的方式&#xff0c;超聲波清洗機能夠保護鏡片在清洗過…

[240701] 蘋果設備持久耐用,人工智能戰略成未來致勝關鍵

目錄 蘋果設備持久耐用&#xff0c;人工智能戰略成未來致勝關鍵 蘋果設備持久耐用&#xff0c;人工智能戰略成未來致勝關鍵 蘋果公司產品策略的轉變及其對未來發展的影響。 現狀&#xff1a; 蘋果硬件創新速度放緩&#xff0c;產品外觀和設計迭代周期變長&#xff0c;導致消…

【開放詞匯分割】Side Adapter Network for Open-Vocabulary Semantic Segmentation

論文鏈接&#xff1a;Side Adapter Network for Open-Vocabulary Semantic Segmentation 代碼鏈接&#xff1a;https://github.com/MendelXu/SAN 作者&#xff1a;Mengde Xu,Zheng Zhang,Fangyun Wei,Han Hu,Xiang Bai 發表單位&#xff1a;華中科技大學、微軟亞洲研究院 會…

Vue 快速入門案例

步驟一&#xff1a;引入vue.js文件 添加<script>標簽并標明路徑 步驟二&#xff1a;定義Vue對象 el Vue接管區域 data 定義數據模型 步驟三&#xff1a;編寫視圖層的展示 v-model 綁定數據模型 {{要展示的數據模型}} 運行效果 總結 文本框里的值&a…

雪花算法的原理以及實現

文章目錄 一、簡介二、算法優缺點三、算法實現 一、簡介 有這么一種說法&#xff0c;自然界中并不存在兩片完全一樣的雪花的。每一片雪花都擁有自己漂亮獨特的形狀、獨一無二。雪花算法也表示生成的ID如雪花般獨一無二。 雪花算法 &#xff08;SnowFlake &#xff09;算法&am…

幾度互聯網站群管理系統全媒體解決方案

隨著高考的結束&#xff0c;各高校開啟了緊張的招生宣傳工作&#xff0c;幾度互聯網站群系統助力各高校招生宣傳。 學校官方網站是互聯網時代學校對外交流的重要途徑和信息公開的主要載體&#xff0c;是展示學校形象、密切聯系師生的重要窗口&#xff0c;是加強校園宣傳思想工…

【MySQL備份】Percona XtraBackup篇

目錄 1.關于Percona XtraBackup 2. Percona XtraBackup有哪些特點&#xff1f; 3.安裝Percona XtraBackup 3.1.環境信息 3.2.安裝步驟 4.實戰演練 4.1.全量備份與恢復 4.2.總結 1.關于Percona XtraBackup Percona XtraBackup是世界上唯一的開源、免費的MySQL熱備份 為…

品牌推廣方案怎么寫?策劃書模板與實戰技巧分享

品牌想要快速得到市場的認可&#xff0c;一個精心策劃的品牌推廣方案是脫穎而出的關鍵。 作為一名手工酸奶品牌創始人&#xff0c;目前全國也復制了100多家門店&#xff0c;這篇文章&#xff0c;我和大家分享下&#xff0c;如何做一個清晰的結構框架、策劃書模板以及實戰技巧&…

【論文閱讀】-- TimeNotes:時間序列數據的有效圖表可視化和交互技術研究

TimeNotes: A Study on Effective Chart Visualization and Interaction Techniques for Time-Series Data 摘要1 介紹和動機2 文獻2.1 時間序列數據探索2.1.1 數據聚合2.1.2 基于透鏡2.1.3 基于布局 3 任務和設計3.1 數據3.2 領域表征3.3 探索、分析和呈現 4 TimeNotes4.1 布局…

Kaggle競賽——房價預測

目錄 1. 特征分析1.1 數據集導入1.2 統計缺失值1.3 可視化缺失值1.4 缺失值相關性分析1.5 訓練集和測試集缺失數據對比1.6 統計特征的數據類型1.7 數值型特征分布直方圖1.8 數值型特征與房價的線性關系1.9 非數值型特征的分布直方圖1.10 非數值型特征箱線圖1.11 數值型特征填充…

JAVA:常用的算法指南

請關注微信公眾號&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、簡述 在軟件開發過程中&#xff0c;算法扮演著關鍵的角色。它們用于解決各種問題&#xff0c;從數據處理到搜索、排序等。本文將介紹幾種常見的算法及其 Java 實現&#xff0c;包括排序算…

ffmpeg推流時Unknown encoder ‘libx264‘

如果環境中有conda&#xff0c;最簡單的辦法就是 conda uninstall ffmpeg conda install ffmpeg 或者 sudo apt-get install -y libgmp3-dev pkg-config gnutls-bin libaom-dev libass-dev libbluray-dev libfdk-aac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-…