logstash安装与配置

发布时间:2023-05-23

一、安装

1、前置条件

在安装logstash之前,需要先安装Java,因为logstash是基于Java开发的,对于Java的版本要求比较宽松,建议使用Java 8。

sudo apt-get update
sudo apt-get install openjdk-8-jdk

2、安装logstash

Logstash的安装使用apt-get即可。步骤如下:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update
sudo apt-get install logstash

二、配置

1、Logstash配置文件结构

Logstash的配置文件采用YAML格式,一个配置文件通常包含三个部分:

  • 输入input:指定数据来源
  • 过滤filter:对来源数据进行处理
  • 输出output:最终数据输出 在配置文件中用“{}”表示一项配置,例如:
input {
   stdin {}
}

上述代码表示从标准输入读取数据。

2、输入设置

logstash的输入支持多种方式,包括:

  • file:从文件中读取数据,可以是原始文件或者是经过压缩文件
  • stdin:从标准输入读取数据
  • syslog:从syslog服务器读取数据
  • http:从HTTP接口读取数据 以读取文件为例,设置方法如下:
input {
  file {
      path => "/var/log/syslog" # 读取文件路径
      start_position => "beginning" # 从文件头部开始读取数据
  }
}

3、过滤设置

Logstash的过滤插件可以处理输入数据,并将其转化为可供输出使用的格式。常见过滤插件包括:

  • grok:根据正则表达式将输入数据解析为结构化数据
  • metrics:收集各种指标并输出
  • dns:解析域名 以发现syslog输入中错误信息为例,设置方法如下:
filter {
   if [type] == "syslog" {
       grok {
           match => { "message" => "%{SYSLOG5424SD} %{GREEDYDATA:message}" }
       }
       if "error" in [message] {
           # 从日志中发现错误信息
           mutate {
               add_tag => ["syslog_error"]
           }
       }
   }
}

4、输出设置

Logstash的输出插件可以将处理后的数据输出到不同的目的地,常见插件包括:

  • stdout:输出至标准输出
  • file:将数据写入本地文件系统
  • kafka:将数据写入kafka消息队列
  • redis:将数据写入redis key-value数据库 以输出到Elasticsearch索引为例,设置方法如下:
output {
   elasticsearch {
       hosts => ["localhost:9200"] # Elasticsearch服务器地址
       index => "syslog-%{+YYYY.MM.dd}" # 索引格式
   }
}

三、运行logstash

完成了配置文件的编写,可以启动logstash进行处理,执行如下命令:

sudo /etc/init.d/logstash start # 启动
sudo /etc/init.d/logstash stop # 停止
sudo /etc/init.d/logstash status # 查看状态