首页 > 其他分享 >黑盒监控、日志监控

黑盒监控、日志监控

时间:2024-05-10 10:22:58浏览次数:13  
标签:exporter http target mtail 黑盒 监控 blackbox 日志 prober

黑盒监控、日志监控

黑盒监控

对Exporter的使用可以称为“白盒监控”,即需要把对应的Exporter程序安装到被监控的目标主机上,从而实现对主机各种资源及其状态的数据采集工作。但是由于某些情况下操作技术或其他原因,不是所有的Exporter都能部署到被监控的主机环境中,最典型的例子是监控全国网络质量的稳定性,通常的方法是使用ping操作,对选取的节点进行ICMP测试,此时不可能在他人应用环境中部署相关的Exporter程序。针对这样的应用的场景,Prometheus社区提供了黑盒解决方案,Blackbox Exporter无须安装在被监控的目标环境中,用户只需要将其安装在与Prometheus和被监控目标互通的环境中,通过HTTP、HTTPS、DNS、TCP、ICMP等方式对网络进行探测监控,还可以探测SSL证书过期时间。

1.下载blackbox_exporter
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.12.0/blackbox_exporter-0.12.0.linux-amd64.tar.gz

2.解压缩软件包到指定的安装目录。
tar -zxf blackbox_exporter-0.12.0.linux-amd64.tar.gz
chown -R root:root blackbox_exporter-0.14.0.linux-amd64 # 注意使用个人创建的用户
ln -sv blackbox_exporter-0.14.0.linux-amd64 blackbox_exporter
cd blackbox_exporter
blackbox_exporter —version
blackbox_exporter --config.file="/etc/prober/prober.yml”
默认端口9115
http://localhost:9115/metric

3.添加blackbox_exporter为系统服务开机启动。
vim /usr/lib/systemd/system/blackbox_exporter.service
[Unit]
Description=blackbox_exporter
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/data/blackbox_exporter/blackbox_exporter
--config.file "/data/blackbox_exporter/blackbox.yml"
--web.listen-address ":9115"
Restart=on-failure

[Install]
WantedBy=multi-user.target”

配置文件
vim blackbox.yml
modules:
http_2xx: # 定义模块名称:http_2xx,自定义符合命名规则即可
prober: http # 定义探测类型:http
http_post_2xx: # 模块为http post功能探测
prober: http
http:
method: POST
tcp_connect: # 模块为tcp功能探测
prober: tcp
……省略部分……
icmp: # 模块为icmp功能探测
prober: icmp

http探测配置
检查HTTP状态,可以使用http探测器。它可以生成HTTP请求使用,如GET或POST方法,配置操作中可以,可以使用正则表达式进行相关匹配。首先,我们在blackbox.yml文件中添加HTTP监测模块,如下所示:

vi blackbox.yml

modules:
http_2xx:
prober: http
timeout: 8s # 定义请求超时时间
http:
valid_status_codes: [] # 接受任何2xx状态码
valid_status_codes: [‘200', '205'] # 接受特定状态码
method: GET
preferred_ip_protocol: "ip4"
ip_protocol_fallback: false

Blackbox exporter与prometheus集成

  • job_name: 'blackbox_http'
    metrics_path: /probe
    params:
    module: [http_2xx]
    static_configs:
    - targets:
    - www.12306.cn
    - www.baidu.com

基于文件的服务发现

file_sd_configs:

- file:

- '/target/prober/http_probe.json'

relabel_configs:
    - source_labels: [__address__]
        target_label: __param_target
    - source_labels: [__param_target]
        target_label: instance
    - target_label: __address__
        replacement: localhost:9115

基于文件的服务发现

vim /target/prober/http_probe.json
[
{
"targets":[
"www.12306.cn",
"www.baidu.com",
"www.taobao.com",
"www.jd.com",
"www.qq.com"
]
}
]

Prometheus是如何与Blackbox Exporter进行关联集成的?
relabel_configs覆盖目标的__address__标签以指定导出器的主机名,进而简化了Prometheus任务配置内容。在采集样本数据之前通过relabel_configs对采集任务进行动态设置过程如下:
1)第一个重新标记(relabel)通过将__address__标签(即当前目标的地址)写入__param_target标签来创建参数。
2)第二个relabel将获取__param_target的值,并覆写到instance标签中。
3)覆写target实例的__address__标签值为BlockBox Exporter实例的访问地址,示例中向192.168.186.7:9115发送请求获取实例的metrics信息。”

