主机结构
- 务必关注版本,在不同的版本上操作会有差异。
Ceph 搭建
- 略,已经完成搭建 [[0-Ceph分布式文件系统#搭建Ceph]]
- 如果后续大家有需要的话单独补充一份搭建流程
Zabbix_Server 的搭建
略,整个步骤有需要请留言后续进行更新。
[[2-zabbix的安装#部署 Zabbix_Server]]
Go 安装
yum 安装
Agent 2 依赖于 go 需要安装 go
rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
yum install golang -y
go version
关于 rpm --import
原理:
RPM 是一种在 Linux 操作系统中广泛使用的软件包管理器。它可以帮助用户在系统中安装、升级和删除软件包。Rpm --import 命令用于导入一个密钥,以验证 rpm 软件包的完整性和安全性。在命令中, https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO是一个公钥文件的URL地址 ,该文件包含了与 Go Repo 软件仓库相关的密钥。通过导入该公钥,可以确保在安装软件包时不会遭受恶意攻击,从而提高系统的安全性。
应用:
在 Linux 操作系统中,用户可以使用 rpm --import 命令来导入密钥。首先,用户需要获取公钥文件的 URL 地址。然后,使用 rpm --import 命令将该公钥导入到系统中。在安装软件包时,系统将自动验证软件包的完整性和安全性,以确保软件包没有被篡改或被恶意攻击。这可以提高系统的安全性和稳定性,确保软件包的可靠性和正确性。
源码安装 GO
获取安装包
安装
- 解压-设置环境变量
tar -zxvf go1.19.7.linux-amd64.tar.gz -C /usr/local/go && cd /usr/local/src/go
echo -e "export GOROOT=/usr/local/go\nexport PATH=\$GOPATH/bin:\$GOROOT/bin:\$PATH" >>/etc/profile
source /etc/profile && go version
Zabbix_agentd 的搭建
部署 Zabbix_agentd
Zabbix 的 yum 仓库准备
- 选择 yum 安装模块的原因是源码安装需要拉取 github 仓库难以成功
- 仓库地址: Zabbix Official Repository
- 仓库用于后续 zabbix 相关软件的更新,如果不需要可以跳过
wget https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-1.el7.noarch.rpm
rpm -ivh zabbix-release-6.2-1.el7.noarch.rpm
安装 agent 和agent2
下载慢的小伙伴到网盘自取一下
链接: https://pan.quark.cn/s/417f1e5759b5
提取码:zr5m
wget https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-agent2-6.2.8-release1.el7.x86_64.rpm
yum install -y zabbix-agent2-6.2.8-release1.el7.x86_64.rpm
yum install -y zabbix-agent
初始化 zabbix
编辑 agent 2 的配置文件
vim /etc/zabbix/zabbix_agent2.conf
ListenPort=10052
Server=192.168.45.21
ServerActive=192.168.45.21:10051
Hostname=YY_agent2
编辑 agent 配置文件
vim /etc/zabbix/zabbix_agent2.conf
ListenPort=10050
Server=192.168.45.21
ServerActive=192.168.45.21:10051
Hostname=YY
参数说明
- 必须指定端口,因为默认为 10050 跟 agent 冲突!
Hostname
: 是别名,并非真正的主机名,在同时开启多端口监控的时候必须设置,避免跟 agent 产生冲突!- 在生产环境之中,多节点监控时,
hostname
也是区别节点的重要方式。
- 在生产环境之中,多节点监控时,
启动服务
systemctl start zabbix_agentd
systemctl start zabbix-agent2
systemctl enable zabbix_agentd
systemctl enable zabbix_agent2
部署可能出现的问题
- 服务启动没有端口,问题点:
- 配置文件中
Include
字段错误,包含了不该包含的配置文件子文件夹选项。 - 配置文件的服务端地址指错
- 配置文件中
服务端连接测试
zabbix_get -s 192.168.45.10 -p10050 -k system.uname
zabbix_get -s 192.168.45.10 -p10052 -k system.uname
日志排查
- 当出现问题的时候可以进入该日志进行报错排查。
tail /var/log/zabbix/zabbix_agent2.log
Web 端设置
添加主机
重点,主机名需要跟 /etc/zabbix/zabbix_agent2.conf
中的 HOSTNAME 保持一致!
添加模版
成功探测到
Ceph 授权 Zabbix
1. 开启 mgr & 开启 API
ceph mgr module enable restful
ceph restful create-self-signed-cert
ceph restful create-key zabbix
ceph restful list-keys
2. Zabbix 服务端测试连接
- 这里需要注意一下 curl 地址的格式。
curl -k https://api:<keys>@<ceph-mgr>:<port>/server
- 示例:
-k
是指让curl
忽略网站的安全证书,下载数据时不进行证书验证。
curl -k https://zabbix:2e747320-486d-462d-8718-42eed420139c@192.168.45.10:8003/server
3. Web 端新增秘钥
4. 跳过 SSL 验证
- 在正常情况下,当使用 HTTPS 协议连接到 Ceph 存储时,系统会验证 Ceph 存储的 SSL 证书以确保连接的安全性。
- 但是,有时候可能需要在不验证证书的情况下连接到存储系统,例如在测试环境中或者是存储系统的证书无法被识别的情况下。
echo "Plugins.Ceph.InsecureSkipVerify=true">> /etc/zabbix/zabbix_agent2.conf
systemctl restart zabbix-agent2
5. Web 端查看数据情况
- 主机情况
- 数据情况
其它节点部署
重复上述步骤总结一下:
- 部署官方 yum 仓库源
- 下载 agentd+agent 2
- 调整 agent 配置文件
- Web 端部署,套用模版
- 保证 agentd+agent 2 端口畅通
- Ceph 通过 API 授权 agent2