项目场景:
项目场景:使用docker安装部署logstash 获取filebeat采集的日志 过滤后发送给elasticsearch
前提:需要安装elasticsearch 可参考文章链接: 《Docker进行安装部署Elaticsearch》.
1.拉取
例如:首先从DockerHub上拉取logstash到本地 统一版本7.6.2
docker pull logstash:7.6.2
2.启动(只作为拷贝原文件使用)
docker run -d --name=logstash logstash:7.6.2
3.拷贝数据
#将logstash容器内的目录拷贝出来
docker cp logstash:/usr/share/logstash /home/yanglei/ElasticStackAll/LogsTashAll/logstash
#创建conf.d文件夹 用于后面写入配置文件
mkdir /home/yanglei/ElasticStackAll/LogsTashAll/logstash/logstash/config/conf.d
#对拷贝出来的文件进行权限更改
chmod 777 -R /home/yanglei/ElasticStackAll/LogsTashAll/logstash/logstash/
4.编辑配置文件
#编辑syslog.conf
vi /home/yanglei/ElasticStackAll/LogsTashAll/logstash/logstash/config/conf.d/syslog.conf
将如下内容写入syslog.conf
现在主流都是采用filebeat来采集日志,所以输入只需要监听5004端口即可 不会filebeat采集的可参考这篇文章:
《使用docker安装部署filebeat采集日志并发送给elasticsearch、logstash》
#输入监听5044 ---接收filebeat等beats传过来的日志信息
input {
beats {
port => "5044"
}
}
#过滤nginx
filter {
grok {
match => { "message" => "%{IP:clientip} - (%{USERNAME:user}|-) \[%{HTTPDATE:timestamp}\] \"%{WORD:request_verb} %{NOTSPACE:request} HTTP/%{NUMBER:httpversion}\" %{NUMBER:status:int} %{NUMBER:body_sent:int} \"-\" \"%{GREEDYDATA:agent}\" \"-\"" } # 过滤出自己需要的效果
remove_field => "message" # 删除出不需要的字段
}
}
#输出到elasticsearch
output {
elasticsearch {
hosts => ["elasticsearch的IP:9200"]
index => "logstash-%{+yyyy.MM.dd}"
}
}
###################################################
5.删除容器
#删除logstash
docker rm -f logstash
6.重新启动容器
#启动logstash
#/home/yanglei/ElasticStackAll/LogsTashAll/logstash/logstash 就是把宿主机的logstash挂载到容器内logstash目录
docker run -d --name=logstash --restart=always -p 5044:5044 -v /home/yanglei/ElasticStackAll/LogsTashAll/logstash/logstash:/usr/share/logstash/ logstash:7.6.2
7.查看是否有误
#查看logstash 日志
docker logs -f logstash
logstash 查看日志没报错的话就正常运行了,可以通过elasticsearch-hade或者kibana来查看具体索引是否创建
elasticsearch-hade:查看索引
kibana:查看索引 未安装kibana可参考文章链接: 《使用docker安装部署kibana》.
推荐文章:《使用docker安装部署kibana》
推荐文章:《使用docker安装部署elaticsearch》
推荐文章:《使用docker安装部署Elaticsearch-hade》
推荐文章:《使用docker安装部署filebeat采集日志并发送给elasticsearch、logstash》
推荐文章:《使用docker安装部署logstash 获取filebeat采集的日志 过滤后发送给elasticsearch》
参考文章:https://cloud.tencent.com/developer/article/1703928 docker安装logstash