1.下载镜像
docker pull logstash:7.6.2
elk版本统一
2.启动logstash(目的拷贝数据将文件夹挂载到外部)
docker run -d --name=logstash logstash:7.6.2
3.启动完成后查看容器是否启动完成
docker ps
docker logs -f logstash
启动日志打印成功说明启动已完成
4.进入logstash容器内部
docker exec -it logstash /bin/bash
5.退出容器,将/usr/share/logstash
文件夹下所有内容拷贝到外部/mydata文件夹下
docker cp logstash:/usr/share/logstash /mydata/
mkdir /mydata/logstash/config/conf.d
7.给/mydata/logstash/文件夹授予权限
chmod 777 -R /mydata/logstash
8.logstash相关配置,请确保elasticsearch运行正常,修改配置文件中的elasticsearch地址(请根据实际情况修改elasticsearch地址!)
logstash配置文件logstash.yml详解
vi /mydata/logstash/config/logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.56.10:9200" ]
#指定管道配置的目录,在此目录下的所有管道配置文件都将被logstash读取,除管道配置外,不要放任何文件
path.config: /usr/share/logstash/config/conf.d/*.conf
#logstash日志目录位置,默认为logstash路径下的logs
path.logs: /usr/share/logstash/logs
#logstash及其插件所使用的数据路径,默认路径为logstash家目录下的data目录
path.data: /usr/share/logstash/data
9.新建文件syslog.conf,用来收集/usr/share/logstash/logs/temp_log
vi /mydata/logstash/config/conf.d/syslog.conf
input {
file {
#标签
type => "systemlog-localhost"
#采集点
path => "/usr/share/logstash/logs/temp_log"
#开始收集点
start_position => "beginning"
#扫描间隔时间,默认是1s,建议5s
stat_interval => "5"
}
}
output {
elasticsearch {
hosts => ["192.168.56.10:9200"]
index => "logstash-system-localhost-%{+YYYY.MM.dd}"
}
}
10.在采集点文件/usr/share/logstash/logs/temp_log
中随意写点测试采集数据退出保存
vi /mydata/logstash/logs/temp_log
docker stop logstash
docker rm logstash
12.使用外部挂载文件方式重新启动logstash
docker run -d \
--name=logstash \
--restart=always \
-p 5044:5044 \
-v /mydata/logstash:/usr/share/logstash \
logstash:7.6.2
13.查看容器运行状态
docker ps
docker logs -f logstash
14.重启完成之后,访问elasticsearch-head确保创建了索引
也可以使用kibana控制台方式查看
好啦,以上就是安装logstash及相关配置的使用!
关于logstash采集数据的方式很多,本文使用file方式做了简单的介绍,有兴趣的朋友可以参照官方文档:elasticsearch官方文档
备注:
如果想使用./bin/logstash
指定某一个配置文件文件启动logstash的话,需要把logstash.yml文件中的path.config注释掉(注意:这种启动方式需要java环境支持要先在虚拟机中配置jdk环境变量)
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.56.10:9200" ]
#指定管道配置的目录,在此目录下的所有管道配置文件都将被logstash读取,除管道配置外,不要放任何文件
#path.config: /usr/share/logstash/config/conf.d/*.conf
#logstash日志目录位置,默认为logstash路径下的logs
path.logs: /usr/share/logstash/logs
#logstash及其插件所使用的数据路径,默认路径为logstash家目录下的data目录
path.data: /usr/share/logstash/data
1)stdin 标准输入和 stdout 标准输出,在/mydata/logstash目录下键入以下命令即可;启动完成在控制台输入输出
./bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
2)使用指定配置文件filter.conf 方式启动logstash
./bin/logstash -f /mydata/logstash/config/conf.d/filter.conf
3)以上配置完成后,以后logstash从各种不同的地方采集输入输出数据只需要在/mydata/logstash/config/conf.d
文件夹下编写不同的.conf文件并制定启动即可