监控Openshift内部的postgres

哈布的居民好日子!

今天,我想告诉您,我们真正想要如何监控Opengre集群中的postgres和几个实体,以及我们是如何做到的。

在入口处,他们有:

  • 开班
  • 头盔
  • 普罗米修斯


要使用Java应用程序,所有内容都非常简单和透明,更准确地说,是:

1)添加到build.gradle

implementation "io.micrometer:micrometer-registry-prometheus" 

2)使用配置启动Prometheus

  - job_name: 'job-name' metrics_path: '/actuator/prometheus' scrape_interval: 5s kubernetes_sd_configs: - role: pod namespaces: names: - 'name' 

3)在Grafana中添加显示

在监视名称空间中靠近我们的基地之前,一切都非常简单和平淡无奇(是的,这很糟糕,没有人这样做,但是发生的方式有所不同)。

如何运作?


除了postgres和Prometheus本身的炉膛外,我们还需要另一个实体-出口商。

抽象导出器是一种从应用程序甚至服务器收集指标的代理。 对于postgres,导出器是用Go编写的,它基于在sql内部运行脚本的原理工作,然后prometheus获取结果。 它还允许您通过添加自己的指标来扩展收集的指标。

我们像这样部署它(deployment.yaml示例,不绑定任何东西):

 --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres-exporter labels: app: {{ .Values.name }} monitoring: prometheus spec: serviceName: {{ .Values.name }} replicas: 1 revisionHistoryLimit: 5 template: metadata: labels: app: postgres-exporter monitoring: prometheus spec: containers: - env: - name: DATA_SOURCE_URI value: postgresdb:5432/pstgr?sslmode=disable - name: DATA_SOURCE_USER value: postgres - name: DATA_SOURCE_PASS value: postgres resources: limits: cpu: 100m memory: 50Mi requests: cpu: 100m memory: 50Mi livenessProbe: tcpSocket: port: metrics initialDelaySeconds: 30 periodSeconds: 30 readinessProbe: tcpSocket: port: metrics initialDelaySeconds: 10 periodSeconds: 30 image: exporter name: postgres-exporter ports: - containerPort: 9187 name: metrics 

他还需要服务和图像流。

部署后,我们真的希望每个人都能看到对方。

将以下内容添加到prometheus配置中:

  - job_name: 'postgres_exporter' metrics_path: '/metrics' scrape_interval: 5s dns_sd_configs: - names: - 'postgres-exporter' type: 'A' port: 9187 

然后所有这些都起作用了,剩下的就是将所有这些优点添加到石墨烯上并享受结果。

除了添加自己的查询的功能外,您还可以在Prometheus中更改设置,收集更具针对性的必要指标。

采取了类似的方法:

  • 卡夫卡
  • 弹性搜索
  • 蒙哥

PS有关名称,端口和其余部分的所有数据均取自天花板,不包含任何信息。

有用的链接:
各种出口商清单

Source: https://habr.com/ru/post/zh-CN467915/


All Articles