K8S集群部署kube-Prometheus监控Ceph(版本octopus)集群、并实现告警。

一、背景描述

公司K8S集群后端存储采用的是cephfs,测试环境经常性出现存储故障,虽然最后都解决了但是也比较耗时,于是决定还是把监控做上,测试环境已经有Prometheus了,那就直接采用prometheus实现数据采集。granfa做展示。

除了 Kubernetes 集群中的一些资源对象、节点以及组件需要监控,有的时候我们可能还需要根据实际的业务需求去添加自定义的监控项,添加一个自定义监控的步骤也是非常简单的,主要有以下三个步骤:

第一步建立一个 ServiceMonitor 对象,用于 Prometheus 添加监控项;
第二步为 ServiceMonitor 对象关联 metrics 数据接口的一个 Service 对象;
第三步确保 Service 对象可以正确获取到 Metrics 数据;

Ceph版本为:

[root@k8s01 ceph_exporter]# ceph version
ceph version 15.2.4 (7447c15c6ff58d7fce91843b705a268a1917325c) octopus (stable)

通过度娘得知
在Ceph Luminous之前的版本,可以使用第三方的Prometheus exporterceph_exporter。 Ceph Luminous 12.2.1的mgr中自带了Prometheus插件,内置了 Prometheus ceph exporter,可以使用Ceph mgr内置的exporter作为Prometheus的target。
注:Prometheus、Granfa已经提前部署好,这里就不做演示了!

二、Ceph节点配置

①、启用ceph mgr prometheus插件

[root@k8s01 ceph_exporter]# ceph -s  #查看ceph集群状态cluster:id:     b5f36dec-8faa-4efa-b08d-cbcd8305ae63health: HEALTH_OKservices:mon: 3 daemons, quorum k8s01,k8s03,k8s04 (age 2d)mgr: k8s01(active, since 3d)mds: cephfs:1 {0=k8s01=up:active}osd: 3 osds: 3 up (since 2d), 3 in (since 3d)task status:scrub status:mds.k8s01: idledata:pools:   3 pools, 81 pgsobjects: 26.35k objects, 6.5 GiBusage:   24 GiB used, 216 GiB / 240 GiB availpgs:     81 active+cleanio:client:   70 KiB/s wr, 0 op/s rd, 7 op/s wr[root@k8s01 ceph_exporter]# ceph mgr module enable prometheus  #启用prometues exporter
[root@k8s01 ceph_exporter]# netstat -nltp | grep mgr  #prometues exporter启动的端口是9283
tcp        0      0 0.0.0.0:9283            0.0.0.0:*               LISTEN      1252/ceph-mgr
tcp        0      0 172.16.1.11:6810        0.0.0.0:*               LISTEN      1252/ceph-mgr
tcp        0      0 172.16.1.11:8443        0.0.0.0:*               LISTEN      1252/ceph-mgr
tcp        0      0 172.16.1.11:6811        0.0.0.0:*               LISTEN      1252/ceph-mgr

②、通过浏览器访问:http://172.16.1.11:9283

可以打开接口了!

点击Metrics查看获取到的数据

三、Prometheus配置

参考:https://www.cnblogs.com/fengjian2016/p/12666361.html#top 成功部署target

①、添加ceph-cluster的 prometheus-servicemonitor

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:name: ceph-clusternamespace: monitoringlabels:app: ceph-cluster
spec:jobLabel: ceph-clusterendpoints:- port: portinterval: 30sscheme: httpselector:matchLabels:app: ceph-clusternamespaceSelector:matchNames:- kube-system

②、kube-prometheus 添加 rocketmsq service和 endpoint ,把ceph集群服务导入到集群

apiVersion: v1
kind: Endpoints
metadata:name: ceph-clusternamespace: kube-systemlabels:app: ceph-cluster
subsets:
- addresses:- ip: 172.16.1.11ports:- name: portport: 9283protocol: TCP---
apiVersion: v1
kind: Service
metadata:name: ceph-clusternamespace: kube-systemlabels:app: ceph-cluster
spec:type: ClusterIPclusterIP: Noneports:- name: portport: 9283protocol: TCP

查看prometheus dashboard
新添加的targets已经出来了

四、granfa展示

①、导入 2842 模板


②、展示

五、告警规则

①、修改prometheus-rules.yaml文件

添加如下这段

[root@k8s01 manifests]# vim kube-prometheus/manifests/prometheus-rules.yaml- name: Ceph集群-监控告警rules:- alert: Ceph 集群状态异常expr: ceph_health_status > 0for: 3mlabels:status: 非常严重annotations:summary: "{{$labels.instance}}: Ceph集群状态异常"description: "{{$labels.instance}}:Ceph集群状态异常,当前状态为{{ $value }}"- alert: Ceph OSD Downexpr: ceph_osd_down > 0for: 3mlabels:status: 非常严重annotations:summary: "{{$labels.instance}}: 有{{ $value }}个OSD挂掉了"description: "{{$labels.instance}}:{{ $labels.osd }}当前状态为{{ $labels.status }}"- alert: ceph集群空间使用率过高expr: ceph_cluster_total_used_bytes / ceph_cluster_total_bytes * 100 > 80for: 3mlabels:status: 非常严重annotations:summary: "{{$labels.instance}}:集群空间不足"description: "{{$labels.instance}}:当前空间使用率为{{ $value }}"

