CentOS7 容器化安装 zabbix7.0服务
概要Zabbix是一款运维人员必备的监控软件它可以监控服务器上面的重要网络参数用以保障企业业务架构的安全运营同时它的灵活的告警机制可以使运维人员快速定位故障位置、解决问题。Zabbix支持分布式功能支持复杂架构下的监控解决方案同时也支持Web页面为用户监控主机服务器提供良好的直观展现。Zabbix主要有五个组件组成分别是Server、Web页面、数据库、proxy以及agent这五个重要组件构成。本次实施主要涉及三个容器的创建包括zabbix-mysql(用于server存储数据文件)zabbix-server、以及zabbix-web用于提供使用者展示Web 浏览器UI页面。注意本文适合会使用容器docker的同学初学者部署过程会遇到各种问题需要排查问题链路最好知道了解下docker运行的机制已经基本命令。(国内的docker镜像源问题受限本文附带tar镜像包(已压缩再zabbix_All.zip中)使用者将tar包直接load到docker本地就好)1、将该zip包下载传到部署过docker的机器上如下将zip文件解压出来后有三个tar文件分别对应zabbix-mysql容器用到的镜像mysql:latest、zabbix-server容器用到的镜像zabbix-server-mysql、以及最优的zabbix-web用到的镜像zabbix-web-nginx-mysql。docker load -i zabbix_All/mysql.tar #tar上传到机器上将tar包加载到docker image 中2、部署创建一条zabbix专用的network(放local 桥接属性就可以了)docker network create zabbix-net创建好后如下图展示3、部署MySQL用作zabbix server的数据存储docker run -d --name zabbix-mysql \ --network zabbix-net \ -e MYSQL_ROOT_PASSWORDzabbix \ -e MYSQL_DATABASEzabbix \ -e MYSQL_USERzabbix \ -e MYSQL_PASSWORDzabbix \ mysql:latest ------------------------------------------------------------------------------------------- 参数解释 --network 指定该容器的网络(就前面Step1创建的network) -e MYSQL_ROOT_PASSWORD 创建数据库的root密码(可以自行定义但后面其它的容器创建时也要跟着这个密码变动别无脑copy) -e MYSQL_DATABASE 数据库容器创建时创建里面的一个库(可以自行定义) -e MYSQL_USER 数据库容器创建时创建里面的一个的用户(可以自行定义) -e MYSQL_PASSWORD 数据库容器创建用户密码 -------------------------------------------------------------------------------------------创建zabbix-mysql容器后如下图展示(容器正常Up即为成功)注意这里创建完这个zabbix-mysql的数据存储的容器后尽肯进去改下容器的配置避免后面的zabbix-server容器的创建用zabbix用户访问不到zabbix-mysql里面的数据#进入zabbix-mysql容器的终端 docker exec -it zabbix-mysql /bin/bash #输入root用户的密码 mysql -uroot -pzabbix; #用root用户修改全局变量 SET GLOBAL log_bin_trust_function_creators 1;修改过程如下图展示4、部署serverzabbix-serverdocker run -d --name zabbix-server \ --network zabbix-net \ -e DB_SERVER_HOSTzabbix-mysql \ -e MYSQL_DATABASEzabbix \ -e MYSQL_USERzabbix \ -e MYSQL_PASSWORDzabbix \ -p 10051:10051 \ zabbix/zabbix-server-mysql:alpine-7.0-latest创建zabbix-server容器成功后如图展示注意这里面的server容器也是最容易创建失败的这里要是失败的话可以去zabbix-mysql的那个容器上把mysql的环境变量修改下实在没Up起来的话将创建的zabbix-server和zabbix-mysql容器删掉重新操作Step3#仅用在创建时容器没有正常的Up时候用容器正常的话忽略该条切记、切记、切记 docker rm zabbix-mysql zabbix-server5、部署web页面(zabbix-web)docker run -d --name zabbix-web \ --network zabbix-net \ --privileged \ -e ZBX_SERVER_HOSTzabbix-server \ -e DB_SERVER_HOSTzabbix-mysql \ -e MYSQL_DATABASEzabbix \ -e MYSQL_USERzabbix \ -e MYSQL_PASSWORDzabbix \ -p 8080:8080 \ zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest #参数解释 --privileged #### 提升容器权限不推荐仅在测试环境使用创建zabbix-web容器成功后展示如下图6、最终验证最后用浏览器访问机器IP加端口号 http://ip:8080 账户 Admin 密码 zabbix最后实验成功页面如下图展示更改语言如下步骤最终结果如图展示