Docker方式
最快速的方式毫无疑问就是根据compose文件直接启动,不过启动之前有几个地方需要提前准备下
准备工作一:创建并授权数据库访问帐号
mysql> create database zabbix charset utf8;
mysql> grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix@lotus';
mysql> flush privileges;
准备工作二:检查网络连通性
- iptable
- 安全组
- 白名单
- ...
准备工作三:安装docker-compose
参考笔记:https://lotusching.gitbooks.io/ops/content/jin-jie/compose.html
准备工作思:检查docker版本
根据当前dockerb版本修改version字段,同时较老版本会不支持bind方式挂载,需要对应修改,旧版本volumes配置
services:
elk_slave:
volumes:
- /src:/dst
启动zabbix服务
root@VM-128-6-ubuntu:~# cat /prodata/scripts/zabbix/docker-compose.yml
version: '3.2'
services:
zabbix-server:
image: zabbix/zabbix-server-mysql:ubuntu-3.4-latest
container_name: zabbix-server-1
ports:
- "10051:10051"
environment:
- DB_SERVER_HOST=1.1.1.1
- DB_SERVER_PORT=3000
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- TZ=Asia/Shanghai
volumes:
- type: bind
source: /opt/zabbix-server/etc/zabbix_server.conf
target: /etc/zabbix/zabbix_server.conf
- type: bind
source: /opt/zabbix-server/alertscripts
target: /usr/lib/zabbix/alertscripts
zabbix-web:
container_name: zabbix-web-1
image: zabbix/zabbix-web-nginx-mysql:ubuntu-3.4-latest
ports:
- "10080:80"
environment:
- DB_SERVER_HOST=1.1.1.1
- DB_SERVER_PORT=3000
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- ZBX_SERVER_HOST=zabbix-server
- PHP_TZ=Asia/Shanghai
- TZ=Asia/Shanghai
volumes:
- type: bind
source: /opt/zabbix-web/zabbix
target: /usr/share/zabbix
links:
- zabbix-server
# docker-compose up -d
补充说明
agent端不要使用容器来运行,因为容器是隔离的,所以导致很多指标的不准确,无法反映宿主机的真实运行情况,例如当前用户数等
如果compose中service发送变更,单独重建service
# docker-compose up -d --no-deps --build zabbix-web
中文支持:参考笔记常见问题/中文乱码