Prometheus端口监控配置

2025-01-02 13:58:07 137

欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。

 

为了及时发现服务器上的自定义服务是否因故障停止运行,我们可以使用 Prometheus 和 Blackbox Exporter 来实现端口监控和故障告警。这可以帮助我们主动发现服务的状态,而不必等待出现问题后才进行排查。

 

1. 部署 Prometheus

首先,你需要部署 Prometheus 服务,作为监控的核心。如果 Prometheus 已经安装并且运行正常,可以跳过这一步。如果尚未安装,可以参考 Prometheus 官方文档 完成安装。

 

2. 安装 Blackbox Exporter

Blackbox Exporter 是 Prometheus 提供的用于黑盒监控的工具,可以检测 HTTP、TCP 端口等服务的可用性。它能够快速发现服务是否已经停止。

Kubernetes 上安装 Blackbox Exporter

添加 Prometheus Chart 仓库并更新:

helm repo add prometheus-community https://www.landui.com/helm-charts

helm repo update

 

安装 Blackbox Exporter:

helm install prometheus-blackbox-exporter prometheus-community/prometheus-blackbox-exporter -n monitoring

 

卸载 Blackbox Exporter:

helm uninstall prometheus-blackbox-exporter -n monitoring

 

3. 配置 Prometheus 使用 Blackbox Exporter

安装完成后,需要在 Prometheus 的配置文件中添加一个 job,用来监控特定的端口。编辑 prometheus-server.yaml 配置文件,添加如下内容:

- job_name: 'port_status'  # 自定义任务名称

  metrics_path: /probe

  params:

    module: [tcp_connect]  # 选择 TCP 端口监控模块

  static_configs:

    - targets:

      - 10.1.2.10:6379    # 需要监控的服务器及端口

      - 10.1.2.2:10620

      - 10.1.2.3:10620

      - 10.1.2.4:10620

      - 10.1.2.7:16000

      - 10.1.2.8:16000

      - 10.1.2.11:8123

      labels:

        instance: port_status

        group: port

  relabel_configs:

    - source_labels: [__address__]

      target_label: __param_target

    - source_labels: [__param_target]

      target_label: ip

    - target_label: __address__

      replacement: prometheus-blackbox-exporter:9115  # Blackbox Exporter 的地址

 

4. 配置告警规则

为了在端口无法连接时及时发现问题,我们可以设置 Prometheus 告警规则。编辑 Prometheus 的告警配置文件,添加以下规则:

groups:                       # 定义告警规则组- name: portStatus            ## 组名

  rules:                      # 定义告警规则

  - alert: probe_success      # 规则名称

    expr: probe_success == 0  # 告警表达式

    for: 1m                   # 持续时间,1分钟内不恢复则触发告警

    labels:                   # 定义告警标签

      severity: critical      # 告警等级

    annotations:              # 告警内容,可以自定义

      summary: "{{ $labels.appname }}"

      description: "{{ $labels.env }} {{ $labels.hostname }} 服务 {{ $labels.appname }} 端口无法联通, 请尽快检测"

      value: "{{ $value }}"

 

5. Grafana 可视化监控

如果你需要在 Grafana 中可视化监控结果,可以导入 Prometheus 的相关 Dashboard 模板。Grafana 提供了一个非常实用的模板 ID 9965,可以用来展示端口监控的状态。

导入模板 ID 9965 后,你就可以在 Grafana 中查看各个端口的监控状态,了解服务的运行情况。

 

蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。

更多技术知识,蓝队云期待与你一起探索。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: