Ceph使用---dashboard启用及Prometheus监控
一、Ceph dashboard介绍
Ceph dashboard 是通过一个 web 界面, 对已经运行的 ceph 集群进行状态查看及功能配置等功能, 早期 ceph 使用的是第三方的 dashboard 组件。
如:Calamari
Calamari 对外提供了十分漂亮的 Web 管理和监控界面, 以及一套改进的 REST API 接口(不同于 Ceph 自身的 REST API) , 在一定程度上简化了 Ceph 的管理。 最初 Calamari 是作为Inktank 公司的 Ceph 企业级商业产品来销售, 红帽 2015 年收购 Inktank 后为了更好地推动 Ceph 的发展, 对外宣布 Calamari 开源
https://github.com/ceph/calamari
优点:
- 管理功能好
- 界面友好
- 可以利用它来部署 Ceph 和监控 Ceph
缺点:
- 非官方
- 依赖 OpenStack 某些包
VSM
Virtual Storage Manager (VSM)是 Intel 公司研发并且开源的一款 Ceph 集群管理和监控软件, 简化了一些 Ceph 集群部署的一些步骤, 可以简单的通过 WEB 页面来操作。
https://github.com/intel/virtual-storage-manager
优点:
- 易部署
- 轻量级
- 灵活(可以自定义开发功能)
缺点:
- 监控选项少
- 缺乏 Ceph 管理功能
Inkscope
Inkscope 是一个 Ceph 的管理和监控系统, 依赖于 Ceph 提供的 API, 使用 MongoDB来存储实时的监控数据和历史信息。
https://github.com/inkscope/inkscope
优点:
- 易部署
- 轻量级
- 灵活(可以自定义开发功能)
缺点:
- 监控选项少
- 缺乏 Ceph 管理功能
Ceph-Dash
Ceph-Dash 是用 Python 开发的一个 Ceph 的监控面板, 用来监控 Ceph 的运行状态。同时提供 REST API 来访问状态数据。
http://cephdash.crapworks.de/
优点:
- 易部署
- 轻量级
- 灵活(可以自定义开发功能)
缺点:
- 功能相对简单
二、启用dashboard 插件
https://docs.ceph.com/en/mimic/mgr/
https://docs.ceph.com/en/latest/mgr/dashboard/
https://packages.debian.org/unstable/ceph-mgr-dashboard #15 版本有依赖需要单独解决Ceph mgr 是一个多插件(模块化)的组件, 其组件可以单独的启用或关闭。
以下为在ceph-deploy 服务器操作:
新版本需要安装 dashboard, 而且必须安装在 mgr 节点, 否则报错如下:
The following packages have unmet dependencies: ceph-mgr-dashboard : Depends: ceph-mgr (= 15.2.13-1~bpo10+1) but it is not going to be installed E: Unable to correct problems, you have held broken packages.
在ceph-mgr1节点安装ceph-dashboard插件
[root@ceph-mgr1 ~]# apt-cache madison ceph-mgr-dashboard ceph-mgr-dashboard | 16.2.10-1focal | https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific focal/main amd64 Packages ceph-mgr-dashboard | 15.2.16-0ubuntu0.20.04.1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/universe amd64 Packages ceph-mgr-dashboard | 15.2.12-0ubuntu0.20.04.1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security/universe amd64 Packages ceph-mgr-dashboard | 15.2.1-0ubuntu1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/universe amd64 Packages [root@ceph-mgr1 ~]# apt install ceph-mgr-dashboard
启用dashboard
cephadmin@ceph-deploy:~/ceph-cluster$ ceph mgr module -h #查看帮助
cephadmin@ceph-deploy:~/ceph-cluster$ ceph mgr module ls #16.2.10新版本模块太多,大概3200行左右
{ "always_on_modules": [ "balancer", "crash", "devicehealth", "orchestrator", "pg_autoscaler", "progress", "rbd_support", "status", "telemetry", "volumes" ], "enabled_modules": [ "iostat", "nfs", "restful" ], "disabled_modules": [ { "name": "alerts", "can_run": true, "error_string": "", "module_options": { "interval": { "name": "interval", "type": "secs", "level": "advanced", "flags": 1, "default_value": "60", "min": "", "max": "", "enum_allowed": [], "desc": "How frequently to reexamine health status", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "smtp_destination": { "name": "smtp_destination", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "Email address to send alerts to", "long_desc": "", "tags": [], "see_also": [] }, "smtp_from_name": { "name": "smtp_from_name", "type": "str", "level": "advanced", "flags": 1, "default_value": "Ceph", "min": "", "max": "", "enum_allowed": [], "desc": "Email From: name", "long_desc": "", "tags": [], "see_also": [] }, "smtp_host": { "name": "smtp_host", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "SMTP server", "long_desc": "", "tags": [], "see_also": [] }, "smtp_password": { "name": "smtp_password", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "Password to authenticate with", "long_desc": "", "tags": [], "see_also": [] }, "smtp_port": { "name": "smtp_port", "type": "int", "level": "advanced", "flags": 1, "default_value": "465", "min": "", "max": "", "enum_allowed": [], "desc": "SMTP port", "long_desc": "", "tags": [], "see_also": [] }, "smtp_sender": { "name": "smtp_sender", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "SMTP envelope sender", "long_desc": "", "tags": [], "see_also": [] }, "smtp_ssl": { "name": "smtp_ssl", "type": "bool", "level": "advanced", "flags": 1, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "Use SSL to connect to SMTP server", "long_desc": "", "tags": [], "see_also": [] }, "smtp_user": { "name": "smtp_user", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "User to authenticate as", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "cephadm", "can_run": false, "error_string": "loading remoto library:No module named 'remoto'", "module_options": { "allow_ptrace": { "name": "allow_ptrace", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "allow SYS_PTRACE capability on ceph containers", "long_desc": "The SYS_PTRACE capability is needed to attach to a process with gdb or strace. Enabling this options can allow debugging daemons that encounter problems at runtime.", "tags": [], "see_also": [] }, "autotune_interval": { "name": "autotune_interval", "type": "secs", "level": "advanced", "flags": 0, "default_value": "600", "min": "", "max": "", "enum_allowed": [], "desc": "how frequently to autotune daemon memory", "long_desc": "", "tags": [], "see_also": [] }, "autotune_memory_target_ratio": { "name": "autotune_memory_target_ratio", "type": "float", "level": "advanced", "flags": 0, "default_value": "0.7", "min": "", "max": "", "enum_allowed": [], "desc": "ratio of total system memory to divide amongst autotuned daemons", "long_desc": "", "tags": [], "see_also": [] }, "config_checks_enabled": { "name": "config_checks_enabled", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "Enable or disable the cephadm configuration analysis", "long_desc": "", "tags": [], "see_also": [] }, "config_dashboard": { "name": "config_dashboard", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "manage configs like API endpoints in Dashboard.", "long_desc": "", "tags": [], "see_also": [] }, "container_image_alertmanager": { "name": "container_image_alertmanager", "type": "str", "level": "advanced", "flags": 0, "default_value": "quay.io/prometheus/alertmanager:v0.23.0", "min": "", "max": "", "enum_allowed": [], "desc": "Prometheus container image", "long_desc": "", "tags": [], "see_also": [] }, "container_image_base": { "name": "container_image_base", "type": "str", "level": "advanced", "flags": 1, "default_value": "quay.io/ceph/ceph", "min": "", "max": "", "enum_allowed": [], "desc": "Container image name, without the tag", "long_desc": "", "tags": [], "see_also": [] }, "container_image_grafana": { "name": "container_image_grafana", "type": "str", "level": "advanced", "flags": 0, "default_value": "quay.io/ceph/ceph-grafana:8.3.5", "min": "", "max": "", "enum_allowed": [], "desc": "Prometheus container image", "long_desc": "", "tags": [], "see_also": [] }, "container_image_haproxy": { "name": "container_image_haproxy", "type": "str", "level": "advanced", "flags": 0, "default_value": "docker.io/library/haproxy:2.3", "min": "", "max": "", "enum_allowed": [], "desc": "HAproxy container image", "long_desc": "", "tags": [], "see_also": [] }, "container_image_keepalived": { "name": "container_image_keepalived", "type": "str", "level": "advanced", "flags": 0, "default_value": "docker.io/arcts/keepalived", "min": "", "max": "", "enum_allowed": [], "desc": "Keepalived container image", "long_desc": "", "tags": [], "see_also": [] }, "container_image_node_exporter": { "name": "container_image_node_exporter", "type": "str", "level": "advanced", "flags": 0, "default_value": "quay.io/prometheus/node-exporter:v1.3.1", "min": "", "max": "", "enum_allowed": [], "desc": "Prometheus container image", "long_desc": "", "tags": [], "see_also": [] }, "container_image_prometheus": { "name": "container_image_prometheus", "type": "str", "level": "advanced", "flags": 0, "default_value": "quay.io/prometheus/prometheus:v2.33.4", "min": "", "max": "", "enum_allowed": [], "desc": "Prometheus container image", "long_desc": "", "tags": [], "see_also": [] }, "container_image_snmp_gateway": { "name": "container_image_snmp_gateway", "type": "str", "level": "advanced", "flags": 0, "default_value": "docker.io/maxwo/snmp-notifier:v1.2.1", "min": "", "max": "", "enum_allowed": [], "desc": "SNMP Gateway container image", "long_desc": "", "tags": [], "see_also": [] }, "container_init": { "name": "container_init", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "Run podman/docker with `--init`", "long_desc": "", "tags": [], "see_also": [] }, "daemon_cache_timeout": { "name": "daemon_cache_timeout", "type": "secs", "level": "advanced", "flags": 0, "default_value": "600", "min": "", "max": "", "enum_allowed": [], "desc": "seconds to cache service (daemon) inventory", "long_desc": "", "tags": [], "see_also": [] }, "default_registry": { "name": "default_registry", "type": "str", "level": "advanced", "flags": 0, "default_value": "docker.io", "min": "", "max": "", "enum_allowed": [], "desc": "Search-registry to which we should normalize unqualified image names. This is not the default registry", "long_desc": "", "tags": [], "see_also": [] }, "device_cache_timeout": { "name": "device_cache_timeout", "type": "secs", "level": "advanced", "flags": 0, "default_value": "1800", "min": "", "max": "", "enum_allowed": [], "desc": "seconds to cache device inventory", "long_desc": "", "tags": [], "see_also": [] }, "device_enhanced_scan": { "name": "device_enhanced_scan", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "Use libstoragemgmt during device scans", "long_desc": "", "tags": [], "see_also": [] }, "facts_cache_timeout": { "name": "facts_cache_timeout", "type": "secs", "level": "advanced", "flags": 0, "default_value": "60", "min": "", "max": "", "enum_allowed": [], "desc": "seconds to cache host facts data", "long_desc": "", "tags": [], "see_also": [] }, "host_check_interval": { "name": "host_check_interval", "type": "secs", "level": "advanced", "flags": 0, "default_value": "600", "min": "", "max": "", "enum_allowed": [], "desc": "how frequently to perform a host check", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "log to the \"cephadm\" cluster log channel\"", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "manage_etc_ceph_ceph_conf": { "name": "manage_etc_ceph_ceph_conf", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "Manage and own /etc/ceph/ceph.conf on the hosts.", "long_desc": "", "tags": [], "see_also": [] }, "manage_etc_ceph_ceph_conf_hosts": { "name": "manage_etc_ceph_ceph_conf_hosts", "type": "str", "level": "advanced", "flags": 0, "default_value": "*", "min": "", "max": "", "enum_allowed": [], "desc": "PlacementSpec describing on which hosts to manage /etc/ceph/ceph.conf", "long_desc": "", "tags": [], "see_also": [] }, "max_count_per_host": { "name": "max_count_per_host", "type": "int", "level": "advanced", "flags": 0, "default_value": "10", "min": "", "max": "", "enum_allowed": [], "desc": "max number of daemons per service per host", "long_desc": "", "tags": [], "see_also": [] }, "max_osd_draining_count": { "name": "max_osd_draining_count", "type": "int", "level": "advanced", "flags": 0, "default_value": "10", "min": "", "max": "", "enum_allowed": [], "desc": "max number of osds that will be drained simultaneously when osds are removed", "long_desc": "", "tags": [], "see_also": [] }, "migration_current": { "name": "migration_current", "type": "int", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "internal - do not modify", "long_desc": "", "tags": [], "see_also": [] }, "mode": { "name": "mode", "type": "str", "level": "advanced", "flags": 0, "default_value": "root", "min": "", "max": "", "enum_allowed": [ "cephadm-package", "root" ], "desc": "mode for remote execution of cephadm", "long_desc": "", "tags": [], "see_also": [] }, "prometheus_alerts_path": { "name": "prometheus_alerts_path", "type": "str", "level": "advanced", "flags": 0, "default_value": "/etc/prometheus/ceph/ceph_default_alerts.yml", "min": "", "max": "", "enum_allowed": [], "desc": "location of alerts to include in prometheus deployments", "long_desc": "", "tags": [], "see_also": [] }, "registry_insecure": { "name": "registry_insecure", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "Registry is to be considered insecure (no TLS available). Only for development purposes.", "long_desc": "", "tags": [], "see_also": [] }, "registry_password": { "name": "registry_password", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "Custom repository password. Only used for logging into a registry.", "long_desc": "", "tags": [], "see_also": [] }, "registry_url": { "name": "registry_url", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "Registry url for login purposes. This is not the default registry", "long_desc": "", "tags": [], "see_also": [] }, "registry_username": { "name": "registry_username", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "Custom repository username. Only used for logging into a registry.", "long_desc": "", "tags": [], "see_also": [] }, "ssh_config_file": { "name": "ssh_config_file", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "customized SSH config file to connect to managed hosts", "long_desc": "", "tags": [], "see_also": [] }, "use_repo_digest": { "name": "use_repo_digest", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "Automatically convert image tags to image digest. Make sure all daemons use the same image", "long_desc": "", "tags": [], "see_also": [] }, "warn_on_failed_host_check": { "name": "warn_on_failed_host_check", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "raise a health warning if the host check fails", "long_desc": "", "tags": [], "see_also": [] }, "warn_on_stray_daemons": { "name": "warn_on_stray_daemons", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "raise a health warning if daemons are detected that are not managed by cephadm", "long_desc": "", "tags": [], "see_also": [] }, "warn_on_stray_hosts": { "name": "warn_on_stray_hosts", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "raise a health warning if daemons are detected on a host that is not managed by cephadm", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "dashboard", "can_run": true, "error_string": "", "module_options": { "ACCOUNT_LOCKOUT_ATTEMPTS": { "name": "ACCOUNT_LOCKOUT_ATTEMPTS", "type": "int", "level": "advanced", "flags": 0, "default_value": "10", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "ALERTMANAGER_API_HOST": { "name": "ALERTMANAGER_API_HOST", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "ALERTMANAGER_API_SSL_VERIFY": { "name": "ALERTMANAGER_API_SSL_VERIFY", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "AUDIT_API_ENABLED": { "name": "AUDIT_API_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "AUDIT_API_LOG_PAYLOAD": { "name": "AUDIT_API_LOG_PAYLOAD", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "ENABLE_BROWSABLE_API": { "name": "ENABLE_BROWSABLE_API", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "FEATURE_TOGGLE_CEPHFS": { "name": "FEATURE_TOGGLE_CEPHFS", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "FEATURE_TOGGLE_ISCSI": { "name": "FEATURE_TOGGLE_ISCSI", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "FEATURE_TOGGLE_MIRRORING": { "name": "FEATURE_TOGGLE_MIRRORING", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "FEATURE_TOGGLE_NFS": { "name": "FEATURE_TOGGLE_NFS", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "FEATURE_TOGGLE_RBD": { "name": "FEATURE_TOGGLE_RBD", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "FEATURE_TOGGLE_RGW": { "name": "FEATURE_TOGGLE_RGW", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "GANESHA_CLUSTERS_RADOS_POOL_NAMESPACE": { "name": "GANESHA_CLUSTERS_RADOS_POOL_NAMESPACE", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "GRAFANA_API_PASSWORD": { "name": "GRAFANA_API_PASSWORD", "type": "str", "level": "advanced", "flags": 0, "default_value": "admin", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "GRAFANA_API_SSL_VERIFY": { "name": "GRAFANA_API_SSL_VERIFY", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "GRAFANA_API_URL": { "name": "GRAFANA_API_URL", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "GRAFANA_API_USERNAME": { "name": "GRAFANA_API_USERNAME", "type": "str", "level": "advanced", "flags": 0, "default_value": "admin", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "GRAFANA_FRONTEND_API_URL": { "name": "GRAFANA_FRONTEND_API_URL", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "GRAFANA_UPDATE_DASHBOARDS": { "name": "GRAFANA_UPDATE_DASHBOARDS", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "ISCSI_API_SSL_VERIFICATION": { "name": "ISCSI_API_SSL_VERIFICATION", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PROMETHEUS_API_HOST": { "name": "PROMETHEUS_API_HOST", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PROMETHEUS_API_SSL_VERIFY": { "name": "PROMETHEUS_API_SSL_VERIFY", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_CHECK_COMPLEXITY_ENABLED": { "name": "PWD_POLICY_CHECK_COMPLEXITY_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_CHECK_EXCLUSION_LIST_ENABLED": { "name": "PWD_POLICY_CHECK_EXCLUSION_LIST_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_CHECK_LENGTH_ENABLED": { "name": "PWD_POLICY_CHECK_LENGTH_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_CHECK_OLDPWD_ENABLED": { "name": "PWD_POLICY_CHECK_OLDPWD_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_CHECK_REPETITIVE_CHARS_ENABLED": { "name": "PWD_POLICY_CHECK_REPETITIVE_CHARS_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_CHECK_SEQUENTIAL_CHARS_ENABLED": { "name": "PWD_POLICY_CHECK_SEQUENTIAL_CHARS_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_CHECK_USERNAME_ENABLED": { "name": "PWD_POLICY_CHECK_USERNAME_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_ENABLED": { "name": "PWD_POLICY_ENABLED", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_EXCLUSION_LIST": { "name": "PWD_POLICY_EXCLUSION_LIST", "type": "str", "level": "advanced", "flags": 0, "default_value": "osd,host,dashboard,pool,block,nfs,ceph,monitors,gateway,logs,crush,maps", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_MIN_COMPLEXITY": { "name": "PWD_POLICY_MIN_COMPLEXITY", "type": "int", "level": "advanced", "flags": 0, "default_value": "10", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "PWD_POLICY_MIN_LENGTH": { "name": "PWD_POLICY_MIN_LENGTH", "type": "int", "level": "advanced", "flags": 0, "default_value": "8", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "REST_REQUESTS_TIMEOUT": { "name": "REST_REQUESTS_TIMEOUT", "type": "int", "level": "advanced", "flags": 0, "default_value": "45", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "RGW_API_ACCESS_KEY": { "name": "RGW_API_ACCESS_KEY", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "RGW_API_ADMIN_RESOURCE": { "name": "RGW_API_ADMIN_RESOURCE", "type": "str", "level": "advanced", "flags": 0, "default_value": "admin", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "RGW_API_SECRET_KEY": { "name": "RGW_API_SECRET_KEY", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "RGW_API_SSL_VERIFY": { "name": "RGW_API_SSL_VERIFY", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "USER_PWD_EXPIRATION_SPAN": { "name": "USER_PWD_EXPIRATION_SPAN", "type": "int", "level": "advanced", "flags": 0, "default_value": "0", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "USER_PWD_EXPIRATION_WARNING_1": { "name": "USER_PWD_EXPIRATION_WARNING_1", "type": "int", "level": "advanced", "flags": 0, "default_value": "10", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "USER_PWD_EXPIRATION_WARNING_2": { "name": "USER_PWD_EXPIRATION_WARNING_2", "type": "int", "level": "advanced", "flags": 0, "default_value": "5", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "crt_file": { "name": "crt_file", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "debug": { "name": "debug", "type": "bool", "level": "advanced", "flags": 0, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "Enable/disable debug options", "long_desc": "", "tags": [], "see_also": [] }, "jwt_token_ttl": { "name": "jwt_token_ttl", "type": "int", "level": "advanced", "flags": 0, "default_value": "28800", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "key_file": { "name": "key_file", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "motd": { "name": "motd", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "The message of the day", "long_desc": "", "tags": [], "see_also": [] }, "server_addr": { "name": "server_addr", "type": "str", "level": "advanced", "flags": 0, "default_value": "::", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "server_port": { "name": "server_port", "type": "int", "level": "advanced", "flags": 0, "default_value": "8080", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "ssl": { "name": "ssl", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "ssl_server_port": { "name": "ssl_server_port", "type": "int", "level": "advanced", "flags": 0, "default_value": "8443", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "standby_behaviour": { "name": "standby_behaviour", "type": "str", "level": "advanced", "flags": 0, "default_value": "redirect", "min": "", "max": "", "enum_allowed": [ "error", "redirect" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "standby_error_status_code": { "name": "standby_error_status_code", "type": "int", "level": "advanced", "flags": 0, "default_value": "500", "min": "400", "max": "599", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "url_prefix": { "name": "url_prefix", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "influx", "can_run": false, "error_string": "influxdb python module not found", "module_options": { "batch_size": { "name": "batch_size", "type": "str", "level": "advanced", "flags": 0, "default_value": "5000", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "database": { "name": "database", "type": "str", "level": "advanced", "flags": 0, "default_value": "ceph", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "hostname": { "name": "hostname", "type": "str", "level": "advanced", "flags": 0, "default_value": "None", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "interval": { "name": "interval", "type": "str", "level": "advanced", "flags": 0, "default_value": "30", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "password": { "name": "password", "type": "str", "level": "advanced", "flags": 0, "default_value": "None", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "port": { "name": "port", "type": "str", "level": "advanced", "flags": 0, "default_value": "8086", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "ssl": { "name": "ssl", "type": "str", "level": "advanced", "flags": 0, "default_value": "false", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "threads": { "name": "threads", "type": "str", "level": "advanced", "flags": 0, "default_value": "5", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "username": { "name": "username", "type": "str", "level": "advanced", "flags": 0, "default_value": "None", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "verify_ssl": { "name": "verify_ssl", "type": "str", "level": "advanced", "flags": 0, "default_value": "true", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "insights", "can_run": true, "error_string": "", "module_options": { "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "localpool", "can_run": true, "error_string": "", "module_options": { "failure_domain": { "name": "failure_domain", "type": "str", "level": "advanced", "flags": 1, "default_value": "host", "min": "", "max": "", "enum_allowed": [], "desc": "failure domain for any created local pool", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "min_size": { "name": "min_size", "type": "int", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "default min_size for any created local pool", "long_desc": "", "tags": [], "see_also": [] }, "num_rep": { "name": "num_rep", "type": "int", "level": "advanced", "flags": 1, "default_value": "3", "min": "", "max": "", "enum_allowed": [], "desc": "default replica count for any created local pool", "long_desc": "", "tags": [], "see_also": [] }, "pg_num": { "name": "pg_num", "type": "int", "level": "advanced", "flags": 1, "default_value": "128", "min": "", "max": "", "enum_allowed": [], "desc": "default pg_num for any created local pool", "long_desc": "", "tags": [], "see_also": [] }, "prefix": { "name": "prefix", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "name prefix for any created local pool", "long_desc": "", "tags": [], "see_also": [] }, "subtree": { "name": "subtree", "type": "str", "level": "advanced", "flags": 1, "default_value": "rack", "min": "", "max": "", "enum_allowed": [], "desc": "CRUSH level for which to create a local pool", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "mirroring", "can_run": true, "error_string": "", "module_options": { "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "osd_support", "can_run": true, "error_string": "", "module_options": { "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "prometheus", "can_run": true, "error_string": "", "module_options": { "cache": { "name": "cache", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "rbd_stats_pools": { "name": "rbd_stats_pools", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "rbd_stats_pools_refresh_interval": { "name": "rbd_stats_pools_refresh_interval", "type": "int", "level": "advanced", "flags": 0, "default_value": "300", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "scrape_interval": { "name": "scrape_interval", "type": "float", "level": "advanced", "flags": 0, "default_value": "15.0", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "server_addr": { "name": "server_addr", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "server_port": { "name": "server_port", "type": "int", "level": "advanced", "flags": 1, "default_value": "9283", "min": "", "max": "", "enum_allowed": [], "desc": "the port on which the module listens for HTTP requests", "long_desc": "", "tags": [], "see_also": [] }, "stale_cache_strategy": { "name": "stale_cache_strategy", "type": "str", "level": "advanced", "flags": 0, "default_value": "log", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "standby_behaviour": { "name": "standby_behaviour", "type": "str", "level": "advanced", "flags": 1, "default_value": "default", "min": "", "max": "", "enum_allowed": [ "default", "error" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "standby_error_status_code": { "name": "standby_error_status_code", "type": "int", "level": "advanced", "flags": 1, "default_value": "500", "min": "400", "max": "599", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "selftest", "can_run": true, "error_string": "", "module_options": { "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "roption1": { "name": "roption1", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "roption2": { "name": "roption2", "type": "str", "level": "advanced", "flags": 0, "default_value": "xyz", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "rwoption1": { "name": "rwoption1", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "rwoption2": { "name": "rwoption2", "type": "int", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "rwoption3": { "name": "rwoption3", "type": "float", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "rwoption4": { "name": "rwoption4", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "rwoption5": { "name": "rwoption5", "type": "bool", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "rwoption6": { "name": "rwoption6", "type": "bool", "level": "advanced", "flags": 0, "default_value": "True", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "testkey": { "name": "testkey", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "testlkey": { "name": "testlkey", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "testnewline": { "name": "testnewline", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "snap_schedule", "can_run": true, "error_string": "", "module_options": { "allow_m_granularity": { "name": "allow_m_granularity", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "allow minute scheduled snapshots", "long_desc": "", "tags": [], "see_also": [] }, "dump_on_update": { "name": "dump_on_update", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "dump database to debug log on update", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "stats", "can_run": true, "error_string": "", "module_options": { "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "telegraf", "can_run": true, "error_string": "", "module_options": { "address": { "name": "address", "type": "str", "level": "advanced", "flags": 0, "default_value": "unixgram:///tmp/telegraf.sock", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "interval": { "name": "interval", "type": "secs", "level": "advanced", "flags": 0, "default_value": "15", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "test_orchestrator", "can_run": true, "error_string": "", "module_options": { "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } }, { "name": "zabbix", "can_run": true, "error_string": "", "module_options": { "discovery_interval": { "name": "discovery_interval", "type": "str", "level": "advanced", "flags": 0, "default_value": "100", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "identifier": { "name": "identifier", "type": "str", "level": "advanced", "flags": 0, "default_value": "", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "interval": { "name": "interval", "type": "secs", "level": "advanced", "flags": 0, "default_value": "60", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_level": { "name": "log_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster": { "name": "log_to_cluster", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_cluster_level": { "name": "log_to_cluster_level", "type": "str", "level": "advanced", "flags": 1, "default_value": "info", "min": "", "max": "", "enum_allowed": [ "", "critical", "debug", "error", "info", "warning" ], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "log_to_file": { "name": "log_to_file", "type": "bool", "level": "advanced", "flags": 1, "default_value": "False", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "zabbix_host": { "name": "zabbix_host", "type": "str", "level": "advanced", "flags": 0, "default_value": "None", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "zabbix_port": { "name": "zabbix_port", "type": "int", "level": "advanced", "flags": 0, "default_value": "10051", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] }, "zabbix_sender": { "name": "zabbix_sender", "type": "str", "level": "advanced", "flags": 0, "default_value": "/usr/bin/zabbix_sender", "min": "", "max": "", "enum_allowed": [], "desc": "", "long_desc": "", "tags": [], "see_also": [] } } } ] }
cephadmin@ceph-deploy:~/ceph-cluster$ ceph mgr module enable dashboard
cephadmin@ceph-deploy:~/ceph-cluster$
注:模块启用后还不能直接访问, 需要配置关闭 SSL 或启用 SSL 及指定监听地址。
启用 dashboard 模块
Ceph dashboard 在 mgr 节点进行开启设置, 并且可以配置开启或者关闭 SSL, 如下:
cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mgr mgr/dashboard/ssl false #关闭SSL cephadmin@ceph-deploy:~/ceph-cluster$ cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mgr mgr/dashboard/ceph-mgr1/server_addr 172.16.88.111 #指定dashboard监听地址 cephadmin@ceph-deploy:~/ceph-cluster$ cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mgr mgr/dashboard/ceph-mgr1/server_port 9009 #指定dashboard监听端口 cephadmin@ceph-deploy:~/ceph-cluster$ cephadmin@ceph-deploy:~/ceph-cluster$ ceph mgr services {} cephadmin@ceph-deploy:~/ceph-cluster$ ceph mgr services #查看ceph-mgr dashboard监听端口 { "dashboard": "http://172.16.88.111:9009/" } cephadmin@ceph-deploy:~/ceph-cluster$ cephadmin@ceph-deploy:~/ceph-cluster$ ceph -s #检查ceph集群健康状态 cluster: id: 8dc32c41-121c-49df-9554-dfb7deb8c975 health: HEALTH_OK services: mon: 3 daemons, quorum ceph-mon1,ceph-mon2,ceph-mon3 (age 33h) mgr: ceph-mgr1(active, since 7m), standbys: ceph-mgr2 mds: 2/2 daemons up, 2 standby osd: 9 osds: 9 up (since 33h), 9 in (since 7d) rgw: 2 daemons active (2 hosts, 1 zones) data: volumes: 1/1 healthy pools: 13 pools, 433 pgs objects: 843 objects, 1.8 GiB usage: 6.2 GiB used, 894 GiB / 900 GiB avail pgs: 433 active+clean io: client: 29 KiB/s rd, 0 B/s wr, 28 op/s rd, 19 op/s wr cephadmin@ceph-deploy:~/ceph-cluster$ [root@ceph-mgr1 ~]# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 172.16.88.111:6805 0.0.0.0:* LISTEN 22005/ceph-mgr tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 666/systemd-resolve tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1144/sshd: /usr/sbi tcp 0 0 0.0.0.0:40825 0.0.0.0:* LISTEN 790/rpc.statd tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 21235/sshd: root@pt tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 22259/sshd: root@pt tcp 0 0 0.0.0.0:9443 0.0.0.0:* LISTEN 7627/radosgw tcp 0 0 0.0.0.0:9900 0.0.0.0:* LISTEN 7627/radosgw tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/init tcp 0 0 172.16.88.111:6800 0.0.0.0:* LISTEN 7187/ceph-mds tcp 0 0 172.16.88.111:9009 0.0.0.0:* LISTEN 22005/ceph-mgr tcp 0 0 172.16.88.111:6801 0.0.0.0:* LISTEN 7187/ceph-mds tcp 0 0 127.0.0.1:42225 0.0.0.0:* LISTEN 777/containerd tcp 0 0 172.16.88.111:6802 0.0.0.0:* LISTEN 855/ceph-mds tcp 0 0 172.16.88.111:6803 0.0.0.0:* LISTEN 855/ceph-mds tcp 0 0 172.16.88.111:6804 0.0.0.0:* LISTEN 22005/ceph-mgr tcp6 0 0 :::22 :::* LISTEN 1144/sshd: /usr/sbi tcp6 0 0 ::1:6010 :::* LISTEN 21235/sshd: root@pt tcp6 0 0 ::1:6011 :::* LISTEN 22259/sshd: root@pt tcp6 0 0 :::37979 :::* LISTEN 790/rpc.statd tcp6 0 0 :::2049 :::* LISTEN 887/ganesha.nfsd tcp6 0 0 :::111 :::* LISTEN 1/init tcp6 0 0 :::8080 :::* LISTEN 21994/ceph-mgr [root@ceph-mgr1 ~]#
如果出现"Module 'dashboard' has failed: OSError("Port 8080 not free on '::'")"
cephadmin@ceph-deploy:~/ceph-cluster$ ceph -s cluster: id: 8dc32c41-121c-49df-9554-dfb7deb8c975 health: HEALTH_ERR Module 'dashboard' has failed: OSError("Port 8080 not free on '::'") services: mon: 3 daemons, quorum ceph-mon1,ceph-mon2,ceph-mon3 (age 33h) mgr: ceph-mgr1(active, since 9m), standbys: ceph-mgr2 mds: 2/2 daemons up, 2 standby osd: 9 osds: 9 up (since 33h), 9 in (since 7d) rgw: 2 daemons active (2 hosts, 1 zones) data: volumes: 1/1 healthy pools: 13 pools, 433 pgs objects: 843 objects, 1.8 GiB usage: 6.2 GiB used, 894 GiB / 900 GiB avail pgs: 433 active+clean cephadmin@ceph-deploy:~/ceph-cluster$ ceph health detail HEALTH_ERR Module 'dashboard' has failed: OSError("Port 8080 not free on '::'") [ERR] MGR_MODULE_ERROR: Module 'dashboard' has failed: OSError("Port 8080 not free on '::'") Module 'dashboard' has failed: OSError("Port 8080 not free on '::'") cephadmin@ceph-deploy:~/ceph-cluster$
解决办法:
重启mgr服务
[root@ceph-mgr1 ~]# systemctl restart ceph-mgr@ceph-mgr1.service
或者 [root@ceph-mgr1 ~]# systemctl restart ceph-mgr.target
再次设置dashboard监听地址与端口 cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mgr mgr/dashboard/ssl false cephadmin@ceph-deploy:~/ceph-cluster$ cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mgr mgr/dashboard/ceph-mgr1/server_addr 172.16.88.111 cephadmin@ceph-deploy:~/ceph-cluster$ cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mgr mgr/dashboard/ceph-mgr1/server cephadmin@ceph-deploy:~/ceph-cluster$ ceph mgr services { "dashboard": "http://172.16.88.111:9009/" } cephadmin@ceph-deploy:~/ceph-cluster$_port 9009 cephadmin@ceph-deploy:~/ceph-cluster$
设置 dashboard 账户及密码
cephadmin@ceph-deploy:~/ceph-cluster$ touch pass.txt cephadmin@ceph-deploy:~/ceph-cluster$ echo "12345678" > pass.txt cephadmin@ceph-deploy:~/ceph-cluster$ ceph dashboard set-login-credentials admin -i pass.txt ****************************************************************** *** WARNING: this command is deprecated. *** *** Please use the ac-user-* related commands to manage users. *** ****************************************************************** Username and password updated cephadmin@ceph-deploy:~/ceph-cluster$
dashboard 验证
ceph-node节点
ceph-osd详情
集群pool详情
cephfs
radosgw
三、dashboard SSL启用
如果要使用 SSL 访问。 则需要配置签名证书。 证书可以使用 ceph 命令生成, 或是 opessl命令生成。
https://docs.ceph.com/en/latest/mgr/dashboard/
cephadmin@ceph-deploy:~/ceph-cluster$ ceph dashboard create-self-signed-cert #创建证书 Self-signed certificate created cephadmin@ceph-deploy:~/ceph-cluster$ cephadmin@ceph-deploy:~/ceph-cluster$ ceph config set mgr mgr/dashboard/ssl true #开启ssl认证 cephadmin@ceph-deploy:~/ceph-cluster$ cephadmin@ceph-deploy:~/ceph-cluster$ ceph mgr services { "dashboard": "http://172.16.88.111:9009/" } cephadmin@ceph-deploy:~/ceph-cluster$ 重启ceph-mgr1服务 [root@ceph-mgr1 ~]# systemctl restart ceph-mgr.target cephadmin@ceph-deploy:~/ceph-cluster$ ceph mgr services { "dashboard": "https://172.16.88.111:8443/" } cephadmin@ceph-deploy:~/ceph-cluster$
四、通过 prometheus监控ceph集群
[root@ceph-mgr1 ~]# mkdir /apps [root@ceph-mgr1 ~]# cd /apps/ [root@ceph-mgr1 apps]# ls [root@ceph-mgr1 apps]# wget https://github.com/prometheus/prometheus/releases/download/v2.39.1/prometheus-2.39.1.linux-amd64.tar.gz [root@ceph-mgr1 apps]# tar -xf prometheus-2.39.1.linux-amd64.tar.gz [root@ceph-mgr1 apps]# mv prometheus-2.39.1.linux-amd64 prometheus [root@ceph-mgr1 prometheus]# vi /etc/systemd/system/prometheus.service [root@ceph-mgr1 prometheus]# cat /etc/systemd/system/prometheus.service [Unit] Description=Prometheus Server Documentation=https://prometheus.io/docs/introduction/overview/ After=network.target [Service] Restart=on-failure WorkingDirectory=/apps/prometheus/ ExecStart=/apps/prometheus/prometheus --config.file=/apps/prometheus/prometheus.yml [Install] WantedBy=multi-user.target [root@ceph-mgr1 prometheus]# [root@ceph-mgr1 prometheus]# systemctl daemon-reload [root@ceph-mgr1 prometheus]# systemctl enable --now prometheus.service
部署 node_exporter:
各 node 节点安装 node_exporter
root@easzlab-deploy:~# ansible 'vm' -m shell -a "mkdir /apps" root@easzlab-deploy:~# mkdir ceph-prometheus root@easzlab-deploy:~# cd ceph-prometheus/ root@easzlab-deploy:~/ceph-prometheus# vi /etc/systemd/system/node-exporter.service [Unit] Description=Prometheus Node Exporter After=network.target [Service] ExecStart=/apps/node_exporter/node_exporter [Install] WantedBy=multi-user.target root@easzlab-deploy:~/ceph-prometheus# root@easzlab-deploy:~/ceph-prometheus# wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz root@easzlab-deploy:~/ceph-prometheus# mv node_exporter-1.4.0.linux-amd64 node_exporter root@easzlab-deploy:~# ansible 'vm' -m copy -a "src=/root/ceph-prometheus/node_exporter dest=/apps" root@easzlab-deploy:~# ansible 'vm' -m copy -a "src=/root/ceph-prometheus/node-exporter.service dest=/etc/systemd/system/" root@easzlab-deploy:~# ansible 'vm' -m shell -a "systemctl daemon-reload && systemctl enable --now node-exporter.service"
配置 prometheus server 数据并验证
[root@ceph-mgr1 ~]# vim /apps/prometheus/prometheus.yml [root@ceph-mgr1 ~]# cat /apps/prometheus/prometheus.yml # my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: "prometheus" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ["localhost:9090"] - job_name: 'ceph-node-data' static_configs: - targets: ['172.16.88.121:9100','172.16.88.122:9100','172.16.88.123:9100'] [root@ceph-mgr1 ~]# [root@ceph-mgr1 ~]# cd /apps/prometheus/ [root@ceph-mgr1 prometheus]# ./promtool check prometheus.yml promtool: error: expected command but got "prometheus.yml", try --help [root@ceph-mgr1 prometheus]# ./promtool check config prometheus.yml Checking prometheus.yml SUCCESS: prometheus.yml is valid prometheus config file syntax [root@ceph-mgr1 prometheus]#
[root@ceph-mgr1 prometheus]# systemctl restart prometheus.service
通过 prometheus 监控 ceph 服务:
Ceph manager 内部的模块中包含了 prometheus 的监控模块,并监听在每个 manager 节点的 9283 端口, 该端口用于将采集到的信息通过 http 接口向 prometheus 提供数据。
https://docs.ceph.com/en/mimic/mgr/prometheus/?highlight=prometheus
启用 prometheus 监控模块
[root@ceph-deploy ~]# ceph mgr module enable prometheus
[root@ceph-deploy ~]#
验证 manager 数据
配置 prometheus 采集数据
[root@ceph-mgr1 prometheus]# vi prometheus.yml [root@ceph-mgr1 prometheus]# cat prometheus.yml # my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: "prometheus" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ["localhost:9090"] - job_name: 'ceph-node-data' static_configs: - targets: ['172.16.88.121:9100','172.16.88.122:9100','172.16.88.123:9100'] - job_name: 'ceph-cluster-data' static_configs: - targets: ['172.16.88.111:9283'] [root@ceph-mgr1 prometheus]# [root@ceph-mgr1 prometheus]# [root@ceph-mgr1 prometheus]# ./promtool check config prometheus.yml Checking prometheus.yml SUCCESS: prometheus.yml is valid prometheus config file syntax [root@ceph-mgr1 prometheus]# systemctl restart prometheus.service
通过 granfana 显示对 ceph 的集群监控数据及 node 数据
安装略
dpkg -i grafana-enterprise_8.5.6_amd64.deb systemctl enable --now grafana-server
添加Prometheus-ceph数据源
导入模板:
https://grafana.com/grafana/dashboards/5336 #ceph OSD
https://grafana.com/grafana/dashboards/5342 #ceph pools
https://grafana.com/grafana/dashboards/7056 #ceph cluser
https://grafana.com/grafana/dashboards/2842