docker 一键安装zabbix server、zabbix agent

基本原理、须知:
一、zabbix 分为zabbix server和zabbix agent,其中zabbix server须要web环境,而且其数据存储在独立的数据库中;
二、docker是一种容器服务,它是基于操做系统的虚拟化,能够减小应用对操做系统环境的依赖,而且它鼓励使用者单个应用使用独立的容器
三、各大应用均制做了官方的docker镜像,保存在docker hub中,地址:hub.docker.com,官方镜像的使用说明也能够在这个地址找
四、本文咱们采用lnmp的web环境,而且彻底使用官方的docker镜像,分别以下:
web环境:zabbix/zabbix-web-nginx-mysql
zabbix server:zabbix/zabbix-server-mysql
zabbix agent:zabbix/zabbix-agent
mysql:mysqlphp

步骤:
一、docker的安装省略
server docker start
二、安装mysql
docker pull mysql
docker run --name mysql -e MYSQL_ROOT_PASSWORD=secret -d mysql
docker logs ID查看一下日志有无报错,没有的话继续下一步,这时候ps -ef| grep mysql应该已经启动
三、安装web环境
docker pull zabbix-web-nginx-mysql
docker run --name zabbix-web-nginx-mysql --link mysql:mysql -e DB_SERVER_HOST=mysql -e MYSQL_USER=root -e MYSQL_PASSWORD=secret -e ZBX_SERVER_HOST=zabbix-server -e PHP_TZ=Asia/Shanghai -p 80:80 -d zabbix/zabbix-web-nginx-mysql
docker logs ID查看一下日志有无报错,没有的话继续下一步,这时候访问IP:80应该能打开zabbix的报错界面,且ps -ef | grep nginx|php-fpm均已启动
四、安装zabbix server
docker pull zabbix/zabbix-server-mysql
docker run --name zabbix-server-mysql --link mysql:mysql -e DB_SERVER_HOST=mysql -e MYSQL_USER=root -e MYSQL_PASSWORD=secret -p 10051:10051 -d zabbix/zabbix-server-mysql
docker logs ID查看一下日志有无报错,没有的话继续下一步,这时候访问IP:80应该能打开zabbix的登陆页面,帐号密码分别是Admin:zabbix
五、安装zabbix agent
docker pull zabbix/zabbix-agent
docker run --name zabbix-agent -e ZBX_HOSTNAME=zabbix-agent -e ZBX_SERVER_HOST=zabbix-server -d zabbix/zabbix-agent
docker logs ID查看一下日志有无报错,这时候进zabbix server的最近数据里应该有数据(这里的agent是主被动混合模式,zbx的图标不会变绿,而且server中须要手动enable agent)
若是没有数据,多是server和agent用的不是同一个network
六、一键部署zabbix server
1)安装docker compose
curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
2)配置docker-compose.yml
在任意路径建立docker-compose.yml,内容以下:mysql

version: '2'
services:
mysql:
image: mysql
container_name: mysql
environment:
- MYSQL_ROOT_PASSWORD=secret
networks:
- zbx-net
web:
image: zabbix/zabbix-web-nginx-mysql
container_name: zabbix-web-nginx-mysql
environment:
- DB_SERVER_HOST=mysql
- MYSQL_USER=root
- MYSQL_PASSWORD=secret
- ZBX_SERVER_HOST=zabbix-server
- PHP_TZ=Asia/Shanghai
ports:
- '80:80'
links:
- mysql
- zabbix-server
depends_on:
- mysql
networks:
- zbx-net
zabbix-server:
image: zabbix/zabbix-server-mysql
container_name: zabbix-server-mysql
environment:
- DB_SERVER_HOST=mysql
- MYSQL_USER=root
- MYSQL_PASSWORD=secret
ports:
- '10051:10051'
links:
- mysql
depends_on:
- mysql
networks:
- zbx-net
networks:
zbx-net:

启动docker-compose: docker-compose up
启动zabbix agent:
docker run --name zabbix-agent -e ZBX_HOSTNAME='Zabbix server' -e ZBX_SERVER_HOST=zabbix-server --network root_zbx-net -d zabbix/zabbix-agentnginx

PS: 在实际应用的中还须要增长挂载等git

相关文章
相关标签/搜索