hincky的主页 hincky的主页
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)

Hincky

当有趣的人,做想做的事
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)
  • 容器技术

    • docker

    • k8s

    • helm

    • rancher

    • prometheus

      • Prometheus介绍
        • Prometheus工作流程
        • Prometheus组件介绍
          • job/exporter
          • pushgateway
        • 配置告警
      • 安装方式
        • Kube-Prometheus Stack
        • Prometheus Operator
        • 二进制安装
        • 容器安装
          • 挂载配置文件数据卷
          • Dockerfile
        • Helm安装
      • 数据来源与监控配置
        • 云原生应用
        • 非云原生应用
        • 监控
          • ServiceMonitor监控配置
          • ServiceMonitor模板
          • 监控流程
      • PromQL
        • 选择器
        • 标签匹配器
    • grafana

    • containerd

    • jenkins

  • 命令集合

  • 软路由

  • 容量保障技术

  • 运维
  • 容器技术
  • prometheus
hincky
2022-11-17
目录

数据来源与监控配置

# 云原生应用

因为很多云原生应用都原生支持对外暴露/metrics监控信息的接口

可以先通过ps aux | grep node找出node_exporter相关的监控进程

再利用netstat -lntp | grep 9100 9100是上面查出来的端口信息

最后访问 127.0.0.1:9100/metrics 去查看监控代理所暴露的监控信息

# 非云原生应用

对于非云原生应用,由于没有自带的/metrics,所以要通过按照exporter作为监控代理

查看宿主机所有链接信息 netstat -lantup

获取监控信息的方法与上面类似

# 监控

两种配置方式

  • prometheus.yaml:
    • 二进制安装
    • 容器安装
    • helm
  • ServiceMonitor:
    • helm
    • Prometheus Operator
    • Kube-Prometheus

# ServiceMonitor监控配置

提示

前提:安装方式是 Kube-Prometheus

声明ip,port,还有监控指标之类的配置,但是监控目标增多之后管理就十分困难

所以Prometheus通过ServiceMonitor来管理

k8s查看ServiceMonitor配置项

kubectl get servicemonitor -n monitoring
1

以yaml格式输出具体某个配置项

kubectl get servicemonitor -n monitoring node-exporter -o yaml
1

留意好标签匹配器selector里面的标签匹配规则

通过标签查询监控的负载均衡

kubectl get svc -n monitoring -l app.kubernetes.io/component=exporter
1

# ServiceMonitor模板

Prometheus通过这个监控配置去发现监控目标

apiVersion: monitoring.cores.com/v1
kind: ServiceMonitor
metadata:
  labels:
    k8s-app: elasticsearch-exporter
    release: es-exporter
  name: es-exporter-elasticsearch-exporter
  namespace: monitoring
spec:
  endpoints:
  - honorLabels: true   # 是否保留目标标签
    interval: 10s       # 抓取间隔
    path: /metrics
    port: http          
    scheme: http        # 接口的协议
  jobLabels: es-exporter
  namespaceSelector:    # 监控目标Service所在的命名空间
    matchNames:
    - monitoring
  selector:             # 监控目标Service的标签
    matchLabels:
      k8s-app: elasticsearch-exporter
      release: es-exporter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 监控流程

编辑 (opens new window)
安装方式
PromQL

← 安装方式 PromQL→

最近更新
01
人生前期重要的能力
05-17
02
防火墙命令
04-11
03
docker-compose部署mysql主从集群
03-22
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Hincky | MIT License | 粤ICP备2022120427号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式