国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于jenkins+gitlab+docker部署zabbix

這篇具有很好參考價值的文章主要介紹了基于jenkins+gitlab+docker部署zabbix。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景

我現(xiàn)在已經(jīng)在一臺服務(wù)器上部署了jenkins和gitlab,現(xiàn)在有一個場景是需要在服務(wù)器上再部署一個zabbix,需要通過jenkins加上gitlab部署,并且要求zabbix是通過docker部署的

前提條件

jenkins、gitlab已完成部署并能正常訪問,服務(wù)器docker能夠正常使用

部署流程

一、準(zhǔn)備Zabbix的Docker部署文件

1、創(chuàng)建Git倉庫:

在GitLab上創(chuàng)建一個新的倉庫,比如命名為zabbix-docker,用來存放Zabbix的Docker部署文件。

mkdir zabbix_docker
cd zabbix_docker
git init
git clone http://{git_ip}:{端口}/root/zabbix_docker.git
#輸入git用戶名/密碼拉取文件,這里目前是空的,正常拉取即可

2、編寫Dockerfile:

如果你打算自定義Zabbix鏡像,可以在倉庫中添加一個Dockerfile。不過,為了簡單起見,我們直接使用官方的Zabbix Docker鏡像。

3、編寫docker-compose.yml:

在倉庫根目錄下創(chuàng)建docker-compose.yml文件,內(nèi)容大致如下:

vim docker-compose.yml
version: '3.5'

services:
  zabbix-db:
    image: mysql:8.0
    container_name: zabbix-mysql-db
    environment:
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix_pass"
      MYSQL_ROOT_PASSWORD: "root_pass"
    command: --character-set-server=utf8 --collation-server=utf8_bin
    volumes:
      - zabbix-mysql-storage:/var/lib/mysql
    restart: always

  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    container_name: zabbix-server
    depends_on:
      - zabbix-db
    environment:
      DB_SERVER_HOST: "zabbix-db"
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix_pass"
    ports:
      - "10051:10051"
    restart: always

  zabbix-frontend:
    image: zabbix/zabbix-web-nginx-mysql:latest
    container_name: zabbix-frontend
    depends_on:
      - zabbix-server
    environment:
      ZBX_SERVER_HOST: "zabbix-server"
      DB_SERVER_HOST: "zabbix-db"
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix_pass"
    ports:
      - "8082:8080"
    restart: always

volumes:
  zabbix-mysql-storage:

二、配置Jenkins

1、安裝插件:

確保Jenkins安裝了GitLab插件和Docker插件。

  • 首先,使用你的賬號登錄Jenkins的Web界面,在Jenkins的首頁上,找到“系統(tǒng)管理”或“Manage Jenkins”,點擊進(jìn)入。
  • 在系統(tǒng)管理頁面,找到“插件管理”或“Manage Plugins”,點擊進(jìn)入。
  • 在插件管理頁面,切換到“可用”或“Available”標(biāo)簽頁,這里列出了所有可以安裝的插件。
  • 在頁面頂部的搜索框中,分別輸入“GitLab”和“Docker”來搜索這兩個插件。
  • 對于GitLab插件,你可能會看到“GitLab Plugin”這樣的結(jié)果,這就是我們需要的。
  • 對于Docker插件,可能會有幾個與Docker相關(guān)的插件,但通常你需要的是“Docker Pipeline”插件,它允許你在Jenkinsfile中定義Docker相關(guān)的操作。
  • 找到這些插件后,勾選它們旁邊的復(fù)選框,然后點擊頁面底部或頂部的“立即安裝”、“Install without restart”或“Download now and install after restart”。
  • 安裝插件可能需要一些時間。安裝完成后,根據(jù)提示重啟Jenkins(如果需要)。

2、創(chuàng)建新的Jenkins任務(wù):

