当前位置:首页 > 时尚

宝塔安装zabbix

宝塔面板里装Zabbix,宝塔最省事的安装路径是走Docker。别急着用编译安装那一套,宝塔依赖能把人折腾到半夜。安装我上周在一台2核4G的宝塔腾讯云轻量服务器上试了一遍,从宝塔装好到Zabbix跑起来,安装前后不到二十分钟。宝塔

前提很简单:宝塔面板已经装好,安装Docker管理器也装上。宝塔这两个在宝塔的安装软件商店里点一下就行。Docker管理器装完后,宝塔建议在宝塔安全里放行需要的安装端口,不然后面访问会卡住。宝塔

拉镜像和建容器

Zabbix官方在Docker Hub上维护了整套镜像,安装我们需要三个东西:MySQL数据库、宝塔Zabbix Server、Zabbix Web前端。有人喜欢用docker-compose,但宝塔的Docker管理器对compose支持一般,直接命令行更稳。

打开宝塔的终端,先拉MySQL 8.0的镜像:

docker pull mysql:8.0

然后启动MySQL容器。这里有个坑,Zabbix 6.0以上对MySQL的字符集有要求,启动时要加参数:

docker run --name zabbix-mysql -t \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ -p 3306:3306 \ -d mysql:8.0 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_bin

等MySQL初始化完成,大概十几秒。可以用docker logs zabbix-mysql看进度,出现“ready for connections”就行了。

接着拉Zabbix Server镜像。我选的是6.4版本,比较稳定:

docker pull zabbix/zabbix-server-mysql:6.4-centos

启动Server容器,连上刚才的MySQL:

docker run --name zabbix-server -t \ -e DB_SERVER_HOST="mysql" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ --link zabbix-mysql:mysql \ -p 10051:10051 \ -d zabbix/zabbix-server-mysql:6.4-centos

最后是Web前端:

docker pull zabbix/zabbix-web-nginx-mysql:6.4-centos docker run --name zabbix-web -t \ -e DB_SERVER_HOST="mysql" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ -e ZBX_SERVER_HOST="zabbix-server" \ -e PHP_TZ="Asia/Shanghai" \ --link zabbix-mysql:mysql \ --link zabbix-server:zabbix-server \ -p 8080:8080 \ -d zabbix/zabbix-web-nginx-mysql:6.4-centos

注意PHP_TZ这个环境变量,不设的话Web界面时间会差8小时,看监控数据时很别扭。

初始化数据库

容器跑起来不代表数据库表结构有了。Zabbix Server启动时会自动导入schema,但有时候网络或权限问题会导致导入失败。保险起见,手动跑一遍:

docker exec -i zabbix-mysql mysql -uzabbix -pzabbix_pwd zabbix < /usr/share/doc/zabbix-server-mysql/create.sql.gz

如果提示文件不存在,说明镜像里路径不同,可以进容器找一下:docker exec -it zabbix-server find / -name "create.sql.gz"。找到后把路径替换掉再执行。

访问和收尾

浏览器打开http://你的服务器IP:8080,默认账号Admin,密码zabbix。进去后第一件事是改密码,然后检查Zabbix server状态是否绿色。如果显示红色,多半是Server连不上MySQL,去看Server容器的日志。

宝塔的Docker管理器里现在能看到三个容器在跑。有个小细节:宝塔面板本身占用了8888端口,Zabbix Web用8080不冲突。但如果你之前装过Nginx或Apache,80端口可能被占,别用80。

整套跑下来,资源占用大概1.2G内存。2核4G的机器还能剩一半,跑几个被监控节点没问题。要是监控规模大,MySQL容器得单独调优,那又是另一个话题了。

分享到: