Zabbix6.2使用agent2监控Ceph15.2

主机结构

  • 务必关注版本,在不同的版本上操作会有差异。

Ceph 搭建

  • 略,已经完成搭建 [[0-Ceph分布式文件系统#搭建Ceph]]
  • 如果后续大家有需要的话单独补充一份搭建流程
    image.png

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-agent zabbix-agent2

image.png

初始化 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

image.png
image.png

日志排查

  • 当出现问题的时候可以进入该日志进行报错排查。
tail /var/log/zabbix/zabbix_agent2.log

image.png

Web 端设置

添加主机

重点,主机名需要跟 /etc/zabbix/zabbix_agent2.conf 中的 HOSTNAME 保持一致!
image.png

添加模版

image.png
image.png

成功探测到

image.png

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

image.png

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

image.png

3. Web 端新增秘钥

image.png

4. 跳过 SSL 验证

  • 在正常情况下,当使用 HTTPS 协议连接到 Ceph 存储时,系统会验证 Ceph 存储的 SSL 证书以确保连接的安全性。
  • 但是,有时候可能需要在不验证证书的情况下连接到存储系统,例如在测试环境中或者是存储系统的证书无法被识别的情况下。
echo "Plugins.Ceph.InsecureSkipVerify=true">> /etc/zabbix/zabbix_agent2.conf
systemctl restart zabbix-agent2

5. Web 端查看数据情况

  • 主机情况 
    image.png
  • 数据情况
    image.png

其它节点部署

重复上述步骤总结一下:

  1. 部署官方 yum 仓库源
  2. 下载 agentd+agent 2
  3. 调整 agent 配置文件
  4. Web 端部署,套用模版
  5. 保证 agentd+agent 2 端口畅通
  6. Ceph 通过 API 授权 agent2
posted @ 2023-03-12 11:39  L_Hang  阅读(698)  评论(0)    收藏  举报