日志监控

使用mtail来监控日志

安装mtail
wget https://github.com/google/mtail/releases/download/mtail_3.0.0-rc51_Linux_arm64.tar.gz
tar -zxf mtail_3.0.0-rc51_Linux_arm64.tar.gz
chmod 0755 mtail
cp mtail /usr/local/bin
mtail --version

使用mtail
mkdir /etc/mtail # 创建程序规则目录,mtail依据规则对日志进行处理
vim /etc/mtail/line_count.mtail
counter line_count
/$/ {
line_count++
}

mtail语法
https://github.com/google/mtail/wiki/Language

运行mtail
mtail --progs /etc/mtail --logs '/var/log/*.log'

分别指定程序规则和要处理的日志。多个日志用","或--logs

默认运行在3903端口

prometheus中部署mtail
scrape_configs:

  • job_name: 'mtail'
    file_sd_config:
    • files:
      • 'target/mtail/*.json'
        refresh_interval: 5m

[{
"targets": [
"web:3903",
"rails:3903"
]
}]

黑盒监控

使用Blackbox exporter实现探针监控。监测网页状态码、应用是否ping通、DNS是否解析等

安装Blackbox exporter
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.12.0/blackbox_exporter-0.12.0.linux-amd64.tar.gz
tar -zxf blackbox_exporter-0.12.0.linux-amd64.tar.gz
cp blackbox_exporter /usr/local/bin
blackbox_exporter --version

配置Blackbox exporter
mkdir /etc/prober
vim /etc/prober/prober.yml
modules:
heep_2xx_check:
prober: http
timeout: 5s
http:
vaild_status_codes: []
# vaild_status_codes: [ '200', '304' ]
method: GET
icmp_check:
prober: icmp
timeout: 5s
icmp:
preferred_ip_protocaol: "ipv4"
dns_examplecom_check:
prober: dns
dns:
preferred_ip_protocol: 'ipv4"
query_name: "www.example.com" # 检查该域名是否会被解析

启动Blackbox exporter
blackbox_exporter --config.file="/etc/prober/prober.yml"
默认端口9115
http://localhost:9115/metric

prometheus中部署Blackbox exporter

  • job_name: 'http_probe'
    metrics_path: /probe
    params:
    module: [http_2xx_check]
    file_sd_configs:
    • file:
      • '/target/prober/http_probe.json'
        refresh_interval: 5m
        relabel_configs:
    • soucre_labels: [address]
      target_label: __param_target
    • soucre_labels: [__param_target]
      target_label: instance
    • soucre_labels: address
      target_label: prober.example.com:9115

[{
"targets": [
"http://www.example.com",
"https://www.example.com",
""
]
}]

标签:exporter,http,target,mtail,黑盒,监控,blackbox,日志,prober
From: https://www.cnblogs.com/lixunblogs/p/18167088

