ceph安装Dashboard并开启Object Gateway管理功能
阅读原文时间:2023年07月10日阅读:22

安装配置dashboard

Ceph-Dashboard 是用 Python 开发的一个 Ceph 的监控面板,用来监控 Ceph 的运行状态。同时 提供 REST API 来访问状态数据。

低版本的ceph需要在每个mgr节点安装软件:yum install ceph-mgr-dashboard -y

高版本的自带dashboard module

可以通过列出 ceph 所有模块查看是否有dashboard module,显示有但是未启用则直接启动,未显示则需要安装软件:ceph-mgr-dashboard

目前 mgr 功能模块可能还存在选举问题,如果多mgr节点都开启,可能会出现web页面取不到数据,建议只开启一个mgr节点服务,然后关闭其他节点mgr服务。

1.查看 Ceph 模块

Ceph mgr 是一个多模块化的组件,其组件可以单独的启用或关闭。

其操作在 ceph-deploy 服务器操作。

[ceph@ceph-deploy ceph-cluster]$ ceph mgr module ls     # 列出 ceph 所有模块

2.启用 dashboard 模块

注意事项:模块启用后还不能直接访问,需要配置关闭 SSL 或启用 SSL 及指定监听地址。

Ceph dashboard 模块在 mgr 节点进行开启设置,并且配置关闭 SSL

# 启用模块
[ceph@ceph-deploy ceph-cluster]$ ceph mgr module enable dashboard

# 关闭 dashboard SSL 功能
[ceph@ceph-deploy ceph-cluster]$ ceph config set mgr mgr/dashboard/ssl false

# 验证 ceph 集群状态
[ceph@ceph-deploy ceph-cluster]$ ceph -s

如果有以下报错:
Module 'dashboard' has failed: error('No socket could be created',)
需要检查 mgr 服务是否正常运行,可以重启一遍 mgr 服务 : systemctl restart ceph-mgr@.service

3.设置 dashboard 账户及密码

# 设置 admin 用户密码为 123456
[ceph@ceph-deploy ceph-cluster]$ ceph dashboard set-login-credentials admin 123456
Username and password updated

4.查看访问地址

# 未启用 SSL ,查看当前 dashboard 访问 URL
[ceph@ceph-deploy ceph-cluster]$ ceph mgr services
{
    "dashboard": "http://node1:8080/"
}

说明:未启用ssl,默认端口是8080,启动ssl,默认端口是8443

5.配置ssl证书访问

 生成证书
[ceph@ceph-deploy ceph-cluster]$ ceph dashboard create-self-signed-cert

# 启用 SSL
[ceph@ceph-deploy ceph-cluster]$ ceph config set mgr mgr/dashboard/ssl true

# 重启 mgr 服务
[root@ceph-mgr1 ~]# systemctl restart ceph-mgr@ceph-mgr1

# 启用 SSL ,查看当前 dashboard 访问 URL
[ceph@ceph-deploy ceph-cluster]$ ceph mgr services
{
    "dashboard": "https://node1:8443/"
}

6.设置访问IP和端口号

# 指定 dashboard 监听地址
[ceph@ceph-deploy ceph-cluster]$ ceph config set mgr mgr/dashboard/server_addr 10.16.16.111

# 指定 dashboard 监听端口
[ceph@ceph-deploy ceph-cluster]$ ceph config set mgr mgr/dashboard/server_port 9009 

# 在 mgr 节点验证端口与进程
# lsof -i:9009
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ceph-mgr 3846 ceph   28u  IPv4  32351      0t0  TCP ceph-mgr1.lck.local:pichat (LISTEN)

生效需要重启一遍 mgr 服务 : systemctl restart ceph-mgr@.service

查看当前 dashboard 访问 URL
[ceph@ceph-deploy ceph-cluster]$ ceph mgr services
{
    "dashboard": "https://10.16.16.111:9009/"
}

开启Object Gateway管理功能

进来之后什么都看不到,是因为没有配置权限

1.创建rgw用户

在ceph节点里面创建用户,这个用户会生成两个key

[root@node1 ~]# radosgw-admin user create --uid=user01 --display-name=user01 --system
{
    "user_id": "user01",
    "display_name": "user01",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [],
    "keys": [
        {
            "user": "user01",
            "access_key": "2GVA9G1JKW0JMQAELYS8",
            "secret_key": "hbcSDsgeqy0JCuAGLKHPxbpONW9LUT6cWCk8WAf6"
        }
    ],
    "swift_keys": [],
    "caps": [],
    "op_mask": "read, write, delete",
    "system": "true",
    "default_placement": "",
    "placement_tags": [],
    "bucket_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "user_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "temp_url_keys": [],
    "type": "rgw",
    "mfa_ids": []
}

留意上面出来的这俩参数

"access_key": "2GVA9G1JKW0JMQAELYS8",
"secret_key": "hbcSDsgeqy0JCuAGLKHPxbpONW9LUT6cWCk8WAf6"


# 把最后的字符串写入文件,命令引用文件来使用会报错,具体看下图,这里直接使用字符串了
[root@node1 ~]# ceph dashboard set-rgw-api-access-key 2GVA9G1JKW0JMQAELYS8
Option RGW_API_ACCESS_KEY updated

[root@node1 ~]# ceph dashboard set-rgw-api-secret-key hbcSDsgeqy0JCuAGLKHPxbpONW9LUT6cWCk8WAf6
Option RGW_API_SECRET_KEY updated

现在为dashboard这个接口提供这两个key去访问,那么就可以看到一些功能了

另一种方式,使用文件的形式

参考网站:https://blog.csdn.net/qq_34556414/article/details/116598310

[root@cephnode01 ~]# echo YN20C83EE5F83VE1PY31 > access.key
[root@cephnode01 ~]# ceph dashboard set-rgw-api-access-key -i access.key
Option RGW_API_ACCESS_KEY updated

[root@cephnode01 ~]# echo IStDC3Tq2BANS7EVwgY7iagFkmCp7AzgVeQc8Qiq > secret.key
[root@cephnode01 ~]# ceph dashboard set-rgw-api-secret-key -i secret.key
Option RGW_API_SECRET_KEY updated

2.配置rgw主机名和端口

[root@node1 ~]# netstat -tpln | grep 7480
tcp        0      0 0.0.0.0:7480            0.0.0.0:*               LISTEN      13606/radosgw 

[root@node1 ~]# ceph dashboard set-rgw-api-host 10.16.16.111
Option RGW_API_HOST updated

[root@node1 ~]# ceph dashboard set-rgw-api-port 7480
Option RGW_API_PORT updated

其他命令

ceph dashboard set-rgw-api-scheme http
ceph dashboard set-rgw-api-user-id user01
ceph dashboard set-rgw-api-ssl-verify False