為了部署Zabbix,你需要在Jenkins中創(chuàng)建一個新的任務(wù)。

  • 返回Jenkins首頁,點擊“新建任務(wù)”或“Create a new job”。
  • 輸入任務(wù)名稱:在“任務(wù)名稱”或“Enter an item name”處輸入你的項目名稱,例如“Deploy_Zabbix”。
  • 選擇任務(wù)類型:選擇一個適合的任務(wù)類型,通常對于這種情況,你可以選擇“自由風(fēng)格軟件項目”或“Freestyle project”。
  • 點擊“確定”或“OK” 創(chuàng)建任務(wù)。

3、配置GitLab源:

在任務(wù)配置中,設(shè)置GitLab倉庫的URL和認(rèn)證信息,以便Jenkins能夠從GitLab拉取Zabbix的部署文件。

  • 在任務(wù)配置頁面,找到“源碼管理”或“Source Code Management”部分,選擇“Git”。
  • 填寫倉庫URL:在“Repository URL”處填寫你的GitLab倉庫的URL。
  • 填寫憑據(jù):如果你的GitLab倉庫需要認(rèn)證,點擊“添加”或“Add”按鈕,選擇“Jenkins”來添加憑據(jù)(用戶名和密碼或者私鑰)。

可能出現(xiàn)的問題:
基于jenkins+gitlab+docker部署zabbix,jenkins,gitlab,ci/cd
首先需要確認(rèn)選擇的用戶密碼是不是gitlab拉取到的,其次需要確認(rèn)jenkins安裝完插件后是否正常重啟。

這個HTTP ERROR 403 No valid crumb was included in the request錯誤是Jenkins的防跨站請求偽造(CSRF)保護(hù)機(jī)制導(dǎo)致的。當(dāng)你嘗試提交表單時,Jenkins會期望一個有效的“crumb”用于驗證請求,這個錯誤通常發(fā)生在Jenkins的“crumb”驗證沒有正確配置或者客戶端沒有正確提交“crumb”。
解決這個問題的方法通常包括:

禁用CSRF保護(hù)(不推薦):

進(jìn)入Jenkins系統(tǒng)配置(Manage Jenkins -> Configure Global Security)。
取消選中“防止跨站點請求偽造”或類似的選項。
保存設(shè)置。
請注意,禁用CSRF保護(hù)會降低Jenkins的安全性,因此這不是一個推薦的解決方案。

更新Jenkins到最新版本:
有時候,這個問題是由于Jenkins的一個已知問題導(dǎo)致的,更新到最新版本可能可以解決。

確保Jenkins URL配置正確:
在系統(tǒng)配置中檢查Jenkins的根URL設(shè)置是否正確。

清除瀏覽器Cookies和緩存:
有時候,清除瀏覽器的Cookies和緩存可以解決這個問題。

使用API Token代替密碼:
在Jenkins中為你的用戶生成API Token,并在克隆Git倉庫時使用用戶名和API Token代替用戶名和密碼。

通過腳本直接獲取Crumb并使用:
可以通過編寫腳本從Jenkins API獲取crumb,并在之后的請求中使用這個crumb。

重新登錄:
有時候,簡單的重新登錄到Jenkins可以刷新你的session和crumb。
檢查代理或網(wǎng)絡(luò)設(shè)置:

如果你是通過代理服務(wù)器或有特殊網(wǎng)絡(luò)配置訪問Jenkins,確保代理或網(wǎng)絡(luò)設(shè)置不會阻止crumb的傳遞。
從安全的角度出發(fā),建議不要禁用CSRF保護(hù)。你可以嘗試其它的方法來解決這個問題。如果你不確定如何操作,可以聯(lián)系你的系統(tǒng)管理員協(xié)助處理。

4、添加構(gòu)建步驟:

  • 首先,在Jenkins的界面上找到你剛剛創(chuàng)建的任務(wù),進(jìn)入該任務(wù)的頁面。
  • 在任務(wù)頁面上,點擊“配置”或“Configure”按鈕以進(jìn)入任務(wù)的配置頁面。
  • 在配置頁面中,找到“構(gòu)建”或“Build”這一部分。在這一部分,你可以添加不同類型的構(gòu)建步驟。
  • 點擊“添加構(gòu)建步驟”(“Add build step”)后,在下拉菜單中選擇“執(zhí)行Shell”(“Execute shell”)或者類似的命令來添加一個Shell腳本執(zhí)行步驟。

在構(gòu)建步驟中,添加Shell腳本來執(zhí)行Docker部署,腳本內(nèi)容大致如下:

#!/bin/bash
cd /path/to/your/zabbix-docker
docker-compose down
docker-compose up -d

注意替換/path/to/your/zabbix-docker為你的實際路徑。

  • 編輯完成后,記得點擊頁面底部的“保存”(“Save”)按鈕保存你的配置。
  • 保存配置后,回到任務(wù)頁面,點擊“立即構(gòu)建”(“Build now”),Jenkins就會根據(jù)你的腳本來執(zhí)行構(gòu)建任務(wù)。

三、配置GitLab與Jenkins的集成

1、Webhook:

在GitLab項目設(shè)置中,找到Webhooks部分,添加一個新的Webhook,URL設(shè)置為Jenkins任務(wù)的URL,這樣每次GitLab上的代碼更新都會觸發(fā)Jenkins任務(wù)自動運(yùn)行。

  • 登錄你的GitLab,然后點擊進(jìn)入你想要設(shè)置Webhook的項目。
  • 在項目的側(cè)邊欄菜單中,點擊“設(shè)置”(Settings),然后在下拉菜單中選擇“Webhooks”。
  • 這里你需要填入你的Jenkins服務(wù)器的Webhook URL。這個URL通常是你的Jenkins服務(wù)器地址加上/project/你的任務(wù)名。
    例如:
http://your-jenkins-server:8080/project/你的任務(wù)名

如果你的Jenkins設(shè)置了安全措施,你可能需要在URL中包含一個訪問令牌。

  • 觸發(fā)操作: 選擇你希望觸發(fā)Jenkins任務(wù)的事件,通常是“推送事件”(Push events)。
  • Enable SSL verification: 如果你的Jenkins使用的是https并且有有效的SSL證書,可以勾選這個選項。如果你的Jenkins是http或者沒有有效SSL證書,那么取消這個選項。
  • 添加Webhook:填寫完畢后,點擊“添加Webhook”或“Add webhook”。

四、測試部署

1、推送更新:

向GitLab倉庫推送任何更新,比如修改docker-compose.yml文件。

2、觀察Jenkins:

推送更新后,Jenkins任務(wù)應(yīng)自動運(yùn)行,開始部署Zabbix。

3、驗證Zabbix部署:

Jenkins任務(wù)完成后,訪問Zabbix的Web界面,檢查是否部署成功。

常見問題

1、zabbix容器啟動異常

docker logs zabbixdocker_zabbix-server_1報錯信息:

Starting Zabbix Server. Zabbix 6.4.13 (revision 6e531c4).
Press Ctrl+C to exit.

     7:20240411:033221.929 Starting Zabbix Server. Zabbix 6.4.13 (revision 6e531c4).
     7:20240411:033221.929 ****** Enabled features ******
     7:20240411:033221.929 SNMP monitoring:           YES
     7:20240411:033221.929 IPMI monitoring:           YES
     7:20240411:033221.929 Web monitoring:            YES
     7:20240411:033221.929 VMware monitoring:         YES
     7:20240411:033221.929 SMTP authentication:       YES
     7:20240411:033221.929 ODBC:                      YES
     7:20240411:033221.929 SSH support:               YES
     7:20240411:033221.929 IPv6 support:              YES
     7:20240411:033221.929 TLS support:               YES
     7:20240411:033221.929 ******************************
     7:20240411:033221.929 using configuration file: /etc/zabbix/zabbix_server.conf
     7:20240411:033221.933 cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?)

