Elastic Stack梳理: MetricBeat 指标采集机制、模块化设计与全链路监控实战

MetricBeat安装使用 监控的服务在哪个机器上则在哪个机器上部署。在kiana的 主机 模块查看。 阅读详情

MetricBeat 核心功能与日志/指标对比


MetricBeat 是 Elastic Stack 的轻量级指标采集器,定期收集操作系统、软件或服务的指标数据(Metrics)指标数据存储于 Elasticsearch 实现实时分析

指标(Metric)与日志(Log)的本质区别:

1 ) 日志(Logs):

  • 记录离散的随机事件(如应用程序调试信息、错误报告或 Web Server 请求记录)。其特点是无规律性,仅在事件发生时捕获瞬时状态
  • 示例:Web Server 日志包含 IP、时间戳、请求路径、返回状态码(如 192.168.1.1 [10/May/2023:14:23:45] "GET /index.html HTTP/1.1" 200 1024)

2 ) 指标(Metrics):

  • Metrics 为可聚合的度量数据,采集具有计划性(如每分钟采集CPU负载)。数据通常为数值型,辅以少量文本描述,记录可聚合的数值型数据,且采集行为具有强计划性。例如:
    • 每 1 分钟收集一次 Web Server 的响应时长
    • 每 1 分钟收集主机的 CPU 负载(如 CPU Load: 1.2, 1.5, 2.0 @ 10:00, 10:10, 10:20)
  • 关键差异:日志时间戳无规律,而指标采集间隔严格固定(如每 10 分钟)
  • 示例
    // CPU 负载指标示例
    {
      "timestamp": "2023-10-10T14:35:00Z",
      "cpu.load.1m": 0.75,
      "cpu.load.5m": 0.68
    }
    

关键差异:Logs时间戳无规律,Metrics采集间隔固定(如每10分钟一次)

MetricBeat 架构:Module 与 Metricset 设计


Module 封装监控对象(如操作系统、数据库),Metricset 定义指标集合,划分依据为减少采集调用次数。以 Redis Module 为例:

  • redis/info Metricset:通过单次 INFO 命令获取全部数据
  • redis/keyspace Metricset:独立采集键空间数据,支持自定义采集频率(如1秒/次)
MetricBeat 配置示例
metricbeat.modules:
  - module: redis
    metricsets: ["info", "keyspace"]
    period: 60s      # info 采集间隔 
    hosts: ["localhost:6379"]
    keyspace.period: 1s  # keyspace 独立间隔

事件数据结构:

{
  "@timestamp": "2023-05-10T08:00:00Z",
  "beat": {"name": "server01"},
  "metricset": {
    "name": "redis.info",
    "rtt": 150 
  },
  "redis": {
    "info": {
      "clients": 12,
      "cpu": {"user": 45.2, "sys": 3.1}
    }
  }
}

模块化生态与配置实战

内置 Module 覆盖场景:

ModuleMetricset 示例监控对象
systemcpu, diskio, memory操作系统
redisinfo, keyspaceRedis 数据库
dockercontainer, cpu, diskioDocker 容器
elasticsearchnode_stats, indexES 集群
kafkaconsumer, partitionKafka 消息队列

配置流程:

  1. 下载对应操作系统的 MetricBeat 安装包
  2. 编辑 metricbeat.yml 启用模块:
output.elasticsearch:
  hosts: ["http://localhost:9200"]
 
metricbeat.modules:
  - module: system
    metricsets: ["cpu", "memory", "network"]
    period: 10s
    processes: [".*"]  # 监控所有进程
 
  - module: redis
    metricsets: ["info"]
    period: 30s
    hosts: ["redis-host:6379"]
  1. 启用模块(需 root 权限):
./metricbeat modules enable system redis  # 启用模块
./metricbeat modules list                 # 验证启用状态
chown root metricbeat.yml                 # 解决权限错误

Metricbeat 通过两级结构组织监控任务:


1 ) Module(模块):预封装的监控对象模板,开箱即用

  • 示例:
  • system:监控操作系统(CPU、内存、磁盘)
  • redis:监控 Redis 服务
  • mysql/zookeeper/docker:监控数据库、中间件及容器

2 ) Metricset(指标集):Module 中的子单元,代表一组关联指标的集合,划分依据是最小化数据采集请求次数。

  • 以 redis Module 为例:

  • info Metricset:通过单条 INFO 命令获取 Redis 全局状态

  • keyspace Metricset:单独监控数据库键空间统计

  • Metricset 独立存在的必要性:

    • 支持为不同指标集设置独立采集频率(如 info 每分钟采集,keyspace 每秒采集)
    • 避免高频采集干扰低频任务,优化资源消耗

