天天看點

zabbix容器化安裝及監控docker應用

一、zabbix agent2 介紹

從Zabbix 4.4之後,官方推出了Zabbix Agent 2,意味着zabbix 不在隻是實體機監控的代名詞,現在你可以使用Go為Zabbix編寫插件,來監控各類應用及微服務。

以下為官方對zabbix agent2的介紹:

Zabbix agent2是新一代Zabbix代理,可以代替Zabbix代理使用。Zabbix agent2已開發為:

  • 減少TCP連接配接數
  • 具有更大的支票并發
  • 易于通過插件擴充。插件應該能夠:
  • 提供僅由幾行簡單代碼組成的瑣碎檢查
  • 提供由長期運作的腳本和獨立的資料收集組成的複雜檢查,并定期發送回資料
  • 替代Zabbix代理(因為它支援所有以前的功能)
  • agent2用Go編寫(重用了Zabbix代理的一些C代碼)。建構Zabbix agent2需要配置的Go版本1.13+環境。

本文主要介紹如何通過zabbix agent2 來監控你的docker應用。

二、zabbix 5.x 安裝

1.安裝docker 版本不限制,過程參考網絡不再贅述。
2.容器化方式安裝 zabbix server
  • 安裝華為zabbix 5.2 yum源
rpm -ivh https://repo.huaweicloud.com/zabbix/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm
           
  • 建立容器網絡
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
           
  • 建立資料庫容器
docker run --name mysql-server -t \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      --network=zabbix-net \
      -d mysql:8.0 \
      --restart unless-stopped \
      --character-set-server=utf8 --collation-server=utf8_bin \
      --default-authentication-plugin=mysql_native_password
           
  • 建立 zabbix-java-getway 容器
docker run --name zabbix-java-gateway -t \
      --network=zabbix-net \
      --restart unless-stopped \
      -d zabbix/zabbix-java-gateway:alpine-5.2-latest
           
  • 建立 zabbix-server-mysql 容器
docker run --name zabbix-server-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --network=zabbix-net \
      -p 10051:10051 \
      --restart unless-stopped \
      -d zabbix/zabbix-server-mysql:alpine-5.2-latest
      
# 暴露 10051/TCP端口
           
  • 建立web前端容器
docker run --name zabbix-web-nginx-mysql -t \
      -e ZBX_SERVER_HOST="zabbix-server-mysql" \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      --network=zabbix-net \
      -p 80:8080 \
      --restart unless-stopped \
      -d zabbix/zabbix-web-nginx-mysql:alpine-5.2-latest
#暴露 80端口
           
3. 登入server ip位址驗證安裝
# docker ps  四個容器已正常啟動
[root@VM-0-5-centos ~]# docker ps 
CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS              PORTS                            NAMES
5dc24c3d05e5        mysql:8.0                                         "docker-entrypoint..."   3 weeks ago         Up 3 weeks          3306/tcp, 33060/tcp              mysql-server
12aa15d78de2        zabbix/zabbix-web-nginx-mysql:alpine-5.0-latest   "docker-entrypoint.sh"   3 weeks ago         Up 3 weeks          8443/tcp, 0.0.0.0:80->8080/tcp   zabbix-web-nginx-mysql
0deae5fc6fc0        zabbix/zabbix-server-mysql:alpine-5.0-latest      "/sbin/tini -- /us..."   3 weeks ago         Up 3 weeks          0.0.0.0:10051->10051/tcp         zabbix-server-mysql
a417d9958ad2        zabbix/zabbix-java-gateway:alpine-5.0-latest      "docker-entrypoint..."   3 weeks ago         Up 3 weeks          10052/tcp                        zabbix-java-gateway
           

安裝方式可參考官方文檔:容器化方式安裝zabbix server

三、zabbix監控docker應用

1.安裝zabbix-agent2
yum install zabbix-aget2

#啟動agent2
[root@VM-0-5-centos ~]# ps -ef|grep agent2
zabbix   23184     1  0 Mar30 ?        00:12:40 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root     30458 30414  0 14:33 pts/6    00:00:00 grep --color=auto agent2
           
2.将docker模闆連結到zabbix-server主機,并更新。
zabbix容器化安裝及監控docker應用

docker模闆監控項如下

3.給/var/run/docker.sock 所有使用者可讀權限(zabbix使用者)

chmod 666 /var/run/docker.sock
           

4.docker中的應用清單如下

zabbix容器化安裝及監控docker應用

可以看到docker模闆已經自動發現了docker中的應用,如下所示

zabbix容器化安裝及監控docker應用

以監控mysql應用為例,其部分監控項如下

zabbix容器化安裝及監控docker應用
5. 添加docker 儀表盤

在儀表盤中添加圖形,選擇需要展示的監控項

zabbix容器化安裝及監控docker應用

多個圖形構成的mysql docker應用的儀表盤

zabbix容器化安裝及監控docker應用

後續可添加告警相關内容,本文不做展開,小夥伴們可自行探索哈。 有不了解的地方可在評論區指出。

歡迎收藏、點贊、提問。關注頂級飲水機管理者,除了管燒熱水,有時還做點别的。