②、登录prometheus 查看Alerts是否加载出来

测试告警
注:prometheus 钉钉告警因为之前已经搭建好,所以这里略过!
直接看告警。

K8S集群部署kube-Prometheus监控Ceph(版本octopus)集群、并实现告警。相关推荐

  1. MinIO集群怎么接入Prometheus监控?(上)

    前言 minio集群有暴露监控指标接口给Prometheus,可通过配置Prometheus访问MinIO集群的权限,将MinIO集群接入Prometheus监控,并通过MinIO官方发布的Grafa ...

  2. 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库

    使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库 原文:使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库 一.背 ...

  3. k8s部署Kube Prometheus(Prometheus Operator)

    摘要 本文通过Prometheus-operator框架一键化安装prometheus.alertmanage.granfana,并配置企业微信api以及告警推送,搭建 prometheus 的前提环 ...

  4. k8s集群部署之环境介绍与etcd数据库集群部署

    角色 IP 组件 配置 master-1 192.168.10.11 kube-apiserver kube-controller-manager kube-scheduler etcd 2c 2g ...

  5. 白话Elasticsearch63-生产集群部署之硬件配置、jvm以及集群规划建议

    文章目录 概述 内存 CPU 磁盘 网络 自建集群 vs 云部署 JVM 容量规划 概述 继续跟中华石杉老师学习ES,第63篇 课程地址: https://www.roncoo.com/view/55 ...

  6. Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署

    1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...

  7. Redis分布式集群部署安装及细节(多主机搭建集群开启多个服务)

    注意: redis的安装步骤与同机器下一致,这里只讲解个别不同配置的修改 每台主机都有固定的IP 10.25.84.105SZD-L0073672   此台机器部署了多个服务 10.25.84.106 ...

  8. ELK集群部署(八)之监控nginx日志

    监控nginx日志 103上安装nginx yum install -y nginx启动nginx systemctl start nginx访问 http://192.168.56.103/ 配置n ...

  9. k8s(一)、 1.9.0高可用集群本地离线部署记录

    一.部署说明 1.节点 master1: IP:192.168.0.170/24 hostname:171 master2: IP:192.168.0.171/24 hostname:172 VIP: ...

  10. [K8s 1.9实践]Kubeadm 1.9 HA 高可用 集群 本地离线镜像部署

    Kubeadm HA 1.9 高可用 集群 本地离线部署 k8s介绍 k8s 发展速度很快,目前很多大的公司容器集群都基于该项目,如京东,腾讯,滴滴,瓜子二手车,易宝支付,北森等等. kubernet ...

最新文章

  1. 删除 此电脑 文件夹
  2. audio type多种类型_http content-type常见文件格式类型
  3. python之路day14--列表生成式、生成器generator、生成器并行
  4. java创建线程的几种方式
  5. http://blog.sina.com.cn/s/blog_5bd6b4510101585x.html
  6. 如何在SAP C4C里使用ABSL消费第三方Restful API
  7. 微信支付api的服务器上,服务器微信支付接口笔记(与app端对接)
  8. 机器人走方格(51Nod-1119)
  9. 5.jenkins 自动部署
  10. python提取全部个股数据_Python 股票历史数据的获取
  11. RMSProp算法和AdaDelta算法
  12. 判断字符是数字字符还是大写字符或者是小写字符
  13. 利用 Python 实现简单的基于用户的商品推荐模型
  14. 五一入哪个牌子蓝牙耳机好?无线主动降噪蓝牙耳机排行榜
  15. 虚拟现实房产展示系统提前预见未来装修效果
  16. 《C语言程序设计》(谭浩强第五版) 第2章 算法——程序的灵魂
  17. 特长生模拟——09年东莞特长生考试
  18. IDEMIA人脸识别技术在NIST最近的FRVT测试中排名第一
  19. hihoCoder #1082 : 然而沼跃鱼早就看穿了一切
  20. 吉时利Keithley软件2600系列2635B|2636B|2651A|2657A NS-SourceMeter源表软件

热门文章

  1. 网络空间安全导论-第一章习题
  2. 北京公共自行车-北京市交通委员会运输管理局
  3. 面向对象(封装,this,static,代码块)
  4. Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......
  5. 【网络安全】域名生成算法(DGA)基础总结
  6. 涉及 GitHub、GitLab,研究人员发现 70 个 Web 缓存中毒漏洞;微软:许多攻击者仍对 Log4j 漏洞加以利用;VS 2022 新版发布 | 开源日报
  7. 谷歌浏览器乱码的问题
  8. Linux 内核 3.3 和 3.4 简介
  9. 20条技巧,让Chrome超越Firefox (2010-11-16更新)
  10. 微服务平台建设之微服务2.0技术选型思考