3 ) Metricbeat 数据流与存储结构

采集的数据以 Event 形式发送至 Elasticsearch,其通用结构如下:

{
  "@timestamp": "2023-05-10T10:00:00Z", // 采集时间戳
  "beat": {
    "name": "monitor-host-01",          // 采集主机标识 
    "version": "8.10.0"
  },
  "metricset": {
    "name": "redis_info",               // 指标集名称
    "module": "redis",                  // 所属模块 
    "rtt": 150                          // 请求往返耗时(微秒)
  },
  "event": {                            // 实际指标数据 
    "dataset": "redis.info",
    "cpu": {
      "used": 1200,
      "sys": 350,
      "user": 850
    }
  }
}
  • 注:event.cpu 字段与 Redis INFO 命令的输出直接对应(如 used_cpu_sys: 350)

4 )配置实战:System 模块监控操作系统

Metricbeat 配置核心位于 metricbeat.yml 的 modules 节段:

metricbeat.modules:
  - module: system                   # 启用 system 模块
    metricsets:                      # 指定指标集
      - cpu
      - load
      - network
    period: 10s                      # 基础采集频率
    processes: [".*"]                # 监控所有进程
 
    # 为特定 Metricset 设置独立频率
    - module: system
      metricsets: ["filesystem"]
      period: 1m                     # 每分钟采集文件系统
 
    - module: system
      metricsets: ["uptime"]
      period: 15m                    # 每 15 分钟采集运行时长

权限与部署要点:

  • Root 权限需求:system 模块需 root 权限访问系统指标
  • 配置文件所有权:必须由运行用户持有,否则报错 config file must be owned by the beat user
    chown metricbeat_user:metricbeat_group /etc/metricbeat/metricbeat.yml
    

5 )Kibana 数据可视化与诊断

数据入库后,通过 Kibana 进行聚合分析:

  1. 索引模板自动加载:
    ./metricbeat setup --template  # 导入预定义字段映射 
    
  2. Discover 界面诊断:
    • 按 metricset.name 过滤(如 system.network)
    • 关键字段:host.name(主机名)、system.network.in.bytes(入站流量)
  3. Dashboard 示例:
    • CPU 负载趋势:聚合多主机 system.cpu.user.pct
    • 内存消耗 Top 进程:按 system.process.memory.rss.bytes 排序

MetricBeat 数据流架构


1 ) 数据结构标准化
采集的 Event 数据遵循统一格式:

{
  "@timestamp": "2023-10-10T14:35:00Z", 
  "beat": {
    "name": "server-01",
    "version": "8.9.0"
  },
  "metricset": {
    "name": "cpu",
    "module": "system",
    "rtt": 153  // 采集耗时(微秒)
  },
  "system": {
    "cpu": {
      "user": 45.2,
      "system": 12.1 
    }
  }
}

2 ) 配置核心要素
metricbeat.yml 关键配置项:

output.elasticsearch:
  hosts: ["http://localhost:9200"] 
 
metricbeat.modules:
  - module: system
    metricsets: ["cpu", "memory", "network"]
    period: 10s
    processes: [".*"]  # 监控所有进程
 
  - module: redis
    metricsets: ["info"]
    hosts: ["redis://localhost:6379"]

数据可视化与 Kibana 集成


MetricBeat 自动推送索引模板至 Elasticsearch:

./metricbeat setup --index-management  # 手动初始化模板

Kibana 数据分析操作:

  1. 进入 Discover 视图,索引模式选择 metricbeat-*
  2. 筛选字段:
    • metricset.name: system.cpu → CPU 使用率趋势
    • system.network.name: eth0 → 网卡流量统计
  3. 关键指标可视化:
    • CPU Load:折线图展示 user/sys 占比
    • Memory Usage:堆叠面积图显示 used/cached
    • Disk IO:柱状图对比读写吞吐量

注:开箱即用仪表盘需导入 metricbeat 预置模板

System 模块监控操作系统


1 ) 权限与配置文件处理

MetricBeat 需 root 权限采集系统指标,必须修正配置归属权:

修改配置文件所有者 
chown root:root metricbeat.yml
chmod 600 metricbeat.yml
 
启动服务(需root)
./metricbeat -e 

