Docker版zabbix
1. docker-compose
docker-compose :容器自带的编排工作,可以通过yaml编排文件,将容器要启动的命令写入文件,然后再利用docker-compose run file.yaml文件来直接启动,同时启动多个容器,方便应用服务的移植、共享。
2. 部署zabbix服务
部署zabbix服务,然后利用docker-compose启动。
1> 上传压缩包,解压
[root@node ~]# cd /opt/ [root@node opt]# ls rh zabbix-agent.tar.gz zabbix-server.tar.gz [root@node opt]# tar xf zabbix-server.tar.gz [root@node opt]# ls cmp_mariadb cmp_zabbix rh zabbix-agent.tar.gz zabbix-server.tar.gz
2> 启动数据库
[root@node cmp_mariadb]# docker load -i mariadb-latest.tar #导入镜像 [root@node cmp_mariadb]# docker images mariadb latest 901583bfdf5a 5 months ago 367MB 启用编排文件文件名必须为docker-compose.ymal 先查看文件内容 [root@node cmp_mariadb]# ls docker-compose.yml mariadb-latest.tar mysqlconf mysqllib mysqllog [root@node cmp_mariadb]# vim docker-compose.yml mysql: image: mariadb:latest ports: - "3306:3306" #端口映射 volumes: - ./mysqllib:/var/lib/mysql #目录映射 - ./mysqlconf:/etc/mysql - ./mysqllog:/var/log/mysql environment: #环境变量 - MYSQL_USER=zabbix - MYSQL_DATABASE=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_ROOT_PASSWORD=123321 - LANG=en_US.utf8 - TZ=Asia/Shanghai restart: always #一直重启,开机重启 [root@node cmp_mariadb]# docker-compose up -d #启动编排文件,-d表示放在后台启动 Creating cmpmariadb_mysql_1 ... done [root@node cmp_mariadb]# docker ps #启动成功 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a4bae322f4f6 mariadb:latest "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp cmpmariadb_mysql_1
由docker-compose启动的容器无法用命令docker命令控制,必须用docker-compose 在docker-compose所在的目录下执行相关命令。
[root@node cmp_mariadb]# docker-compose ps Name Command State Ports ------------------------------------------------------------------------- cmpmariadb_mysql_1 docker-entrypoint.sh Up 0.0.0.0:3306->3306/t mysqld cp
3> 启动zabbix
[root@node opt]# \cd cmp_zabbix/ [root@node cmp_zabbix]# ls docker-compose.yml zabbixconfig zabbix-server-mysql.tar zabbix-agent.tar zabbix-scripts zabbix-web-nginx-mysql.tar 导入镜像 [root@node cmp_zabbix]# docker load -i zabbix-server-mysql.tar [root@node cmp_zabbix]# docker load -i zabbix-agent.tar [root@node cmp_zabbix]# docker load -i zabbix-web-nginx-mysql.tar 编排文件内容 [root@node cmp_zabbix]# vim docker-compose.yml version: '3' services: zabbix-server: container_name: zabbix-server image: zabbix/zabbix-server-mysql:latest restart: always network_mode: host # ports: # - "10051:10051" environment: - DB_SERVER_HOST=192.168.16.95 - MYSQL_USER=zabbix - MYSQL_DATABASE=zabbix - MYSQL_PASSWORD=zabbix - DB_SERVER_ROOT_USER=root - DB_SERVER_ROOT_PASS=123321 - TZ='Asia/Shanghai' volumes: - /etc/localtime:/etc/localtime:ro - ./zabbix-scripts:/usr/lib/zabbix - ./zabbixconfig:/etc/zabbix zabbix-web-nginx: image: zabbix/zabbix-web-nginx-mysql:latest restart: always network_mode: bridge ports: - "8080:80" - "8443:443" environment: - DB_SERVER_HOST=192.168.16.95 - MYSQL_DATABASE=zabbix - MYSQL_USER=zabbix - MYSQL_PASSWORD=zabbix - MYSQL_ROOT_PASSWORD=123321 - ZBX_SERVER_HOST=192.168.16.95 - PHP_TZ="Asia/Shanghai" - TZ='Asia/Shanghai' zabbix-agent: image: zabbix/zabbix-agent:latest environment: - ZBX_HOSTNAME=Zabbix server - ZBX_SERVER_HOST=127.0.0.1 - ZBX_SERVER_PORT=10051 - TZ='Asia/Shanghai' network_mode: host # ports: # - "10050:10050" restart: always privileged: true # links: # - zabbix-server:zabbixhost 启动 [root@node cmp_zabbix]# docker-compose up -d Creating cmpzabbix_zabbix-web-nginx_1 ... done Creating cmpzabbix_zabbix-agent_1 ... done Creating cmpzabbix_zabbix-agent_1 ... [root@node cmp_zabbix]# docker-compose ps Name Command State Ports ------------------------------------------------------------------------- cmpzabbix_zabbix- docker-entrypoint.sh Up agent_1 cmpzabbix_zabbix- docker-entrypoint.sh Up 0.0.0.0:8443->443/t web-nginx_1 cp, 0.0.0.0:8080->8 0/tcp zabbix-server docker-entrypoint.sh Up
容器启动后,在web端查看
若无法进入页面,修改文件/etc/sysctl.conf,加入net.ipv4.ip_forward=1
[root@node cmp_zabbix]# vim /etc/sysctl.conf # sysctl settings are defined through files in # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/. # # Vendors settings live in /usr/lib/sysctl.d/. # To override a whole file, create a new file with the same in # /etc/sysctl.d/ and put new settings there. To override # only specific settings, add a file with a lexically later # name in /etc/sysctl.d/ and put new settings there. # # For more information, see sysctl.conf(5) and sysctl.d(5). net.ipv4.ip_forward=1
用户/密码:Admin/zabbix
4> 监控其他三个节点
将zabbi-agent导入到三个节点
[root@node1 ~]# cd /opt [root@node1 opt]# ls rh zabbix-agent.tar.gz [root@node1 opt]# tar xf zabbix-agent.tar.gz [root@node1 opt]# ls cmp_zabbix_agent rh zabbix-agent.tar zabbix-agent.tar.gz 导入zabbix镜像 [root@node1 opt]# docker load -i zabbix-agent.tar 进入编排文件所在目录 [root@node1 opt]# cd cmp_zabbix_agent/ [root@node1 cmp_zabbix_agent]# ls docker-compose.yml 文件内容 [root@node1 cmp_zabbix_agent]# vim docker-compose.yml version: '3' services: zabbix-agent: image: zabbix/zabbix-agent:latest container_name: zabbix-agent environment: - ZBX_HOSTNAME=node2 - ZBX_SERVER_HOST=192.168.16.95 - ZBX_SERVER_PORT=10051 - TZ='Asia/Shanghai' network_mode: bridge ports: - "10050:10050" restart: always privileged: true 启动 [root@node1 cmp_zabbix_agent]# ls docker-compose.yml [root@node1 cmp_zabbix_agent]# docker-compose up -d Creating zabbix-agent ... done [root@node1 cmp_zabbix_agent]# docker-compose ps Name Command State Ports ---------------------------------------------------------------------- zabbix-agent docker-entrypoint.sh Up 0.0.0.0:10050->10050/tcp
监控节点已添加,在web界面添加主机进zabbix监控。
作者:Ajunyu
出处:http://www.cnblogs.com/shwee/
转载注明出处
个人公众号:Ajunyu
---------------------------------------------------
愿今后有酒有肉有姑娘,拿得起欢喜,放得下过往