您的位置:

logstash安装与配置

一、安装

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 # 查看状态