2 ) Kibana 数据验证流程

  1. 导入预置仪表盘

    ./metricbeat setup --dashboards 
    
  2. Kibana Discover 过滤数据

    metricset.name: network  # 查看网卡流量 
    host.name: "web-server-01" 
    
  3. 核心监控字段

    字段路径含义
    system.cpu.user.pct用户空间CPU使用率
    system.memory.used.pct内存使用率
    system.network.in.bytes网卡入流量

工程示例:1


1 ) 方案 1:基础数据写入服务

// src/elastic/elastic.service.ts
import { Injectable } from '@nestjs/common';
import { Client } from '@elastic/elasticsearch';
 
@Injectable()
export class ElasticService {
  private readonly client: Client;
 
  constructor() {
    this.client = new Client({ 
      node: 'http://localhost:9200',
      auth: { username: 'elastic', password: 'changeme' } 
    });
  }
 
  async indexMetricData(index: string, body: any) {
    return this.client.index({
      index,
      body,
      refresh: true // 实时可见性 
    });
  }
}
 
// src/metrics/metrics.controller.ts
import { Controller, Post } from '@nestjs/common';
import { ElasticService } from '../elastic/elastic.service';
 
@Controller('metrics')
export class MetricsController {
  constructor(private readonly elasticService: ElasticService) {}
 
  @Post('system')
  async receiveSystemMetrics() {
    const metricData = {
      timestamp: new Date().toISOString(),
      cpu_load: 1.8,
      memory_used: 75.2
    };
    await this.elasticService.indexMetricData('system-metrics', metricData);
    return { status: 'Metric stored' };
  }
}

2 ) 方案 2:安全增强与性能优化

Elasticsearch 配置:

elasticsearch.yml 
xpack.security.enabled: true 
cluster.name: prod-monitoring
thread_pool.write.queue_size: 1000  # 高吞吐场景

NestJS 连接池管理:

// 扩展 ElasticService
import { ConnectionPool } from '@elastic/elasticsearch';
 
async bulkIndex(metrics: any[]) {
  const body = metrics.flatMap(metric => [
    { index: { _index: 'system-metrics' } },
    metric
  ]);
  
  return this.client.bulk({
    body,
    filter_path: 'items.*.error'  // 仅返回错误信息
  });
}

3 ) 方案 3:生产环境高可用架构
组件拓扑:

MetricBeat Agents → Kafka → NestJS Ingestion Service → Elasticsearch Cluster 
                         ↘ Dead Letter Queue (RabbitMQ)

NestJS 消费者服务:

// src/kafka/kafka.consumer.ts
import { Kafka, Consumer } from 'kafkajs';
 
@Injectable()
export class KafkaConsumer {
  private consumer: Consumer;
 
  constructor(private elasticService: ElasticService) {
    const kafka = new Kafka({ brokers: ['kafka1:9092'] });
    this.consumer = kafka.consumer({ groupId: 'metric-group' });
  }
 
  async start() {
    await this.consumer.connect();
    await this.consumer.subscribe({ topic: 'metricbeat-data' });
    this.consumer.run({
      eachMessage: async ({ message }) => {
        try {
          const metric = JSON.parse(message.value.toString());
          await this.elasticService.indexMetricData(metric);
        } catch (error) {
          // 投递至死信队列
          this.sendToDLQ(message); 
        }
      }
    });
  }
}

关键配置参数:

组件配置项推荐值作用
Elasticsearchindices.query.bool.max_clause_count8192提升复杂查询能力
MetricBeatqueue.mem.events4096内存队列缓冲
NestJShttpAdapter.setTimeout30000防止ES超时阻断

工程示例:2


以下提供三种完整工程方案,覆盖 NestJS 集成、Elasticsearch 配置优化及自定义监控开发

1 ) 方案 1:NestJS 服务集成 Metricbeat 数据消费
场景:在 NestJS 后端服务中查询 Elasticsearch 存储的指标数据,生成监控报告

// src/metrics/metrics.service.ts 
import { Injectable } from '@nestjs/common';
import { ElasticsearchService } from '@nestjs/elasticsearch';
 
@Injectable()
export class MetricsService {
  constructor(private readonly esService: ElasticsearchService) {}
 
  async getCpuUsage(host: string): Promise<any> {
    const response = await this.esService.search({
      index: 'metricbeat-*',  // 动态匹配索引 
      body: {
        query: {
          bool: {
            filter: [
              { term: { 'metricset.name': 'cpu' } },
              { term: { 'host.name': host } }
            ],
            must: { range: { '@timestamp': { gte: 'now-1h' } } }
          }
        },
        aggs: {
          avg_cpu: { avg: { field: 'system.cpu.user.pct' } }
        }
      }
    });
    return response.aggregations.avg_cpu.value;
  }
}
 
