本项目原始为客户甲方项目,但是预算太有限40000元但是已经签约开发了,导致优雅草不得不继续完成开发来建立自营版本,本身优雅草在服务器众多的情况下也需要一个管理软件,其次优雅草后续是有可能自己建服务器并且自主维护的,因此本项目是有必要的
Zabbix 是一个开源的企业级分布式监控解决方案,以下是其主要的技术栈构成:
php-mysql
、php-gd
、php-xml
等,以确保 Zabbix Web 功能的正常运行。我们选择腾讯云,以腾讯云为例,其他云计算服务商同理,我们选定 docker ce 镜像,省去了很多事情,docker ce 开始我都不明白什么意思,后来看了才知道就是docker镜像,默认搭配Linux centos -_-||!!!
注意看介绍,简直一天一个新概念,我们一定要选择带docker的省去了安装docker,自从RAV容器概念开始市场化,云计算越来越强了
选择ssh 创建密码, 所有连接方式只有ssh 最安全,并且不被保留,遗失找不回,谨慎保管,
对应地区创建,创建好,登录,默认用户名root 这些就不用讲了, 用ssh终端打开 并且连接
我这里用的xterminal
sudo mkdir -p /opt/zabbix/data /opt/zabbix/config
sudo chmod -R 777 /opt/zabbix
docker pull zabbix/zabbix-server-mysql:latest
和 docker pull zabbix/zabbix-web-nginx-mysql:latest
docker pull mysql:8.0
docker run -d \
--name zabbix-mysql \
-e MYSQL_DATABASE=zabbix \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD=zabbix_password \
-e MYSQL_ROOT_PASSWORD=root_password \
-v /opt/zabbix/data/mysql:/var/lib/mysql \
mysql:8.0
将zabbix_password和root_password替换为实际的密码。
好方便,都是批量按顺序来执行命令,现在的技术越来越方便了,我这里本着测试就暂时用测试的即可。
完成准备工作,创建并启动 Zabbix Server 容器,执行命令:
docker run -d \
--name zabbix-server \
--link zabbix-mysql:mysql \
-e DB_SERVER_HOST=mysql \
-e MYSQL_DATABASE=zabbix \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD=zabbix_password \
-v /opt/zabbix/data:/var/lib/zabbix \
-v /opt/zabbix/config:/etc/zabbix \
-p 10051:10051 \
zabbix/zabbix-server-mysql:latest
继续成功,
记得放行10051默认端口,这是zabbix默认端口
创建并启动 Zabbix Web 容器,执行命令:
docker run -d \
--name zabbix-web \
--link zabbix-server:zabbix-server \
--link zabbix-mysql:mysql \
-e ZBX_SERVER_HOST=zabbix-server \
-e DB_SERVER_HOST=mysql \
-e MYSQL_DATABASE=zabbix \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD=zabbix_password \
-p 80:80 \
zabbix/zabbix-web-nginx-mysql:latest
再执行:
docker run -d \
--name zabbix-server \
-e DB_SERVER_HOST=<mysql_host> \
-e MYSQL_DATABASE=<db_name> \
-e MYSQL_USER=<db_user> \
-e MYSQL_PASSWORD=<db_password> \
-e ZBX_SERVER_HOST=<zabbix_server_host> \
-p 10051:10051 \
--link <mysql_container_name>:mysql \
zabbix/zabbix-server-mysql:latest
以上值要替换为真实值。
-d
:表示以守护进程(detached)模式在后台运行容器。--name zabbix-server
:为容器指定一个名称为zabbix-server
。-e
:用于设置环境变量,这里分别设置了连接 MySQL 数据库所需的主机地址、数据库名称、用户名、密码,以及 Zabbix Server 主机地址等信息。<mysql_host>
应替换为 MySQL 服务器的实际地址,可以是容器名称、容器 ID 或 IP 地址;<db_name>
、<db_user>
、<db_password>
分别替换为实际的数据库名称、用户名和密码;<zabbix_server_host>
通常可以设置为localhost
或 Zabbix Server 所在主机的 IP 地址。-p 10051:10051
:将容器内的 Zabbix Server 服务端口 10051 映射到宿主机的 10051 端口,这样外部可以通过宿主机的 10051 端口访问 Zabbix Server 服务。--link <mysql_container_name>:mysql
:将 Zabbix Server 容器与 MySQL 容器建立链接,<mysql_container_name>
应替换为实际的 MySQL 容器名称。执行后报错,我们发现一个问题,母亲链接方式 是—link 我们要改成自定义网络
—link 选项在较新的 Docker 版本中已不推荐使用,它逐渐被用户自定义网络所取代。使用自定义网络不仅更加灵活,而且网络配置更易于管理和维护。
以下给出更加严格的安装部署方式,并且我已经把示范中的数据替换为我自己确定要创建的数据。
首先,创建一个自定义的 Docker 网络,用于 Zabbix 各组件之间的通信。
docker network create zabbix-net
创建并启动 MySQL 容器,设置数据库相关信息。
docker run -d \
--name zabbix-mysql \
--network zabbix-net \
-e MYSQL_DATABASE=zabbix \
-e MYSQL_USER=network \
-e MYSQL_PASSWORD=network446657 \
-e MYSQL_ROOT_PASSWORD=network446657 \
-v /data/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:8.0
在上述命令中:
-d
:表示容器在后台以守护进程方式运行。--name zabbix-mysql
:指定容器名称为zabbix-mysql
。--network zabbix-net
:将容器连接到名为zabbix-net
的自定义网络。-e
开头的参数设置了 MySQL 的环境变量,包括数据库名、普通用户及密码、root 用户密码。-v /data/mysql:/var/lib/mysql
:将宿主机的/data/mysql
目录挂载到容器内的/var/lib/mysql
目录,用于数据持久化。-p 3306:3306
:将容器的 3306 端口映射到宿主机的 3306 端口。docker run -d \
--name zabbix-server \
--network zabbix-net \
-e DB_SERVER_HOST=zabbix-mysql \
-e MYSQL_DATABASE=zabbix \
-e MYSQL_USER=network \
-e MYSQL_PASSWORD=network446657 \
-e ZBX_SERVER_HOST=network.youyacao.com \
-v /data/zabbix/server:/var/lib/zabbix \
-p 10051:10051 \
zabbix/zabbix-server-mysql:latest
此命令中:
--network zabbix-net
连接到自定义网络。-e ZBX_SERVER_HOST=network.youyacao.com
设置 Zabbix Server 的主机地址为指定网址。docker run -d \
--name zabbix-web \
--network zabbix-net \
-e ZBX_SERVER_HOST=zabbix-server \
-e DB_SERVER_HOST=zabbix-mysql \
-e MYSQL_DATABASE=zabbix \
-e MYSQL_USER=network \
-e MYSQL_PASSWORD=network446657 \
-p 80:8080 \
zabbix/zabbix-web-nginx-mysql:latest
该命令启动 Zabbix Web 容器:
--network zabbix-net
连接到自定义网络。-e
参数设置了 Zabbix Web 连接 Zabbix Server 和 MySQL 数据库的相关信息。-p 80:8080
将容器内的 8080 端口映射到宿主机的 80 端口,以便通过network.youyacao.com
访问 Zabbix Web 界面(需确保宿主机 80 端口未被占用且域名已正确解析到宿主机 IP)。确保network.youyacao.com
域名正确解析到运行 Zabbix 的服务器 IP 地址。这通常需要在域名注册商的 DNS 管理界面进行设置,添加一条 A 记录,将network.youyacao.com
指向服务器的公网 IP 地址。
使用docker ps
命令查看所有容器是否正常运行:
docker ps
如果所有容器状态均为Up
,表示安装成功。通过浏览器访问http://network.youyacao.com
,应该能看到 Zabbix 的登录界面,默认用户名Admin
,密码zabbix
。登录后即可开始使用 Zabbix 进行监控配置。
查看状态没有问题,
能访问,但是数据库有点问题,稍微调整和检查下防火墙之类的东西,不过以上关于docker安装到此结束。
以上内容是用docker容器安装方式的,但是我们要做的不是用docker,我要传统安装方式,
docker优缺点:
优点:适合面向使用者,简单方便,操作 缺点:不利于二次开发,维护,最重要是开发和升级,docker镜像是一键式交付,不同的版本做不同的镜像,因此是面向使用者。
下一篇,篇幅【02】我们将采取传统安装方式。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。