前言:
工作中需要管理多台服务器,监控服务器的运行状态,查了一下使用的比较多有两种
Zabbix
Prometheus
关于这两种的区别就不展开细说了,最终根据业务需要选择了 Zabbix
Zabbix 6.4 版本 安装过程:
Zabbix 是分为服务和监控两端的,提供了三种安装方式
1. 源代码安装
2.二进制包安装
3.Docker容器安装
因为想要开箱即用不用考虑系统差异,选择了Docker容器安装,过程非常方便「强烈推荐」
安装步骤:
1.准备一台服务器,已经安装好Docker服务 这一步可以参考我的另一篇文章【自学Docker容器二 ● Linux下Dokcer环境安装 】
2.执行官方的Docker容器Run命令,主要是这5个步骤
创建内网网络段
数据库
网关服务
Zabbix服务
web界面服务
创建专用于 Zabbix 组件容器的网络:我理解就是创建同一个局域内网段,方便各个容器之间内网通信
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
启动空的 MySQL 服务器实例:这一步创建Zabbix服务端的数据库
根据你的需要可以修改
MYSQL_DATABASE
数据库名称
MYSQL_USER
Zabbix服务使用数据库 时使用的用户名
MYSQL_PASSWORD
Zabbix服务使用数据库 时使用的密码
MYSQL_ROOT_PASSWORD
数据库Root用户密码
network
就是上面创建的内网段 zabbix-net 这个保持一致即可
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
-d mysql:8.0 \
--restart unless-stopped \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
启动 Zabbix Java 网关实例:
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-5.4-latest
启动 Zabbix server 实例,并将其关联到已创建的 MySQL server 实例
DB_SERVER_HOST
填写容器名称即可 mysql-server
这几个参数要和创建Mysql容器时的一致
ZBX_JAVAGATEWAY
填写上面Java网关容器名称即可 zabbix-java-gateway
MYSQL_DATABASE
数据库名称
MYSQL_USER
Zabbix服务使用数据库 时使用的用户名
MYSQL_PASSWORD
Zabbix服务使用数据库 时使用的密码
MYSQL_ROOT_PASSWORD
数据库Root用户密码
network
保持一致
然后就是这个端口号 -p 10051:10051
Zabbix server 实例将 10051/TCP 端口(Zabbix trapper)暴露给主机 使用默认即可
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-5.4-latest
最后一步 启动 Zabbix Web 界面,并将其关联到已创建的 MySQL server 和 Zabbix server 实例:
DB_SERVER_HOST
填写容器名称即可 mysql-server
这几个参数要和创建Mysql容器时的一致
ZBX_JAVAGATEWAY
填写上面Java网关容器名称即可 zabbix-java-gateway
MYSQL_DATABASE
数据库名称
MYSQL_USER
Zabbix服务使用数据库 时使用的用户名
MYSQL_PASSWORD
Zabbix服务使用数据库 时使用的密码
MYSQL_ROOT_PASSWORD
数据库Root用户密码
network
保持一致
然后就是这个端口号 -p 80:8080 80是主机端口,用于访问zabbix后台的,可以根据需要修改我就改成了9999
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-5.4-latest
然后 sudo docker ps 查看一下容器状态是否全部运行
然后访问服务器:端口号
我是端口号9999
xxx.xxx.xxx.xxx:999
后台默认账号是Admin
密码是zabbix
到此服务端全部部署完成,然后是添加监控端
ZBX_HOSTNAME
主机名称
ZBX_SERVER_PORT
Zabbix服务端口
ZBX_SERVER_HOST
Zabbix服务IP
docker run --name zabbix-agent2 -t \
-e ZBX_HOSTNAME="centos7-115" \
-e ZBX_SERVER_PORT="10051" \
-e ZBX_SERVER_HOST="127.0.0.1" \
-v /etc/localtime:/etc/localtime \
--network=host \
-d zabbix/zabbix-agent2:alpine-6.4.1
监控端从包安装,不同系统教程:
https://www.zabbix.com/download?zabbix=6.4
Zabbix官方文档地址:
https://www.zabbix.com/documentation/6.4/zh/
「未完待续-------网页端添加主机监控端,--------监控端配置-----------会遇到的问题---------解决办法」