// 调用示例:返回主机 "web-server-01" 的 CPU 平均使用率
// this.metricsService.getCpuUsage('web-server-01');

2 ) 方案 2:Elasticsearch 索引生命周期管理(ILM)

场景:自动滚动删除旧监控数据,避免存储爆炸。

metricbeat.yml 追加配置 
setup.ilm:
  policy_name: metricbeat_policy
  rollover_alias: metricbeat
 
创建 ILM 策略(通过 Kibana Dev Tools)
PUT _ilm/policy/metricbeat_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": { "max_size": "50GB", "max_age": "30d" }
        }
      },
      "delete": {
        "min_age": "90d",
        "actions": { "delete": {} }
      }
    }
  }
}

3 ) 方案 3:自定义 Metricset 开发(Redis 键空间监控)

场景:扩展 Redis 模块,增加高频键空间扫描。

// metricbeat/module/redis/keyspace/keyspace.go
package keyspace
 
import (
  "github.com/elastic/beats/v7/metricbeat/mb"
  "github.com/go-redis/redis/v8"
)
 
func init() {
  mb.Registry.MustAddMetricSet("redis", "keyspace", New,
    mb.DefaultMetricSet(),
    mb.WithHostParser(parseHost),
  )
}
 
type MetricSet struct {
  mb.BaseMetricSet
  client *redis.Client 
}
 
func New(base mb.BaseMetricSet) (mb.MetricSet, error) {
  cfg := struct{ Hosts []string `config:"hosts"` }{}
  base.Module().UnpackConfig(&cfg)
 
  client := redis.NewClient(&redis.Options{Addr: cfg.Hosts[0]})
  return &MetricSet{BaseMetricSet: base, client: client}, nil
}
 
func (m *MetricSet) Fetch(reporter mb.ReporterV2) {
  // 执行自定义命令:扫描键空间统计 
  cmd := m.client.Info(ctx, "keyspace")
  result, err := cmd.Result()
  if err != nil {
    reporter.Error(err)
    return
  }
 
  // 解析并发送事件 
  reporter.Event(mb.Event{
    MetricSetFields: common.MapStr{
      "keys": parseKeyspaceStats(result), // 自定义解析函数
    },
  })
}

配置启用自定义 Metricset:

- module: redis
  metricsets: ["info", "keyspace"]  # 添加自定义 keyspace
  hosts: ["redis://localhost:6379"]
  period: 1s  # 高频采集

工程示例:3


1 )基础监控告警服务

// monitoring.service.ts 
import { Injectable } from '@nestjs/common';
import { ElasticsearchService } from '@nestjs/elasticsearch';
 
@Injectable()
export class MonitoringService {
  constructor(private readonly esService: ElasticsearchService) {}
 
  async fetchCpuMetrics(hostname: string): Promise<any> {
    const { body } = await this.esService.search({
      index: 'metricbeat-*',
      body: {
        query: {
          bool: {
            filter: [
              { term: { 'metricset.name': 'cpu' } },
              { term: { 'host.name': hostname } },
              { range: { '@timestamp': { gte: 'now-1h' } } }
            ]
          }
        },
        aggs: {
          avg_cpu: { avg: { field: 'system.cpu.user.pct' } }
        }
      }
    });
    return body.aggregations.avg_cpu.value;
  }
}

2 ) 动态阈值告警引擎

// alert.engine.ts
import { ElasticsearchService } from '@nestjs/elasticsearch';
 
export class AlertEngine {
  constructor(private es: ElasticsearchService) {}
 
  async checkMemoryThreshold(threshold: number): Promise<string[]> {
    const query = {
      index: 'metricbeat-*',
      size: 0,
      body: {
        query: {
          bool: {
            filter: [
              { term: { 'metricset.name': 'memory' } },
              { range: { '@timestamp': { gte: 'now-5m' } } }
            ]
          }
        },
        aggs: {
          high_mem_hosts: {
            terms: { field: 'host.name', size: 10 },
            aggs: { max_mem: { max: { field: 'system.memory.used.pct' } } }
          }
        }
      }
    };
 
    const { body } = await this.es.search(query);
    return body.aggregations.high_mem_hosts.buckets
      .filter(b => b.max_mem.value > threshold)
      .map(b => b.key);
  }
}