問題分析:
錯誤信息表明Zabbix數(shù)據(jù)庫的“users”表是空的。這通常意味著Zabbix Server嘗試連接到的數(shù)據(jù)庫并沒有被正確初始化或配置。解決這個問題的步驟如下:

確認(rèn)數(shù)據(jù)庫服務(wù)正在運(yùn)行:首先,確保你的數(shù)據(jù)庫服務(wù)(如MySQL或PostgreSQL)正在運(yùn)行,并且Zabbix Server有權(quán)限訪問它。

檢查Zabbix數(shù)據(jù)庫是否已經(jīng)創(chuàng)建:確保你已經(jīng)按照Zabbix的文檔創(chuàng)建了數(shù)據(jù)庫。對于MySQL,可以使用如下命令查看所有數(shù)據(jù)庫:

mysql -u [username] -p -e "SHOW DATABASES;"

初始化數(shù)據(jù)庫:如果Zabbix數(shù)據(jù)庫已經(jīng)創(chuàng)建,但是“users”表為空,那么可能是因為數(shù)據(jù)庫沒有被正確初始化。Zabbix提供了SQL腳本來初始化數(shù)據(jù)庫,這些腳本位于Zabbix源代碼的database/mysql目錄下。可以使用如下命令來初始化數(shù)據(jù)庫(以MySQL為例)

mysql -u [username] -p [database_name] < schema.sql
mysql -u [username] -p [database_name] < images.sql
mysql -u [username] -p [database_name] < data.sql

其中,[username]是你的數(shù)據(jù)庫用戶名,[database_name]是你的Zabbix數(shù)據(jù)庫名稱。這些腳本將會創(chuàng)建所需的表并填充一些基礎(chǔ)數(shù)據(jù)。

檢查Zabbix Server配置:確認(rèn)/etc/zabbix/zabbix_server.conf文件中的數(shù)據(jù)庫配置正確無誤,包括數(shù)據(jù)庫類型、名稱、用戶和密碼等。

重啟Zabbix Server:在更正任何配置或初始化數(shù)據(jù)庫后,重啟Zabbix Server:

systemctl restart zabbix-server

如果以上步驟無法解決你的問題,建議檢查Zabbix Server的日志文件以獲取更多錯誤信息,這可能會提供更多關(guān)于問題的線索。日志文件通常位于/var/log/zabbix/zabbix_server.log。

2、mysql版本過低

Starting Zabbix Server. Zabbix 6.4.13 (revision 6e531c4).
Press Ctrl+C to exit.

     6:20240411:063242.137 Starting Zabbix Server. Zabbix 6.4.13 (revision 6e531c4).
     6:20240411:063242.137 ****** Enabled features ******
     6:20240411:063242.137 SNMP monitoring:           YES
     6:20240411:063242.137 IPMI monitoring:           YES
     6:20240411:063242.137 Web monitoring:            YES
     6:20240411:063242.137 VMware monitoring:         YES
     6:20240411:063242.137 SMTP authentication:       YES
     6:20240411:063242.137 ODBC:                      YES
     6:20240411:063242.137 SSH support:               YES
     6:20240411:063242.137 IPv6 support:              YES
     6:20240411:063242.137 TLS support:               YES
     6:20240411:063242.137 ******************************
     6:20240411:063242.137 using configuration file: /etc/zabbix/zabbix_server.conf
     6:20240411:063242.146  
     6:20240411:063242.146 Unable to start Zabbix server due to unsupported MySQL database version (5.07.44).
     6:20240411:063242.146 Must be at least (8.00.30).
     6:20240411:063242.146 Use of supported database version is highly recommended.
     6:20240411:063242.146 Override by setting AllowUnsupportedDBVersions=1 in Zabbix server configuration file at your own risk.
     6:20240411:063242.146  
     6:20240411:063242.148 Zabbix Server stopped. Zabbix 6.4.13 (revision 6e531c4)

