Docker搭建zabbix+grafana監控系統


一、准備工作

1、mysql數據庫:192.168.1.5
2、nginx服務:192.168.1.10
3、docker服務器:192.168.1.20
4、zabbix客戶端若干

二、docker搭建zabbix

1、部署zabbix-server

先部署測試zabbix-server:

mkdir -p /home/docker/server/zabbix
docker pull zabbix/zabbix-server-mysql
docker run --name zabbix-server -p 10051:10051 \
-e DB_SERVER_HOST="192.168.1.5" \
-e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" \
-itd zabbix/zabbix-server-mysql
docker cp zabbix-server:/etc/zabbix /home/docker/server/zabbix/zabbix-server  #將zabbix配置文件放到服務器,為的是修改方便
docker rm -f zabbix-server

啟動正式docker-server:

docker run --name zabbix-server -p 10051:10051 \
-e DB_SERVER_HOST="192.168.1.5" \
-e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="1234565" \
-v /home/docker/server/zabbix/server/zabbix_server.conf:/etc/zabbix/ zabbix_server.conf \
-v /home/docker/server/zabbix/server/alertscripts:/usr/lib/zabbix/alertscripts \
-v /home/docker/server/zabbix/server/externalscripts:/usr/lib/zabbix/externalscripts \
-v /home/docker/server/zabbix/server/modules:/var/lib/zabbix/modules \
-v /home/docker/server/zabbix/server/enc:/var/lib/zabbix/enc \
-v /home/docker/server/zabbix/server/ssh_keys:/var/lib/zabbix/ssh_keys \
-v /home/docker/server/zabbix/server/ssl/certs:/var/lib/zabbix/ssl/certs \
-v /home/docker/server/zabbix/server/ssl/keys:/var/lib/zabbix/ssl/keys \
-v /home/docker/server/zabbix/server/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca \
-v /home/docker/server/zabbix/server/snmptraps:/var/lib/zabbix/snmptraps \
-v /home/docker/server/zabbix/server/mibs:/var/lib/zabbix/mibs \
-itd zabbix/zabbix-server-mysql
注:-v 參數將容器文件映射到服務器,也是方便修改

2、部署zabbix-web

先部署測試zabbix-web:

docker pull zabbix/zabbix-web-nginx-mysql
docker run --name zabbix-web  -p 8080:8080 -p 8443:8443 \
--link zabbix-server:zabbix-server \
-e DB_SERVER_HOST="192.168.1.5" \
-e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" \
-e ZBX_SERVER_HOST="zabbix-server" \
-e PHP_TZ="Asia/Shanghai" \
-itd zabbix/zabbix-web-nginx-mysql
docker cp zabbix-web:/usr/share/zabbix /home/docker/server/zabbix/zabbix-web 
注:
--link 鏈接容器,可以互相通信,接收容器可以獲取源容器的環境變量。   -e 設置環境變量。

啟動正式zabbix-web:

docker run --name zabbix-web  -p 8080:8080 -p 8443:8443 \
--link zabbix-server:zabbix-server \
-v /home/docker/server/zabbix/zabbix-web:/usr/share/zabbix \
-e DB_SERVER_HOST="192.168.1.5" \
-e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" \
-e ZBX_SERVER_HOST="zabbix-server" \
-e PHP_TZ="Asia/Shanghai" \
-itd zabbix/zabbix-web-nginx-mysql

3、部署zabbix-agent

先部署測試zabbix-agent:

docker pull zabbix/zabbix-agent
docker run --name zabbix-agent -p 10050:10050 \
--link zabbix-server:zabbix-server \
-itd zabbix/zabbix-agent
docker cp zabbix-agent:/etc/zabbix /home/docker/server/zabbix/zabbix-agent 
docker rm
-f zabbix-agent

   修改zabbix_agentd.conf配置文件:(有2種情況)

  (1)zabbix-server和zabbix-agent在同一台服務器部署

Server=172.17.0.1      #docker容器的網關地址 

  (2)zabbix-server和zabbix-agent不在一台服務器

Server=192.168.1.20
ServerActive=192.168.1.20:10051
Hostname=主機名

啟動正式zabbix-agent:

docker run --name zabbix-agent -p 10050:10050 \
--link zabbix-server:zabbix-server \
-v /home/docker/server/zabbix/zabbix-agent/zabbix_agentd.conf:/etc/zabbix/zabbix_agentd.conf \
-itd zabbix/zabbix-agent  

在nginx配置域名訪問:

server {
    server_name zabbix.aa.com;
    listen 80;
    location /zabbix/ {
        proxy_pass http://192.168.1.20:8080/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_next_upstream error timeout invalid_header;
    }
}

訪問url:http://zabbix.aa.com/zabbix           默認用戶名密碼:admin/zabbix

注:如果想在沒有裝docker環境的服務器安裝zabbix客戶端,直接下載zabbix-agent安裝包就可以了。(總結來說docker部署的zabbix-agent不太好用,可以用zabbix+grafana實現所有監控功能:zabbix監控Linux服務,grafana監控容器服務)

三、zabbix頁面配置

要配合Grafana做監控系統,所以下面選項中有創建觸發器的操作就可以免除了。

1、提前准備

創建模板:

 創建應用集:

添加主機:

2、監控端口

 添加監控項:

創建觸發器:

點完添加會出現下面這個條件選項:

3、url監控(不需要安裝zabbix-agent)

創建web場景:

四、zabbix結合Grafana頁面展示並郵件警報

因為之前寫過docker部署Prometheus+Grafana,這里搭建grafana就可以了,還需要為grafana安裝一個zabbix插件:

docker exec -it grafana grafana-cli plugins install alexanderzobnin-zabbix-app    #進入容器執行命令
docker restart grafana    #重啟grafana

1、提前准備

訪問Grafana:http://grafana.aa.com  用戶名密碼:admin/grafana123  在頁面配置zabbix插件並添加數據源:         

      保存並測試,如果成功說明和zabbix已經連接成功。

創建報警信息:(grafana自帶的警報)

2、導入json儀表盤模板

根據自己需求下載:https://grafana.com/grafana/dashboards,下載完導入到grafana:

3、手動創建儀表板:

(1)監控端口並報警:

   監控端口並報警配置完成。

(2)監控url並報警:

    監控URL並報警配置完成。

 報警郵件展示:

 

 功能以及操作方面可能有所不足,還在研究,持續更新中!!!

 

人生確實沒有意義,但人生有美。


免責聲明!

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



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