一、zabbix服務器端配置mysql
在zabbix-server服務器上進行以下配置:nginx
1.1 鏡像準備web
下載鏡像:mysql、zabbix/zabbix-server-mysql、zabbix/zabbix-web-nginx-mysqlsql
docker pull mysql:5.7 docker pull zabbix/zabbix-server-mysql docker pull zabbix/zabbix-web-nginx-mysql
1.2 啓動mysql:5.7docker
docker run --name zabbix_mysql --hostname zabbix_mysql --restart=always -e MYSQL_ROOT_PASSWORD="123456" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" -e MYSQL_DATABASE="zabbix" -p 3306:3306 -v /home/docker/data/mysql:/var/lib/mysql -d mysql:5.7
1.3 啓動zabbix_server數據庫
docker run --name zabbix_server --restart=always --link zabbix_mysql:mysql -e DB_SERVER_HOST="mysql" -e MYSQL_USER="zabbix" -e MYSQL_DATABASE="zabbix" -e MYSQL_PASSWORD="123456" -v /etc/localtime:/etc/localtime:ro -v /home/docker/data/zabbix:/usr/lib/zabbix -p 10051:10051 -d zabbix/zabbix-server-mysql
1.4 啓動zabbix_nginx_web瀏覽器
docker run --name zabbix_web --restart=always --link zabbix_mysql:mysql --link zabbix_server:zabbix_server -e DB_SERVER_HOST="mysql" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" -e MYSQL_DATABASE="zabbix" -e ZBX_SERVER_HOST="zabbix_server" -e PHP_TZ="Asia/Shanghai" -p 80:80 -p 8443:443 -d zabbix/zabbix-web-nginx-mysql
此時瀏覽器訪問宿主機80端口,便可使用zabbix-server服務
#瀏覽器打開以下地址,其中192.168.1.a爲zabbix服務器IP
45.115.243./zabbix
admin,密碼:zabbix服務器
[root@localhost ~]# docker restart zabbix_mysql zabbix_mysql [root@localhost ~]# docker restart zabbix_server zabbix_server [root@localhost ~]# docker restart zabbix_web
192.168.1.a/zabbixide
二、zabbix-agent配置3d
在須要監控的機器上安裝agent進行以下配置:
2.1 鏡像準備
下載鏡像:zabbix/zabbix-agent
docker pull zabbix/zabbix-agent
2.2 啓動zabbix-agent
#172.17.0.a爲本機zabbix,當不是本機時,更改成zabbix-server的IP地址
docker run --name zabbix_agent --restart=always \ -p 10050:10050 \ -e ZBX_HOSTNAME="zabbix_agent" \ -e ZBX_SERVER_HOST="172.17.0.a" \ - e ZBX_SERVER_PORT=10051 \ -d zabbix/zabbix-agent
#ZBX_HOSTNAME配置爲zabbix-server中添加的對應的agent的主機名稱
此時,能夠在zabbix-server上加入剛剛啓動的agent,接下來就是配置zabbix了,安裝完成
三、docker開機啓動
3.1 docker服務加入開機啓動
systemctl enable docker
#成功加入開機啓動會有以下提示:
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
3.2 docker容器開機啓動
docker run 啓動參數中加入--restart=always 參數,在容器出現重啓等狀況退出時,會自動重啓,不須要再單獨設置容器啓動腳本。
四、鏡像的導出與導入
對於不能聯網的機器,是不能使用docker pull從網上直接拉鏡像的,這個時候就須要使用容器的導出與導入功能了。
4.1 鏡像的導出
查看當前可用鏡像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/zabbix/zabbix-agent latest 19e75a9513da 23 hours ago 56.67 MB
docker.io/zabbix/zabbix-server-mysql latest 3abad97a6d75 24 hours ago 107.3 MB
docker.io/zabbix/zabbix-web-nginx-mysql latest 039292d2eae1 26 hours ago 176.8 MB
docker.io/mysql 5.7 d9ad3d6d1a44 5 months ago 298.3 MB
導出鏡像
docker save -o /opt/zabbixagent.tar zabbix/zabbix-agent:latest
#/opt/zabbix_agent.tar 導出鏡像的位置及名稱
#zabbix/zabbix-agent:latest 導出鏡像的REPOSITORY與TAG
docker save -o /opt/zabbix_server.tar zabbix/zabbix-server-mysql:latest
docker save -o /opt/zabbix_nginx.tar zabbix/zabbix-web-nginx-mysql:latest
docker save -o /opt/zabbix_mysql.tar mysql:5.7
咱們查看/opt下文件列表,能夠看到導出成功
ll /opt -rw------- 1 root root 61114368 Dec 16 14:54 zabbix_agent.tar -rw------- 1 root root 305571840 Dec 16 15:02 zabbix_mysql.tar -rw------- 1 root root 182195200 Dec 16 15:01 zabbix_nginx.tar -rw------- 1 root root 112269824 Dec 16 15:00 zabbix_server.tar
4.2 鏡像的導入
在已經安裝docker,但沒有相關配置的機器上執行:
#添加開機啓動
systemctl enable docker
#開啓docker進程
systemctl start docker
查看當前可用鏡像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
能夠看到鏡像爲空,導入鏡像:
docker load -i /opt/zabbix_agent.tar
#/opt/zabbix_agent.tar爲剛剛導出的鏡像
docker load -i /opt/zabbix_server.tar docker load -i /opt/zabbix_nginx.tar docker load -i /opt/zabbix_mysql.tar
再次使用docker images,能夠看到鏡像已經導入成功,能夠在當前未聯網機器上使用。
五、zabbix相關日誌
在容器中沒有專門的日誌文件,因此沒有作日誌文件存儲映射,咱們能夠經過以下命令查看zabbix的運行日誌:
docker logs zabbix_server docker logs zabbix_agent docker logs zabbix_web docker logs zabbix_mysql
六、zabbix從新部署與遷移
對於使用了docker的zabbix來講,由於咱們已經作了存儲的映射,因此數據庫和zabbix的配置能夠很容器的遷移到其餘機器上,拷貝宿主機上以下目錄,而後從新部署zabbix容器便可。
/home/docker/data/zabbix
/home/docker/data/mysql
因映射是存儲在宿主機上的,爲了防止數據丟失,可使用雲備份。