3 ) 集群状态看板(ES原生API)

获取集群节点CPU负载TOP5 
GET metricbeat-*/_search
{
  "size": 0,
  "query": { "term": { "metricset.name": "cpu" } },
  "aggs": {
    "nodes": {
      "terms": { "field": "beat.name", "size": 5 },
      "aggs": { "avg_load": { "avg": { "field": "system.cpu.load.5" } } }
    }
  }
}

高级配置技巧


1 ) MetricSet 定制策略

- module: system
  metricsets:
    - name: cpu
      period: 5s      # 高频采集CPU 
    - name: filesystem
      period: 5m      # 低频采集磁盘 
      filters:        # 只监控根分区 
        - drop_event:
            when: 
              not:
                equals: 
                  system.filesystem.mount_point: "/"

2 ) 容器化部署要点

Dockerfile 示例
FROM docker.elastic.co/beats/metricbeat:8.9.0 
COPY metricbeat.docker.yml /usr/share/metricbeat/metricbeat.yml
USER root  # 容器内需root权限
CMD ["--strict.perms=false"] # 关闭严格权限检查 

常见问题解决方案


问题现象原因解决方案
config file must be owned by beat user配置文件权限错误chown root metricbeat.yml
Exiting: data path already locked多实例共享数据目录设置 path.data: /unique-path
Connection to ES failed网络/证书问题检查 output.elasticsearch.ssl 配置

最佳实践:生产环境务必启用 ILM(索引生命周期管理)

setup.ilm.enabled: true  
setup.ilm.rollover_alias: "metricbeat"  

权限错误处理:

ERROR: metricbeat.yml must be owned by the beat user
解决方案:
sudo chown root:root metricbeat.yml  # 所有权变更
sudo setcap cap_net_raw=ep ./metricbeat  # 网络采集权限

数据未入库检查:

  1. 验证 ES 连接:curl http://localhost:9200/_cat/health
  2. 查看 MetricBeat 日志:journalctl -u metricbeat -n 50
  3. 测试模板加载:./metricbeat test output

性能调优参数:

metricbeat.yml 优化
queue.spool:
  file: 
    path: "/var/spool/metricbeat"
    max_size: 1GB
processors:
  - drop_event: 
      when: 
        less_than: 
          cpu.system.pct: 0.1  # 过滤低负载事件

关键优化与补充知识点


1 ) 性能调优:

  • 调整 queue.mem.events 避免内存溢出
  • 使用 loadbalance: true 在多个 Elasticsearch 节点间分流写入

2 ) 安全加固:

  • Elasticsearch 启用 TLS:在 output.elasticsearch 中配置 protocol: "https"
  • Metricbeat 启用内置认证:xpack.security.enabled: true

3 ) Kubernetes 集成:

metricbeat.autodiscover:
  providers:
    - type: kubernetes
      templates:
        - condition: contains("redis", "${data.container.image}")
          config:
            - module: redis
              hosts: "${data.host}:6379"
              metricsets: ["info"]

4 ) 与 Zabbix 对比优势:

  • 轻量级部署:无需独立 Server/Agent 分层架构
  • 一体化生态:数据直接入 Elasticsearch,无缝衔接 Kibana 可视化
  • 扩展便捷:支持自定义 Module 开发(Go 语言)

进阶:自定义 Module 开发


步骤分解:

  1. 创建 Python 模块(需 Golang 基础):
    mymodule.yml
    - module: custom_app 
      metricsets: ["health"]
      period: 5s
    
  2. 实现数据采集逻辑:
    // module/customapp/health.go
    func (m *MetricSet) Fetch() ([]common.MapStr, error) {
      resp, _ := http.Get("http://app:8080/health")
      data := map[string]interface{}{}
      json.NewDecoder(resp.Body).Decode(&data)
      return []common.MapStr{"status": data["status"]}, nil
    }
    
  3. 编译并部署:
    make  # 生成 metricbeat 二进制
    ./metricbeat -e -d "customapp"  # 调试模式
    

扩展应用场景


1 ) Kubernetes 监控

metricbeat.modules:
- module: kubernetes
  metricsets: ["node", "pod", "system"]
  period: 30s

2 ) 自定义 MetricSet 开发

// 示例:采集 Nginx 活跃连接数
func (m *NginxMetricSet) Fetch() ([]common.MapStr, error) {
  conn, _ := net.Dial("tcp", m.host)
  conn.Write([]byte("GET /status HTTP/1.1\r\n\r\n"))
  data, _ := io.ReadAll(conn)
  return eventMapping(data), nil 
}

与传统方案对比与选型建议


MetricBeat vs Zabbix:

维度MetricBeatZabbix
部署复杂度⭐(单二进制文件)⭐⭐⭐(需Server/Agent)
扩展性⭐⭐⭐(Go模块化开发)⭐⭐(自定义脚本)
数据粒度秒级采集分钟级
资源占用<50MB 内存>200MB 内存
云原生支持原生K8s DaemonSet集成需Operator辅助

选型指南:

  • 选择 MetricBeat 当需:
    • 快速监控云主机/容器(开箱即用Docker/Kubernetes模块)
    • 与Elastic Stack深度集成(Kibana预置仪表盘)
    • 低资源环境部署(ARM设备支持)
  • 选择 Zabbix 当需:
    • 传统网络设备SNMP监控
    • 无Elasticsearch基础设施的场景

关键概念说明:

  • Elasticsearch:分布式搜索分析引擎,用于存储和查询指标数据
  • NestJS:基于TypeScript的Node.js框架,提供依赖注入和模块化架构
  • DaemonSet:Kubernetes中在每节点运行Pod副本的控制器
  • 死信队列(DLQ):存储处理失败消息的备份队列,防止数据丢失

总结


Metricbeat 通过 Module/Metricset 两级抽象,实现了监控任务的模块化与精细化控制。其核心价值在于:

  • 开箱即用:覆盖操作系统、数据库、容器等 50+ 官方 Module
  • 灵活扩展:支持自定义 Metricset 开发与独立频率配置
  • 生态集成:与 Elastic Stack 深度协同,替代传统监控工具(如 Zabbix)的复杂架构
    通过本文的NestJS 消费示例、ES 索引管理及自定义监控开发三方案,可快速构建企业级监控体系。初学者建议从 system 模块入手,逐步扩展至业务中间件监控。
MetricBeat监控Redis metriceat的安装部署参考章节: 监控组件>Metricbeat安装使用,这里不再赘述。登入kibana,进入dashboard,搜索 redis,即可看到相关图表。进入metricbeat安装目录。 阅读详情

相关推荐

掌握Metricbeat:收集与可视化系统指标

本文介绍了Metricbeat的安装、配置与使用,重点讲解了如何通过Metricbeat收集系统和应用程序的性能指标,并将其可视化展示在Kibana仪表板上。从安装过程到数据展示,详细阐述了Metricbeat模块的激活、配置文件的编辑以及如何利用默认仪表板进行数据分析。

weixin_35755188的博客 361

ELK Stack入门到实战(一)基础架构之五

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。该课程从ELK组件中的两大组件和常用的应用日志收集进行剖析讲解。(1)ElasticSearch:从单台的安装到集群的搭建、从基础的入门使用到高级的搜索和聚合都进行了较好的阐述。(2) Logstash:通过收集apache日志,使用grok插件和geoip插件先让学习人员对整体框架做到了了解于胸。然后再深入的对LogStash重要的知识点进行了剖析。(3)应用日志收集:对常见的Apache、Nginx、MySQL、Syslog进行日志收集和分析。虽说没有讲解太多,但是我想应该能做到让大家对应用日志收集了解的更加深入。

linux下filebeat、execbeat、metricbeat注册为服务

linux系统下 将beat服务注册为服务 以服务的方式启动,

Metricbeat安装与初级使用

先到官网下载需要的版本(本例选择的是RPM 64位 6.3.1版本的压缩包) https://www.elastic.co/downloads/beats/metricbeat(默认会让你下载最新版的) 如果当前版本不是你想要的可以选择其他版本 点击past releases后跳转到: 下载完成后进行,将压缩包通过Xftp上传到Linux系统(本例存放在 /usr/local/src 目录...

月亮中的星星的博客 2万+

BurpSuit在不同浏览器中配置代理

文章通过分享各大浏览器如何设置代理的知识,帮助初学者快速掌握代理配置相关技能。

北冥同学的成长记录笔记 1万+

Fleury算法寻找欧拉回路(mtlab代码详解)

【代码】Fleury算法寻找欧拉回路(mtlab代码详解)

m0_63449998的博客 1298

ELK(八)—Metricbeat部署