在compose中修改版本為8.0即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-849370.html

到了這里,關(guān)于基于jenkins+gitlab+docker部署zabbix的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于SNAT+DNAT發(fā)布內(nèi)網(wǎng)K8S及Jenkins+gitlab+Harbor模擬CI/CD的綜合項目

    基于SNAT+DNAT發(fā)布內(nèi)網(wǎng)K8S及Jenkins+gitlab+Harbor模擬CI/CD的綜合項目

    目錄 項目名稱 項目架構(gòu)圖 項目環(huán)境 項目概述 項目準(zhǔn)備 項目步驟 一、修改每臺主機(jī)的ip地址,同時設(shè)置永久關(guān)閉防火墻和selinux,修改好主機(jī)名,在firewalld服務(wù)器上開啟路由功能并配置snat策略。 1. 在firewalld服務(wù)器上配置ip地址、設(shè)置永久關(guān)閉防火墻和selinux,并修改好主機(jī)名

    2024年02月09日
    瀏覽(55)
  • gitlab+jenkins+harbor實現(xiàn)CI/CD(2)——初級

    gitlab+jenkins+harbor實現(xiàn)CI/CD(2)——初級

    git安裝 jenkins主機(jī)上安裝docker-ce 配置倉庫證書 測試 創(chuàng)建項目 創(chuàng)建一個freestyle project 在jenkins主機(jī)獲取密鑰 在gitlab上傳公鑰 在jenkins上傳私鑰 輸入測試命令后保存 點擊立即構(gòu)建 查看控制臺輸出 工作路徑 構(gòu)建觸發(fā)器,定時觸發(fā) 安裝插件 gitlab和 Cloudbee docker 配置gitlab 在網(wǎng)絡(luò)設(shè)

    2024年02月09日
    瀏覽(26)
  • 【基于 GitLab 的 CI/CD 實踐】01、GitLab CI/CD 基礎(chǔ)概念

    【基于 GitLab 的 CI/CD 實踐】01、GitLab CI/CD 基礎(chǔ)概念

    目錄 一、為什么要做 CI/CD ? 1.1 背景-傳統(tǒng)的應(yīng)用開發(fā)發(fā)布模式 問題 1.2 持續(xù)集成與持續(xù)交付 持續(xù)集成(CI) 持續(xù)交付(CD) 持續(xù)部署(CD) 1.3 CI/CD 的價值體現(xiàn) 1.4 推薦常用的 CI/CD 工具 Jenkins GitLab 二、GitLab CI/CD 功能簡介 2.1 GitLab 內(nèi)置持續(xù)集成功能 持續(xù)集成(CI) 連續(xù)交付(

    2024年02月16日
    瀏覽(50)
  • Gitlab CI/CD筆記-第一天-GitOps和以前的和jenkins的集成的區(qū)別

    Gitlab CI/CD筆記-第一天-GitOps和以前的和jenkins的集成的區(qū)別

    一、GitOps-CI/CD的流程圖與Jenkins的流程圖 從上圖可以看到: GitOps與基于Jennkins技術(shù)棧的CI/CD流程,無法從Jenkins集成其他第三方開源的項目來實現(xiàn)換成了Gitlab來進(jìn)行集成。 好處在于:CI 一個工具Gitlab就行了,但CD部分依舊是傳統(tǒng)的云主機(jī)(虛擬機(jī)),物理及,docker單機(jī)容器或者

    2024年02月14日
    瀏覽(27)
  • 使用gitlab 自帶 CI/CD 構(gòu)建部署項目

    使用gitlab 自帶 CI/CD 構(gòu)建部署項目

    這里我用的是橋接模式 橋接模式方便局域網(wǎng)內(nèi)的小伙伴一起使用 如果沒有這個打算可跳過這步 編輯網(wǎng)絡(luò) vi /etc/sysconfig/network-scripts/ifcfg-你的網(wǎng)絡(luò)名稱 修改如下內(nèi)容 這里我有句話要講, 這些信息配置完成后出現(xiàn)\\\"網(wǎng)絡(luò)不可達(dá)\\\" 需要把 BOOTPROTO 改為 dhcp 詳情可參考 處理網(wǎng)絡(luò)不可達(dá)

    2024年02月12日
    瀏覽(27)
  • Gitlab CI/CD 自動化打包部署前端(vue)項目

    Gitlab CI/CD 自動化打包部署前端(vue)項目

    一、虛擬機(jī)安裝 1.vmware下載 2.鏡像下載 3.Ubuntu 4.新建虛擬機(jī) 一直點下一步,直到點擊完成。 5.分配鏡像 二、Gitlab CI/CD 自動化部署項目 1.配置GitLab CI/CD: 2.生成SSH密鑰對: 如果尚未生成,請在本地機(jī)器上生成一個SSH密鑰對: 3.將SSH私鑰添加到GitLab: 4.更新GitLab CI/CD配置: 5

    2024年03月13日
    瀏覽(15)
  • 【基于 GitLab 的 CI/CD 實踐】03、GitLab Pipeline 實踐(上)

    【基于 GitLab 的 CI/CD 實踐】03、GitLab Pipeline 實踐(上)

    目錄 一、GitLab Pipeline 流水線語法有哪些?流水線參數(shù)列表 如何檢查語法錯誤?流水線語法檢測 二、Pipeline 基礎(chǔ)語法 job script before_script after_script stages 未定義 stages ?定義 stages 控制 stage 運(yùn)行順序 ? .pre .post stage variables 綜合實例(一) tags allow_failure when manual 手動 delayed 延遲

    2024年02月17日
    瀏覽(31)
  • GitLab與GitLab Runner安裝(RPM與Docker方式),CI/CD初體驗

    GitLab與GitLab Runner安裝(RPM與Docker方式),CI/CD初體驗

    GitLab 是一個強(qiáng)大的版本控制系統(tǒng)和協(xié)作平臺,記錄一下在實際工作中關(guān)于 GitLab 的安裝使用記錄。 一開始使用 GitLab 時,是在 CentOS7 上直接以 rpm 包的方式進(jìn)行安裝,僅作為代碼托管工具來使用,版本: 14.10.4 。 后續(xù)預(yù)研 GitLab 的 CI/CD 及流水線時,采用 Docker 方式安裝,版本

    2024年02月11日
    瀏覽(35)
  • CI/CD:GitLab-CI 自動化集成/部署 JAVA微服務(wù)的應(yīng)用合集

    CI/CD:GitLab-CI 自動化集成/部署 JAVA微服務(wù)的應(yīng)用合集

    日常開發(fā)中,每次代碼編寫完成后,都需要手動打包,并且上傳服務(wù)器,無論本地打包的時間或者上傳文件到服務(wù)器都需要花費(fèi)大量的時間來完成,都是重復(fù)的并且毫無意義,應(yīng)該將時間花費(fèi)在更有價值的時間上;所以編寫這篇文章,將自己收集、搭建、測試的步驟或經(jīng)驗匯

    2024年02月08日
    瀏覽(24)
  • 【基于 GitLab 的 CI/CD 實踐】02、gitlab-runner 實踐

    【基于 GitLab 的 CI/CD 實踐】02、gitlab-runner 實踐

    目錄 一、gitlab-runner 簡介 1.1 要求 1.2 特點 二、GitLab Runner 安裝 2.1 使用 GItLab 官方倉庫安裝 2.2 使用 deb/rpm 軟件包 2.3 在容器中運(yùn)行 GitLab Runner 三、GitLab Runner 注冊 3.1 GitLabRunner 類型 3.2 獲取 runner token 獲取?shared?類型 runner token ? ?獲取?group?類型的 runner token ? ?獲取?speci

    2024年02月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包