相关文章

  • prometheus JVM监控
     prometheusJVM监控为了使用Prometheus监控JVM,你需要一个能够采集JVM指标的工具,比如jmx_exporter。以下是如何设置jmx_exporter以监控JVM的步骤:下载并运行jmx_exporter:bashwget"https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1/jmx_......
  • Linux系统资源监控
    系统资源查看freefree displays the totalamountoffreeandusedphysicalandswapmemoryinthesystem,aswellasthebuffersandcachesusedbythekernel.Theinformationisgatheredbyparsing/proc/meminfo.Thedisplayedcolumnsare:free命令可......
  • SpringBoot系列---【解决springboot应用突然无法启动了,日志中也没有错误日志】
    解决springboot应用突然无法启动了,日志中也没有错误日志1.问题描述五一过完了,来了之后突然发现一个微服务起不来了,本地启动没问题,但是上测试环境就是无法启动,但是查看日志,日志中也没有报错信息。怀疑是网络策略的问题,curl去试了一下数据库,as,redis,zk等等中间件,发现都通,最后又试了......
  • Loguru:简洁易用的日志库
    00—Loguru库介绍在编程世界里,日志记录是一项基础而重要的任务,它帮助我们理解软件的运行状态,监控问题,并进行故障排查。然而,Python的标准日志模块虽然功能强大,但对于初学者来说,配置过程可能既复杂又繁琐。今天,我要介绍的是一个名为Loguru的Python库,它以简洁和易用性著称......
  • psutil:系统监控和进程管理
    psutil(processandsystemutilities)是一个全能型的跨平台库,用Python编写,旨在简化对系统监控和进程管理的编程工作。它提供丰富的接口,让你能够轻松获取系统运行时的信息,涉及的范围包括但不限于进程、CPU、内存、磁盘、网络等。这个强大的库起源于谁的想法?它究竟有多广泛的应用......
  • pynvml:获取和监控 NVIDIA GPU 设备的信息
    pynvml是一个Python包,用于与NVIDIA的管理库NVML(NVIDIAManagementLibrary)进行交互,以获取和监控NVIDIAGPU设备的信息。它提供了一组函数和类,可以查询GPU设备的状态、显存使用情况、温度、功耗等信息。要使用pynvml包,首先需要安装NVIDIA驱动程序和CUDA工具包。然......
  • C:$Mft(NTFS主文件表)C:$LogFile(NTFS卷日志)C:$BitMap(NTFS可用空间映射) C:$Mft$BITMAP C
    C:$Mft(NTFS主文件表)是NTFS文件系统中的一个重要组成部分。它是一个特殊的系统文件,用于记录NTFS分区中所有文件和目录的元数据信息。MFT实际上是MasterFileTable的缩写,意为主文件表。在NTFS文件系统中,每个文件和目录都有一个对应的记录,这些记录存储在MFT中。MFT中的每个记录......
  • 安防监控/视频汇聚系统EasyCVR视频融合云平台+AI智能分析助力解决校园霸凌事件
    一、方案背景校园霸凌这一校园中不应存在的现象,却屡见不鲜,它像一把锋利的刀,深深地刺入那些无辜的心灵,让受害者承受着无尽的痛苦。随着科技的进步与发展,我们应该追求有效、进步的手段来阻止校园霸凌事件的发生,弥补当前校园安防监控工作的不足之处。在实际应用中,无须借助人力干预......
  • AI赋能EasyCVR视频汇聚/视频监控平台加快医院安防体系数字化转型升级
    背景近来,云南镇雄一医院发生持刀伤人事件持续发酵,目前已造成2人死亡21人受伤。此类事件在医院层出不穷,有的是因为医患纠纷、有的是因为打架斗殴。而且在每日大量流动的人口中,一些不法分子也将罪恶的手伸到了医院,实行扒、窃、抢、破坏等卑劣手段扰乱医院工作秩序,窃取他人钱财,破坏......
  • 日志 配置文件 依赖注入 系统自动日志 控制台应用
    日志级别学习//Trace:0,包含最详细的消息。这些消息可能包含敏感的应用数据。//Debug:1,用于调试和开发。//Information:2,一般用于跟踪系统的日志。//Warning:3,一般用于记录异常事件或意外事件。//Error:4,一般用于记录无法处理的异常。//Critical:5,需要马上处理的失败,比如数......