Metricbeat 是一个轻量级的开源度量数据收集器,用于监控系统和服务。它由 Elastic 公司开发,并作为 Elastic Stack(Elasticsearch、Logstash、Kibana 以及 Beats)的一部分,用于收集、分析和可视化不同类型的度量数据。Metricbeat 主要专注于收集主机级别的度量数据,例如系统 CPU 使用率、内存使用率、磁盘使用率等。Metricbeat 被设计成轻量级和高效的度量数据收集器。它使用 Go 语言编写,占用资源较少,适用于部署在各种环境中。

qq_51010919的博客 2018

【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功

【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功,附带问题分析详细过程

spark_dev的博客 1912

使用metricbeat 监控多ES集群

通过metricbeat 监控多 ES 集群,通过kibana 展示。

goodluck_mh的博客 2875

用51单片机和LD3320语音模块DIY一个会说话的温度报警器(附完整代码)

本文详细介绍了如何使用51单片机和LD3320语音模块DIY一个智能温度报警器,包括硬件选型、电路设计、软件开发及核心功能实现。通过DS18B20温度传感器和语音模块的结合,实现温度超标时的语音报警功能,适合智能家居系统等应用场景。附完整代码,方便开发者快速复现。

weixin_42525632的博客 421

-如何搭建聚合支付系统

聚合支付市场分析 移动支付已经越来越大众化,其中使用人群集中的两种支付不外就是微支付,支付宝支付!  很多线下都是整合了微支付与支付宝支付;很多消费者到店消费问的第一件事情就是可不可以微信支付,或者支付宝支付  可以说移动支付是未来的一个大趋势;现在人们出门基本上都不用带现金了,可以说是一机在手走遍天下都不怕 可以说现在移动支付是一个趋势! 原本刚刚出来的时候,支付宝是一个支付码,微支付

q744803399的博客 3196

Metricbeat 零基础教程

Metricbeat 是一个轻量级的开源数据采集器,用于收集来自操作系统和服务的各种性能指标。Metricbeat 是 Elastic Stack(Elasticsearch、Logstash、Kibana、Beats)中的一个关键组件,常与 Elasticsearch 和 Kibana 一起使用,用于实时监控和性能分析。你可以根据需求启用或禁用特定的 Metricset,以便收集所需的性能指标。Metricbeat 是一个基于事件的数据采集器,它使用轻量级的 Go 语言编写,具有高性能和低系统开销的特点。

洪晓鸿 915

Codex辅助小说创作:零成本AI写作指南与实战技巧

自然语言处理技术通过深度学习模型理解语义上下文,其核心原理是基于大规模文本训练的语言模型预测能力。在创意写作领域,这项技术的价值在于突破传统写作工具的功能局限,实现从内容生成到风格模仿的智能化辅助。特别是提示词工程的应用,让创作者能够精准控制AI输出的内容和风格。在实际应用场景中,AI写作工具显著降低了小说创作门槛,适用于网络小说、奇幻科幻等多种文学类型。本文以OpenAI Codex为例,详细解析如何利用AI技术完成从故事大纲设计、章节生成到平台发布的全流程创作,其中提示词优化和内容质量把控是提升生成效果

weixin_32678995的博客 568

ELK系列-(五)指标收集-MetricBeat(上)

通过MetricBeat,我们可以方便地收集各种系统和服务的指标,并将其传输到Elasticsearch中。默认情况下,MetricBeat 会启用一些基础的系统指标收集模块(比如 CPU、内存、磁盘等)。,它是Elastic Stack中用来收集和传输系统和服务指标的工具,也是Beat家族中的一员,支持操作系统、容器、云平台等多种数据源。启动MetricBeat后,您可以前往Kibana的Observability模块,查看采集到的系统指标。如图所示,默认启用了系统模块,我们可以根据需要启用其他模块。

LIUCHUAN01的博客 1563

YOLOv5改进有效涨点目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

Hello,各位读者们好本专栏自开设两个月以来已经更新改进教程60余篇其中包含C2f、主干、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新。同时本人一些讲解视频和包含我所有创新的YOLOv8文档并不能在优快云上传(所有的创新点都经过我的测试是可用的,得到该文件之后大家可以随意组合使用),所以会建立群的形式在内上传我的文件和视频我也会在群内不定期和大家交流回答大家问题,同时定期会更新一些文章的创新点(经过我融合测试后的,先到先得)。本专栏持续更新网络上的所有前沿文章。

Snu77的博客 3万+

出现 Connection Failed [MySQL][ODBC Driver]Access denied for user ‘root‘@x(using password:YES)解决方法

Connection Failed [MySQL][ODBC 8.0(w) Driver]Access denied for user 'root'@xxxx (using password:YES)

码农研究僧的博客 1062

