zabbix--獨立部署zabbix-web


遷移yum部署的zabbix組件zabbix-web

背景描述:業主對項目生產環境所有服務器進行了漏洞掃描,結果zabbix監控服務器掃描出大量php和apache的漏洞。

原因分析:

​ 由於我們zabbix服務器上面只是部署了zabbix相關的服務,沒有運行其它服務,故排除為zabbix-web服務依賴php和apache。官方默認依賴包php的版本為5.4.16,而這個版本在php官方也提到過有很多漏洞。

問題解決:

​ 方式一:可以升級php版本和httpd版本。

​ 方式二:將docker-web服務通過docker運行。(這里采用方式)

 

安裝docker

✏️ 1.安裝依賴

# yum install -y yum-utils device-mapper-persistent-data lvm2

✏️ 2.配置docker源

# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

✏️ 3.安裝docker-ce

# yum -y install docker-ce

✏️ 4.更改docker.service配置文件

# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd

✏️ 5.配置daemon.json文件(說明:graph遷移docker默認目錄)

# mkdir /etc/docker /data/docker
# cat >/etc/docker/daemon.json<<EOF
{
  "registry-mirrors": ["https://15y9mzqb.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "graph": "/data/docker"
}
EOF

✏️ 6.啟動docker

# systemctl daemon-reload 
# systemctl enable docker
# systemctl start docker
# systemctl status docker

 

部署zabbix-web

這里采用zabbix-web-nginx-mysql鏡像, 官網zabbix鏡像倉庫中也有zabbix-web-httpd-mysql的鏡像。

✏️ 1.去到dockerhub上面找到對應版本的鏡像

https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql

✏️ 2.下載鏡像

# docker pull zabbix/zabbix-web-nginx-mysql:centos-4.2.8

✏️ 3.啟動容器

# docker run --name zabbix-web-nginx-mysql \
	-e DB_SERVER_HOST="172.xx.xx.xx" \
	-e MYSQL_DATABASE="zabbix" \
	-e MYSQL_USER="zabbix" \
	-e MYSQL_PASSWORD="xxx" \
	-e ZBX_SERVER_HOST="172.xx.xx.xx" \
	-e PHP_TZ="Asia/Shanghai" \
	-p 80:80 \
	-d zabbix/zabbix-web-nginx-mysql:centos-4.2.8

✏️ 4.查看狀態

# docker ps 
CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                         NAMES
7be0a106109f        zabbix/zabbix-web-nginx-mysql:centos-4.2.8   "docker-entrypoint.sh"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp, 443/tcp   zabbix-web-nginx-mysql

✏️ 5.訪問測試

訪問測試:http://IP/,說明我在再宿主機上面部署時訪問需要在地址后面加上/zabbix,而容器則不需要。直接訪問映射的端口即可。

 

grafana修改

如果配置了連接grafana,對應的數據源zabbix的連接地址也需要發生改變。否則grafana會獲取不到數據。

✏️ 1.當我們把zabbix-web部署在宿主機時通過如下命令可以測試grafana能否獲取數據

# curl -s -X POST -H 'Content-Type:application/json' -d '{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "Zabbix@123"},"id": 1}' http://localhost/zabbix/api_jsonrpc.php

✏️ 2.使用docker部署時通過如下命令即可:

# curl -s -X POST -H 'Content-Type:application/json' -d '{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "Zabbix@123"},"id": 1}' http://localhost:80/api_jsonrpc.php

所以grafana數據源中的zabbix設置也需要設置為http://localhost:80/api_jsonrpc.php

通過上面部署就完成了zabbix-web獨立部署,其實zabbix-server等都是可以在docker中部署,后面補充


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM