• grafana+prometheus+black_box 实现端口检测


    0.blackbox_exporte安装

    下载地址

    验证安装

    进入目录  执行 ./blackbox_exporter --version

    配置自启动脚本

    vim /usr/lib/systemd/system/blackbox_exporter.service

    1. [Unit]
    2. Description=blackbox_exporter
    3. After=network.target
    4. [Service]
    5. User=root
    6. Type=simple
    7. ExecStart=/mnt/data/ELK/black-box/blackbox_exporter/blackbox_exporter --config.file=/mnt/data/ELK/black-box/blackbox_exporter/blackbox.yml
    8. Restart=on-failure
    9. [Install]
    10. WantedBy=multi-user.target

    启动black_box

    1. systemctl enable blackbox_exporter.service
    2. systemctl start blackbox_exporter.service
    3. systemctl status blackbox_exporter.service

    1.prometheus配置

    vim /usr/local/prometheus/prometheus.yml

    1.1 主机存活状态

    1. - job_name: 'node_status'
    2. metrics_path: /probe
    3. params:
    4. module: [icmp]
    5. static_configs:
    6. - targets: ['192.168.13.42','192.168.13.28']
    7. labels:
    8. instance: 'node_status'
    9. group: 'node'
    10. relabel_configs:
    11. - source_labels: [__address__]
    12. target_label: __param_target
    13. - target_label: __address__
    14. replacement: '$1'

    1.2 监控主机端口存活状态

    1. - job_name: 'port_status'
    2. metrics_path: /probe
    3. params:
    4. module: [tcp_connect]
    5. static_configs:
    6. - targets: ['192.168.13.29:8844','192.168.13.32:8330']
    7. labels:
    8. instance: 'port_status'
    9. group: 'tcp'
    10. relabel_configs:
    11. - source_labels: [__address__]
    12. target_label: __param_target
    13. # - source_labels: [__param_target]
    14. # target_label: instance
    15. - target_label: __address__
    16. replacement: '$1'

    1.3  监控网站状态

    1. - job_name: web_status
    2. metrics_path: /probe
    3. params:
    4. module: [http_2xx]
    5. static_configs:
    6. - targets: ['https://www.baidu.com']
    7. labels:
    8. instance: web_status
    9. group: web
    10. relabel_configs:
    11. - source_labels: [__address__]
    12. target_label: __param_target
    13. - target_label: __address__
    14. replacement: 127.0.0.1:9115

    1.4 检查配置文件

    1. #进入安装目录
    2. ./promtool check config prometheus.yml
    3. #检查通过没有报错 可以刷新配置
    4. curl -X POST http://127.0.0.1:9090/-/reload
    5. #刷新配置的前提是 启动时 指定参数 --web.enable-lifecycle 配置告警需指定路径 --config.file=
    6. nohup /mnt/data/ELK/prometheus/prometheus --web.enable-lifecycle --config.file=/mnt/data/ELK/prometheus/prometheus.yml >/dev/null 2>&1 &
    7. #或使用systemctl

    1.5 完整配置示例

    1. global:
    2. scrape_interval: 15s
    3. evaluation_interval: 15s
    4. external_labels:
    5. monitor: 'codelab-monitor'
    6. scrape_configs:
    7. #监控主机
    8. - job_name: 'node_status'
    9. metrics_path: /probe
    10. params:
    11. module: [ icmp ]
    12. static_configs:
    13. - labels:
    14. group: 'node'
    15. instance: 'node_status'
    16. targets:
    17. - "192.168.13.42"
    18. - "192.168.13.28"
    19. relabel_configs:
    20. - source_labels: [ __address__ ]
    21. target_label: __param_target
    22. - source_labels: [ __param_target ]
    23. target_label: instance
    24. - target_label: __address__
    25. replacement: localhost:9115
    26. #监控端口 tcp
    27. - job_name: 'port_status'
    28. metrics_path: /probe
    29. params:
    30. module: [ tcp_connect ]
    31. static_configs:
    32. - labels:
    33. group: 'tcp'
    34. instance: 'gateway'
    35. targets:
    36. - "192.168.13.29:8844"
    37. - labels:
    38. group: 'tcp'
    39. instance: 'home-service'
    40. targets:
    41. - "192.168.13.32:8330"
    42. relabel_configs:
    43. - source_labels: [ __address__ ]
    44. target_label: __param_target
    45. - target_label: __address__
    46. replacement: localhost:9115
    47. #监控网站
    48. - job_name: 'web_status'
    49. metrics_path: /probe
    50. params:
    51. module: [ http_2xx ]
    52. static_configs:
    53. - labels:
    54. group: 'web'
    55. instance: 'web_status'
    56. targets:
    57. - "https://www.baidu.com"
    58. relabel_configs:
    59. - source_labels: [ __address__ ]
    60. target_label: __param_target
    61. - source_labels: [ __param_target ]
    62. target_label: instance
    63. - target_label: __address__
    64. replacement: localhost:9115
    65. #配置告警
    66. rule_files:
    67. - "/mnt/data/ELK/prometheus/my_rule.yml"

    1.6 告警规则配置

    1. groups:
    2. - name: blackbox_network_stats
    3. rules:
    4. - alert: 'url服务探测失败'
    5. expr: probe_success == 0
    6. for: 60s
    7. labels:
    8. severity: high
    9. alertinfo: push_blackbox_alert
    10. annotations:
    11. summary: "{{ $labels.instance }}探测失败"
    12. description: "url探测失败,请检查业务是否正常!!!"

    1.7 查看targets

    访问 http://127.0.0.1:9090/targets 查看加入的监控信息。
     

    2. 配置grafana

    2.1 安装饼图插件

    grafana-cli plugins install grafana-piechart-panel

    service grafana-server restart

    如果页面报错 方法找不到 可以尝试升级grafana版本为最新版

    2.2 导入blackbox_exporter模板

    数据源选择Prometheus

    模板号为9965,模板下载地址 1 Blackbox Exporter Dashboard 2022/04/12 | Grafana Labs

    配置成功后 如图所示

     以上

  • 相关阅读:
    第17章 触发器
    关于什么是AndroidX(二)
    注意力机制 -自注意力和位置编码
    matlab习题 —— 图像绘制练习
    SpringBoot 阶段测试 1
    【系统设计】设计一个限流组件
    MyBatis中${} 和 #{} 有什么区别?
    关于tensorboard无法打开
    2.1 CSS 简介特性
    OpenCV实战(30)——OpenCV与机器学习的碰撞
  • 原文地址:https://blog.csdn.net/codeLife1993/article/details/126852376