MetricBeat + Elasticsearch + Kibana 实现监控指标可视化

1、Elasticsearch 监控指标可视化概述之前的推文 Elasticsearch 磁盘使用率超过警戒水位线,怎么办?有读者留言:“配合监控系统”。是的,监控系统就像我们的车载监控,...

铭毅天下Elasticsearch 9394

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

metricbeat的基本使用

文章目录概述metricbeat安装metricbeat启动案例举例1:收集系统运行的指标数据至es举例2:收集es运行的指标数据至es 概述 定期收集操作系统或应用服务的指标数据存储到Elasticsearch中,进行实时分析 metricbeat安装 去下载页下载,解压即可 metricbeat启动 ./metricbeat -e metricbeat支持的输出类型: ElasticSearch LogStash Kafka Redis File Console Cloud metricbeat也

我就是我的博客 3841

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Metricbeat源码分析

0X00 版本信息 Golang:1.16.8 Metricbeat:7.14 0X01 Metricbeat介绍 Metricbeat quick start: installation and configuration | Metricbeat Reference [7.14] | Elastichttps://www.elastic.co/guide/en/beats/metricbeat/7.14/metricbeat-installation-configuration.html Me

Hi~ o(* ̄▽ ̄*)ブ 1041

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

metricbeat收集http指标

背景:在metricbeat收集redis日志以及系统日志、python接收请求参数 基础上进行,部分简单内容省略 一、查看容器ip docker inspect metricbeat | egrep IPAddress 二、编辑metricbeat.yml配置文件 1. 新增http模块的配置 #--------------------------------- HTTP Module --------------------------------- - module: ht.

zsx18273117003的博客 1026

Beats:通过 Metricbeat 实现外部对 Elastic Stack 的监控

自Elastic 7.5发布开始,通过外部监控Elastic Stack已经全面实施。 可以通过Metricbeat模块监视Elasticsearch,Kibana,Logstash,APM服务器和Beats。 使用外部收集,用户现在可以收集和发送其Elastic Stack的监视数据,而不必依赖于受监视服务的运行状况。 此版本大大提高了用于监视Elastic Stack可靠性和选则的灵活性。 ...

Elastic 中国社区官方博客 5276

Metricbeat和Filebeat的安装及配置

Beats的安装及配置 一、Metricbeat的安装配置 环境准备 下载与es同版本的metricbeat,这里为 metricbeat-7.11.1-linux-x86_64.tar.gz 这里使用root用户进行配置及启动metricbeat 已启动对应的ES服务及Kibana服务 metricbeat的安装 这里在/路径下建立beats文件夹,将metricbeat-7.11.1-linux-x86_64.tar.gz拷贝进去并解压 [root@elkserver beats]#

weixin_37714753的博客 1275

metricbeat的使用

系统级监控Metricbeat 用于从系统和服务收集指标。从 CPU 到内存,从 Redis 到 Nginx,Metricbeat 能够以一种轻量型的方式,输送各种系统和服务统计数据。 可以获取系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据,以及获得如同系统上 top 命令类似的各个进程的统计数据。 1. 下载部署metricbeat:metricbeat...

victory0508的专栏 1745

Elasticsearch学习笔记(七)安装并配置Metricbeat

Metricbeat 是一个轻量级的开源数据采集器,专门用于收集操作系统和服务的指标(metrics)。它是 Elastic Stack(即 ELK Stack)的一部分,通常用于监控系统性能、收集应用程序和服务器的性能指标,并将这些数据发送到 Elasticsearch 或 Logstash 进行进一步的分析和可视化(如通过 Kibana)。

alfiy的专栏 1533

ELK入门(七)——Metricbeat安装与启动(rpm包)

a https://blog.youkuaiyun.com/u014773389/article/details/81207017

Netceor的博客 2761

ELK下kibana安装Metricbeat工具

介绍 时序控件(Timelion)是一款时间序列数据可视化工具,它可以将多种独立的数据源合并呈现到一张视图上。 es函数 1、index 指明索引 .es(index=nginx-access-log-* 2、q q查询 3、timefield 指定时间轴采用的字段,默认@timestamp timefield=@timestamp 4、metric 指明展示指标,默认是个数。...

qq_40907977的博客 3002
上一篇: Elastic Stack梳理:FileBeat技术解析与工程实践指南
下一篇: Elastic Stack梳理:深入解析Packetbeat网络抓包与Heartbeat服务监控
Wang's Blog
博客等级 码龄12年 7438粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值