文章目录
- 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 创建文件夹及相应的配置文件。
相关文件夹及配置文件的目录结构如下:
给文件夹加读写权限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配置的实际上就是流程图中间的那一部分。
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
- 查看容器内的实时log输出
docker logs -f testlogstash --tail 200
其中,从log可以找到控制台输出文件内容的部分(上面output中配置的是控制台输出)
这里的message就是文件的内容,如果有多行,则输出多个下面的结构。
tag里的报错信息是我在config的input里面配置了codec=>json
但是实际上的log是一条string。忽略即可。
至此,一个简易功能的logstash就部署好了。