1. 程式人生 > >Zabbix在docker安裝部署

Zabbix在docker安裝部署

一、建立docker-compose.yml檔案
首先建立一份docker-compose.yml檔案,使用docker-compose進行容器的編排。

$ mkdri /zabbix  #在根目錄建立zabbix檔案
$ cd   /zabbix
$ touch docker-compose.yml  #建立yml容器編排檔案

二、編寫yml檔案內容

$ ll
$ vim docker-compose.yml
version: '2'
services:
  zabbix-mysql-service: 
    image: daocloud.io/library/mysql:8
container_name: zabbix-mysql-service environment: - MYSQL_ROOT_PASSWORD=888888 restart: always zabbix-server-service: image: monitoringartist/zabbix-xxl:3.2.6 links: - zabbix-mysql-service:mysqlhost container_name: zabbix-server-service restart: always depends_on: -
zabbix-mysql-service ports: - "8888:80" environment: - ZS_DBHost=mysqlhost - ZS_DBUser=root - ZS_DBPassword=888888 zabbix-agent-a: image: zabbix/zabbix-agent:ubuntu-3.2.6 links: - zabbix-server-service:zabbixserverhost container_name: zabbix-agent-a
restart: always depends_on: - zabbix-server-service environment: - ZBX_HOSTNAME=zabbix-agent-service-a - ZBX_SERVER_HOST=zabbixserverhost zabbix-agent-b: image: zabbix/zabbix-agent:ubuntu-3.2.6 links: - zabbix-server-service:zabbixserverhost container_name: zabbix-agent-b restart: always depends_on: - zabbix-server-service environment: - ZBX_HOSTNAME=zabbix-agent-service-b - ZBX_SERVER_HOST=zabbixserverhost

我們的docker-compose.yml內容如下:
1、mysql和zabbix server是必須的,再新增了兩個zabbix agent容器,名稱分別是zabbix-agent-a和zabbix-agent-b,zabbix agent在配置過程中要用到zabbix server的ip資訊,這裡我們通過links引數,在zabbix agent的host檔案中加入了zabbix server的ip資訊,host name是zabbixserverhost
2、ZBX_HOSTNAME和ZBX_SERVER_HOST這兩個環境變數,在zabbix agent映象的官方文件中已經說明;
3、ZBX_HOSTNAME用來表示自己的身份,ZBX_SERVER_HOST是用來標明zabbix server的ip資訊的,這裡直接用link引數中的alias來表示,就能通過host直接找到zabbix server的ip了;
三、啟動docker 容器
開啟控制檯,在docker-compose.yml檔案所在的目錄下執行命令docker-compose up -d
如圖:
這裡寫圖片描述
等待zabbix server初始化在命令列輸入命令docker logs -f zabbix-server-service,檢視zabbix server的日誌輸出,下圖是部分日誌的截圖,可以看到有資料庫初始化的操作
如圖:
這裡寫圖片描述
四、檢視日誌是否報錯
等待大約一分鐘之後,zabbix server的日誌不再滾動,表示初始化已經完成,開啟瀏覽器輸入http://localhost:8888,可以看到zabbix的管理系統的登入頁面
如圖:
這裡寫圖片描述
五、獲取監控機器ip
按照前面的部署描述圖上的部署,有兩臺機器裝了zabbix agent服務,然後想要加入監控,第一步我們要把機器的ip確定下來,在控制檯執行docker exec -it zabbix-agent-a ip addr命令,可以看到如下輸出,第一臺機器的ip是172.31.0.4:在控制檯執行docker exec -it zabbix-agent-b ip addr命令,可以看到如第二臺機器的ip是172.31.0.5;
如圖:
這裡寫圖片描述
六、解決 docker-compose up -d 命令不能執行
1、安裝擴充套件源:sudo yum -y install epel-release
2、安裝python-pip模組:sudo yum install python-pip
3、

     [root@fd240 bin]# ./docker-compose 
     Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg

4、解決辦法:
進入下面的網址下載目前的最新版:

https://github.com/docker/compose/releases/tag/1.14.0-rc2

網頁拉到最下面,下載:

docker-compose-Linux-x86_64

然後將檔案上傳到 /usr/local/bin/ 資料夾下,然後將其重新命名為docker-compose,修改此檔案的許可權,增加可執行:

chmod +x /usr/local/bin/docker-compose

然後再執行

[root@fd240 bin]# docker-compose version
docker-compose version 1.14.0-rc2, build 24dae73
docker-py version: 2.3.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t 3 May 2018

可以看到已經沒有問題了
5、Docker-Compose命令失效怎麼解決

 解決步驟:https://www.cnblogs.com/YatHo/p/7815400.html

6、docker命令

檢視執行容器
docker ps
檢視所有容器
docker ps -a
進入容器
其中字串為容器ID:
docker exec -it d27bd3008ad9 /bin/bash
停用全部執行中的容器:
docker stop $(docker ps -q)
刪除全部容器:
docker rm $(docker ps -aq)
一條命令實現停用並刪除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)