docker 之zabbix監控

一、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

因映射是存儲在宿主機上的,爲了防止數據丟失,可使用雲備份。

相關文章
相關標籤/搜索