Logstash 使用详解

person 佛祖保佑    watch_later 2024-07-15 16:15:27
visibility 131    class Logstash    bookmark 分享

Logstash 使用详解

Logstash 是一个开源的服务器端数据处理管道,允许同时从多个来源采集数据,将其转换,并将其发送到存储中。Logstash 是 ELK(Elasticsearch, Logstash, Kibana)堆栈中的核心组件,用于日志和事件数据的处理和转发。

一、Logstash 安装

1. 安装 Java

Logstash 需要 Java 运行环境。确保系统上安装了 Java:

sudo apt update
sudo apt install default-jre -y

2. 下载和安装 Logstash

从官方仓库下载并安装 Logstash:

# 下载并安装 Logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.13.3.deb
sudo dpkg -i logstash-7.13.3.deb

二、Logstash 配置

Logstash 使用配置文件定义数据管道,包括输入(input)、过滤(filter)和输出(output)部分。

1. 配置文件结构

Logstash 的配置文件通常包含三个部分:input、filter 和 output。例如:

input {
  # 输入插件配置
}

filter {
  # 过滤插件配置
}

output {
  # 输出插件配置
}

2. 示例:从文件读取数据并发送到 Elasticsearch

以下是一个简单的 Logstash 配置示例,从文件中读取数据,进行过滤处理,并将处理后的数据发送到 Elasticsearch。

创建配置文件

/etc/logstash/conf.d 目录下创建一个配置文件 logstash.conf

sudo nano /etc/logstash/conf.d/logstash.conf

配置文件内容

input {
  file {
    path => "/var/log/myapp/*.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}

filter {
  grok {
    match => { "message" => "%{COMMONAPACHELOG}" }
  }

  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }

  mutate {
    remove_field => [ "timestamp" ]
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "myapp-logs-%{+YYYY.MM.dd}"
  }

  stdout { 
    codec => rubydebug 
  }
}

配置详解

  • input 部分:配置 Logstash 从指定路径的日志文件中读取数据。

    • path:指定日志文件路径。
    • start_position:定义从文件的开始位置读取数据。
    • sincedb_path:禁用 sincedb 文件(用于记录文件读取位置)。
  • filter 部分:配置数据过滤和处理。

    • grok:使用 Grok 模式解析日志数据。%{COMMONAPACHELOG} 是一个预定义的模式,匹配常见的 Apache 日志格式。
    • date:将日志中的时间戳字段解析为标准日期格式。
    • mutate:移除不需要的字段。
  • output 部分:配置数据输出。

    • elasticsearch:将处理后的数据发送到 Elasticsearch。
      • hosts:Elasticsearch 主机地址。
      • index:定义索引模式。
    • stdout:将处理后的数据输出到控制台,以 rubydebug 格式显示。

三、运行 Logstash

启动 Logstash 以加载配置文件并处理数据:

sudo systemctl start logstash

四、验证 Logstash 工作情况

  1. 查看 Logstash 服务状态:
sudo systemctl status logstash
  1. 查看 Elasticsearch 索引情况:
curl -X GET "localhost:9200/_cat/indices?v"
  1. 查看处理后的数据:

可以通过 Kibana 查看处理后的数据。在 Kibana 中创建一个索引模式(例如 myapp-logs-*),然后可以在 Kibana 的 Discover 页面查看日志数据。

五、总结

Logstash 是一个强大的工具,能够从多个数据源采集数据,进行灵活的过滤和转换,并将处理后的数据发送到多个目标存储。通过配置 input、filter 和 output 部分,您可以构建各种复杂的数据处理管道,以满足不同的日志处理需求。上述示例展示了一个基本的文件日志处理和发送到 Elasticsearch 的过程,您可以根据需要扩展和定制 Logstash 配置,以适应更多的使用场景。

评论区
评论列表
menu