前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch学习(七)LogStash学习,手把手教你安装LogStash

Elasticsearch学习(七)LogStash学习,手把手教你安装LogStash

作者头像
一写代码就开心
发布2021-03-02 14:46:59
7160
发布2021-03-02 14:46:59
举报
文章被收录于专栏:java和python

1 什么是LogStash

ELK(Elasticsearch+Logstash+Kibana)中我们使用过Elasticsearch和Kibana,就剩下最后一个LogStash了。

官方文字说明:Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。 通俗说明:Logstash是一款强大的数据处理工具,常用作日志处理。

2 为什么使用Logstash

通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。

这样一系列流程下来,对于我们排查故障以及及时找到故障原因,造成了比较大的麻烦。因此,如果我们能把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动。

所以日志集中管理功能就可以使用ELK技术栈进行实现。Elasticsearch只有数据存储和分析的能力,Kibana就是可视化管理平台。还缺少数据收集和整理的角色,这个功能就是Logstash负责的。

3Logstash工作原理

3.1Data Source

Logstash 支持的数据源有很多。例如对于日志功能来说只能能有日志记录和日志传递功能的日志都支持,Spring Boot中默认推荐logback支持日志输出功能(输出到数据库、数据出到文件)。 我们就使用logback进行日志输出给Logstash。

3.2Logstash Pipeline

整个整体就是Logstash的功能。 在Logstash中包含非常重要的三个功能: a)Input 输入源,一般配置为自己监听的主机及端口。DataSource向指定的ip及端口输出日志,Input 输入源监听到数据信息就可以进行收集。 b)Filter 过滤功能,对收集到的信息进行过滤(额外处理),也可以省略这个配置(不做处理) c)Output 把收集到的信息发送给谁。在ELK技术栈中都是输出给Elasticsearch,后面数据检索和数据分析的过程就给Elasticsearch了。

最终效果:通过整体步骤就可以把原来一行日志信息转换为Elasticsearch支持的Document形式(键值对形式)的数据进行存储。

安装Logstash

1安装Logstash

代码语言:javascript
复制
docker pull logstash:6.8.4

2启动容器

代码语言:javascript
复制
docker run -it -p 4560:4560 --name logstash -d  logstash:6.8.4

3修改配置

代码语言:javascript
复制
进入容器
docker exec -it logstash /bin/bash
修改配置文件
vi /usr/share/logstash/config/logstash.yml
把ip修改成elasticsearch访问地址IP

4修改输入输出配置

继续在容器命令行输入

以下这个配置就是定义输入输出的目的地

代码语言:javascript
复制
vi /usr/share/logstash/pipeline/logstash.conf

删除原始的配置

代码语言:javascript
复制
配置解释说明:
input:接收日志输入配置
tcp: 协议
mode: logstash服务
port:端口,自己指定。默认4560
output:日志处理输出
elasticsearch: 交给es处理
action:es中index命令。也就是新增命令。
hosts:es的主机
index:存储日志的索引。如果不存在可以自动创建。默认的type名称为doc
一定要先启动编辑状态(点击键盘i键)在粘贴,如果没启用第一行是nput{少个i。
代码语言:javascript
复制
input {
        tcp {
                mode => "server"
                port => 4560     意思是用4560端口向logstash输入东西
        } 
}
filter {
}
output {
        elasticsearch {
                action => "index"  行为
                hosts  => "192.168.8.142:9200"
                index  => "test_log"
        }
}

5重启容器

退出容器命令行,进入到Linux终端,重启logstash容器。

代码语言:javascript
复制
docker restart logstash

6查看日志

代码语言:javascript
复制
docker logs -f logstash

以上就是启动成功

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 什么是LogStash
  • 2 为什么使用Logstash
  • 3Logstash工作原理
    • 3.1Data Source
      • 3.2Logstash Pipeline
      • 安装Logstash
        • 1安装Logstash
          • 2启动容器
            • 3修改配置
              • 4修改输入输出配置
                • 5重启容器
                  • 6查看日志
                  相关产品与服务
                  Elasticsearch Service
                  腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档