天天看点

logstash docker配置和部署

文章目录

    • 1. 下载docker
    • 2. 配置
      • 2.1 创建文件夹及相应的配置文件。
      • 2.2 logstash.conf
      • 2.5 logstash.yml配置
      • 2.4 pipelines.yml 配置
      • 2.5 jvm.options 配置
    • 3. 启动

Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。

1. 下载docker

下载对应环境的安装包:logstash安装下载地址

或者直接安装docker

docker pull docker.elastic.co/logstash/logstash:7.12.0
           

2. 配置

配置过程主要参考下面博客,配置内容做了一定的简化,只求能够启动即可。

docker+elk7.8实战之logstash安装配置

2.1 创建文件夹及相应的配置文件。

相关文件夹及配置文件的目录结构如下:

logstash docker配置和部署

给文件夹加读写权限

chmod 777 logstash

2.2 logstash.conf

这是很重要的配置文件,log的 输入输出解析过程都是在这里配置。

e.g.

下面这个例子,输入是读取文件,文件路径是docker内的绝对路径(docker内外路径的映射会配置在docker run参数中,后面会说)

输出是控制台输出。

input {
	file{
		path => "/usr/share/logstash/data/test.log"
		codec => json
		start_position => "beginning"
	}
}
output {
	stdout {
        codec => rubydebug
    }
}

           

这里conf配置的实际上就是流程图中间的那一部分。

logstash docker配置和部署

2.5 logstash.yml配置

node.name: logstash-203
# 日志文件目录配置
path.logs: /usr/share/logstash/logs
# 验证配置文件及存在性
config.test_and_exit: false
# 配置文件改变时是否自动加载
config.reload.automatic: false
# 重新加载配置文件间隔
config.reload.interval: 60s
# debug模式 开启后会打印解析后的配置文件 包括密码等信息 慎用
# 需要同时配置日志等级为debug
config.debug: true
log.level: debug
# The bind address for the metrics REST endpoint.
http.host: 0.0.0.0
           

2.4 pipelines.yml 配置

这是对conf文件做配置,可以配置多个conf。

同样,path也是在docker里的绝对路径

- pipeline.id: main
  path.config: /usr/share/logstash/config/logstash.conf
           

2.5 jvm.options 配置

java相关配置

-Xmx512m
-Xms512m
           

3. 启动

  • 启动一个名字为testlogstash 的容器
docker run -it --name testlogstash \
-v /data/users/username/workspace/logstash/config:/usr/share/logstash/config \
-v /data/users/username/workspace/logstash/data:/usr/share/logstash/data \
-v /data/users/username/workspace/logstash/pipeline:/usr/share/logstash/pipeline \
-d docker.elastic.co/logstash/logstash:7.12.0
           

现在应该是可以启动了

  • 查看容器运行状态
docker ps | grep logstash
           
logstash docker配置和部署
  • 查看容器内的实时log输出
docker logs -f testlogstash --tail 200
           

其中,从log可以找到控制台输出文件内容的部分(上面output中配置的是控制台输出)

logstash docker配置和部署

这里的message就是文件的内容,如果有多行,则输出多个下面的结构。

tag里的报错信息是我在config的input里面配置了

codec=>json

但是实际上的log是一条string。忽略即可。

至此,一个简易功能的logstash就部署好了。

参考博客:

  • docker+elk7.8实战之logstash安装配置
  • [Logstash]使用详解

继续阅读