Docker部署ELK之部署logstash7.6.0(4)
前言:
logstash 和filebeat都具有日志收集功能,filebeat更轻量,占用资源更少,但logstash 具有filter功能,能过滤分析日志。一般结构都是filebeat采集日志,然后发送到消息队列,redis,kafka。然后logstash去获取,利用filter功能过滤分析,然后存储到elasticsearch中
1. 拉取logstash镜像
sudo docker pull logstash:7.6.0
2. Docker构建logstash容器
创建一个logstash容器:
sudo docker run -it -d -p 5044:5044 -p 5045:5045 --name logstash1 --net mynetwork logstash:7.6.0
把容器的配置文件拷贝出来到宿主机中,进行修改修改
sudo docker cp logstash1:/usr/share/logstash/config/ /home/xujk/Work/Docker/elasticsearch/logstash
sudo docker cp logstash1:/usr/share/logstash/pipeline/ /home/xujk/Work/Docker/elasticsearch/logstash
sudo docker cp logstash1:/usr/share/logstash/logstash-core/lib/jars/ /web/logstash/
创建logstash容器,进行配置文件挂载,方便修改
sudo docker run -d -p 5044:5044 -p 5045:5045 \ --privileged=true -v /home/xujk/Work/Docker/elasticsearch/logstash/config/:/usr/share/logstash/config/ -v /home/xujk/Work/Docker/elasticsearch/logstash/pipeline/:/usr/share/logstash/pipeline/ --name=logstash1 logstash:7.6.0
修改配置文件:/config/logstash.yml
http.host: "0.0.0.0"
#xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: xujingkun
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.231.132:9200" ]

修改配置文件:/pipeline/logstash.conf
input {
beats {
port => 5044
}
}
filter {
dissect {
mapping => { "message" => "[%{Time}] %{LogLevel} %{message}" }
}
}
output {
elasticsearch {
hosts => "192.168.231.132:9200"
index => "xujktest_log"
timeout => 300
user=>"elastic"
password=>"xujingkun"
}
stdout {
codec => rubydebug
}
}

logstash配置好,上一文中的filebeat修改配置文件,输出到logstash中,详情见上一文
Logstash使拥过滤插件dissect:
dissect的应用有一定的局限性:主要适用于每行格式相似且分隔符明确简单的场景
修改logstash.conf文件


日志写入:
sudo echo '[2020-10-23 09:38:32] Error test logstash!' >> xujk01.log
日志分析:

如果像Loglevel,Time这类咱们分解的属性在kibana界面不能做过滤filter的话,需要重新创建IndexPatterns,然后再查看日志

FAQ&遇到问题:
logstash同步日志数据,只有一条数据
解决参考:https://bbs.csdn.net/topics/395110795
因为 document_id=> “%{[@metadata][_id]}”导致的,去掉或者,设置id自增都可以解决,我们这里把这个节点去掉了

至此,ELK日志收集实践告一段落!
Docker部署ELK之部署logstash7.6.0(4)的更多相关文章
- Docker环境 ELK 快速部署
Docker环境 ELK快速部署 环境 Centos 7.4 , Docker version 17.12 Docker至少3GB内存: #内核配置 echo ' vm.max_map_count = ...
- Docker部署ELK之部署filebeat7.6.0(3)
1. filebeat介绍 Filebeat是用于转发和集中日志数据的轻量级传送工具.Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logsta ...
- Docker部署ELK之部署kibana7.6.0(2)
1. 拉取kibana镜像 sudo docker pull kibana:7.6.0 2. 输入命令构建kibana容器,关于挂载kibana配置文件的问题,也可以先构建一个容器,然后把配置文件co ...
- Docker部署ELK之部署elasticsearch7.6.0(1)
1. 拉取elasticsearch7.6.0镜像: sudo docker pull elasticsearch:7.6.0 2. 输入命令,构建容器: sudo docker run --name ...
- 【杂记】docker搭建ELK 集群6.4.0版本 + elasticsearch-head IK分词器与拼音分词器整合
大佬博客地址:https://blog.csdn.net/supermao1013/article/category/8269552 docker elasticsearch 集群启动命令 docke ...
- docker方式部署elk日志搜索平台
Docker部署ELKF操作文档 前提介绍 1.之前搭建elk+f+k使用原生系统软件安装方式,由于docker镜像日趋成熟,docker官网和elastic官网都有相关镜像和各自安装文档可供参考,各 ...
- 使用Docker快速部署ELK分析Nginx日志实践(二)
Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...
- Docker 部署ELK之Sentinl日志报警
前篇文章简单介绍了Docker 部署ELK,以及使用filebeat收集java日志.这篇我们介绍下日志报警配置,这里我们使用Sentinl插件. 1.修改kibana参数 进入elk容器,修改对应参 ...
- Docker 部署ELK
1.安装docker前安装pip sudo yum -y install epel-release sudo yum install python-pip 2.安装docker #安装依赖包 yum ...
随机推荐
- CentOS6.5 mini安装到VirtualBox虚拟机中
下载Oracle VM VirtualBox 下载下来安装 下载镜像 http://archive.kernel.org/centos-vault/6.5/isos/i386/CentOS-6.5-i ...
- mysql大量数据分页查询优化-延迟关联
所有的php初学者都应该知道,mysql的分页语句写法如下: 1 select * from a limit (page-1)*page_size,page_size 而当这语句分页到一定程度时,例如 ...
- Whitzard OJ Introduce to packing
1.概述 这个就是个smc,为什么会归于加壳,我个人理解是和UPX的运行方式有点像把,不对应该是说和压缩壳的运行方式 很相似,都是先运行一段解密代码,之前的符号表也替换了下 2.解题 有两种方式一种是 ...
- Linux | 文本编辑器vim
vim 编辑器介绍 vim 编辑器是一款非常棒的文本处理工具,它会默认安装在当前所有的 Linux 操作系统上面. vim 编辑器中设置了三种模式,可以极大的提高我们的工作效率: 命令模式:控制光标移 ...
- 一次性讲清楚spring中bean的生命周期之三:bean是如何实例化的
在前面的两篇博文<一次性讲清楚spring中bean的生命周期之一:getSingleton方法>和<一次性讲清楚spring中bean的生命周期之二:FactoryBean的前世今 ...
- C语言:位运算加密
数据加密解密是一个常用的功能,如果你不希望让别人看到文件中的内容,可以通过密钥(也称"密码")将文件的内容加密.比如文本文件(.txt),加密前的内容是能够读懂的,加密后的内容是& ...
- es-head部署
#一.更新centos7的库sudo yum update -y二.安装一系列文件(已安装可以不安装)sudo rpm -ivh http://dl.fedoraproject.org/pub/epe ...
- 成功解决1406, “Data too long for column ‘txt‘ at row 1“
这是因为数据库里该字段的数据类型所给的数据空间太小.MySQL将截断超过指定列宽度的任何插入值.为了让这个不报错,可以尝试切换MySQL模式不使用严格模式. SET @@global.sql_mode ...
- Spring Boot邮箱链接注册验证
Spring Boot邮箱链接注册验证 简单介绍 注册流程 [1]前端提交注册信息 [2]后端接受数据 [3]后端生成一个UUID做为token,将token作为redis的key值,用户数据作为re ...
- C++:第一个c++程序
// C++ 环境搭建: https://www.bilibili.com/video/BV1nt4y1r7Ez?t=535 // 学习资料:https://www.runoob.com/cplusp ...