• Ops实践 | 云原生Prometheus监控之企业网站指标采集预警及可视化大盘展示


    f0b0ec22fb8f5dde3a8d8a4fc5c7afbe.jpeg

    b418381e4d9ff023a7766f0dd0540437.gif

    微信改版了,现在看到我们全凭缘分,为了不错过【全栈工程师修炼指南】重要内容及福利,大家记得按照上方步骤设置「接收文章推送」哦~

    关注回复【学习交流群】加入【SecDevOps】学习交流群!



    前言简述:

    从本章开始,作者将主要针对企业中主机系统(Linux、Windows)、K8S集群节点与Pod、网站服务(http、dns)、数据库、网络安全设备进行指标采集与监控预警进行实践记录,我将从基础环境安装,到目标对象的监控,以及目标监控指标的可视化展示和目标预警规则的设置几方面入手。

    让看友可以更随着我快速的进行实践操作,为数字企业转型舔砖加瓦,全面迎接云原生环境下的企业内部监控预警和展示,至此也希望大家多多支持此《#云原生落地实用指南》专栏,作者将会持续更新云原生下Prometheus的监控和等保下企业内部日志收集实践,我相信你看了此系列专栏必定会有所收获。

    此篇文章,将开始主要讲解云原生环境下,如何使用Prometheus监控之blackbox_exporter导出器,来采集企业内部或者外部的业务系统站点以及网站证书过期时间,然后编写预警规则,并使用Altermanager进行告警通知,废话不多说,实践出真知。,废话不多说,实践出真知。

    实践效果:

    图1.blackbox 导出器采集监控目标

    47219a6dff14f10f6923557e5b221180.png图2. . blackbox  导出器采集指标可视化展示 0b0ce80171c0366755db31b92203ada7.png
    图3 . blackbox  导出器采集指标告警规则

    7a9f8d333106b12aba094462571e6491.png

    图4.使用Altermanager针对采集指标进行告警

    2b4633176f6152b81bd0ef3887763116.png

    文章目录

    d8972efeac280f281749fedbfcf11ee5.png


    blackbox_exporter - 黑盒导出器

    描述: blackbox 导出器允许通过HTTP/HTTPS(网站可用性)、DNS(域名解析)、TCP(端口存活)、ICMP(主机存活检测)和gRPC对端点进行黑盒探测。

    项目地址: https://github.com/prometheus/blackbox_exporter

    温馨提示:blackbox_exporter 通常有两种安装方式,方式一是通过系统的systemd进行管理使用(文章末尾附上安装脚本),方式二是通过容器进行安装使用。

    由于此处我们主要是在云原生的K8S环境中,所以此处作者选用后者进行演示,注意此处是在上一篇文章《Ops实践 | 从零开始,搭建云原生环境下企业监控预警可视化平台》基础之上进行的,所以请还没有配置相关环境的童鞋再参考一下。

    目标对象监控

    操作步骤:

    • Step 1.安装前置准备工作。

    1. # 创建相关配置目录
    2. mkdir -vp /storage/app/monitoring/blackbox_exporter
    3. mkdir -vp /storage/app/monitoring/prometheus/exporter
    4. # 拉取
    5. docker pull quay.io/prometheus/blackbox-exporter:latest
    6. docker tag quay.io/prometheus/blackbox-exporter:latest harbor.cloud/weiyigeek/blackbox-exporter:20231108
    7. # 上传
    8. docker push harbor.cloud/weiyigeek/blackbox-exporter:20231108
    • Step 2.创建 blackbox_exporter 相关模块配置文件, 可以使用icmp、tcp、grpc、dns、http/https(get|post)以及http_oauth_client_credentials 等相关操作。

    1. tee /storage/app/monitoring/blackbox_exporter/blackbox.yaml <<'EOF'
    2. modules:
    3.   icmp:
    4.     prober: icmp
    5.     timeout: 5s
    6.     icmp:
    7.       preferred_ip_protocol: "ip4"
    8.   tcp:
    9.     prober: tcp
    10.     timeout: 5s
    11.   tcp_tls:
    12.     prober: tcp
    13.     timeout: 5s
    14.     tcp:
    15.       tls: true
    16.   grpc:
    17.     prober: grpc
    18.     grpc:
    19.       tls: true
    20.       preferred_ip_protocol: "ip4"
    21.   dns:
    22.     prober: dns
    23.     timeout: 5s
    24.     dns:
    25.       query_name: "www.weiyigeek.top"
    26.       query_type: "A"
    27.       valid_rcodes:
    28.         - NOERROR
    29.   http_get:
    30.     prober: http
    31.     timeout: 5s
    32.     http:
    33.       valid_http_versions: ["HTTP/1.1""HTTP/2.0"]
    34.       valid_status_codes: [200]
    35.       method: GET
    36.       headers:
    37.         User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0"
    38.       tls_config:
    39.         insecure_skip_verify: false
    40.       preferred_ip_protocol: "ip4"   # Defaults to "ip6"
    41.   http_post:
    42.     prober: http
    43.     timeout: 5s
    44.     http:
    45.       valid_http_versions: ["HTTP/1.1""HTTP/2.0"]
    46.       valid_status_codes: [200]
    47.       method: POST
    48.       headers:
    49.         User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0"
    50.         Content-Type: application/json
    51.       body: '{}'
    52.       fail_if_not_ssl: false
    53.       tls_config:
    54.         insecure_skip_verify: false
    55.       preferred_ip_protocol: "ip4"   # defaults to "ip6"
    56.       ip_protocol_fallback: false    # no fallback to "ip6"
    57.   http_basic_auth:
    58.     prober: http
    59.     timeout: 5s
    60.     http:
    61.       method: POST
    62.       headers:
    63.         Host: "login.weiyigeek.top"
    64.       basic_auth:
    65.         username: "username"
    66.         password: "mysecret"
    67.   http_oauth_client_credentials:
    68.     prober: http
    69.     timeout: 5s
    70.     http:
    71.       valid_http_versions: ["HTTP/1.1""HTTP/2"]
    72.       follow_redirects: true
    73.       preferred_ip_protocol: "ip4"
    74.       valid_status_codes:
    75.         - 200
    76.         - 201
    77.       oauth2:
    78.         client_id: "client_id"
    79.         client_secret: "client_secret"
    80.         token_url: "https://api.weiyigeek.top/token"
    81.         endpoint_params:
    82.           grant_type: "client_credentials"
    83. EOF
    • Step 3.创建部署blackbox的deployment资源清单文件

  • 相关阅读:
    mac如何创建mysql数据库
    Prometheus 监测 RocketMQ 最佳实践
    App自动化测试_Python+Appium使用手册
    【ubuntu】搭建lamp架构
    深度学习21天——卷积神经网络(CNN):实现mnist手写数字识别(第1天)
    layui表格删除最后一页数据时,不会刷新到前一页问题:
    Swift服务的基本使用
    【算法】排序——归并排序和计数排序
    基于springboot实现体育场馆运营平台项目【项目源码】
    【仿真】carsim、prescan、simulink联合仿真教程、笔记、操作
  • 原文地址:https://blog.csdn.net/u013072756/article/details/134454023