腾讯云 Elasticsearch 进阶篇(二十三)Logstash讲解与实战

前言 |

由于目前在腾讯云Elasticsearch产品中,服务产品主要包括ES、Kibana、Xpack插件。那么,很多使用产品的客户需要把数据接入ES集群。那么比较常用的工具就是filebeat和logstash.那么今天开始我们讲讲Logstash的实用,filebeat我们后续再讲。

es-ldu6984s

一、logstash的安装、配置、使用

前面的章节中,我们讲了Logstash的相关知识以及介绍,那么今天我们讲一下它的安装、配置、使用。那么本次还是以6.8.2版本进行演示:步骤如下:

1,去官网上下载合适的产品,然后解压到指定文件夹即可。(过程略)

2,去安装目录看一下它的配置目录,这里要讲一下:默认情况下Logstash有一个系统配置文件(一般不需要修改),在启动Logstash服务的时候,需要指定一个第三方的配置文件才能启动。

logstash系统默认的配置文件

logstash

3,启动服务,需要指定一个第三方的配置文件,以*.conf文件结尾,那么这个配置文件是以什么格式的呢?具体如下:

input {

#输入插件

}

filter {

#过滤匹配插件----》可选项

}

output {

#输出插件

}

从上面可以看到: Logstash配置文件有三部分组成,其中input、output部分是必须配置,filter部分是可选配置,而filter就是过滤器插件,可以在这部分实现各种日志过滤功能。

4,启动一个logstash服务,使用$PATH/bin/logstash -f *.conf“”命令启动。列如如下:

/usr/local/logstash-6.8.2/bin/logstash -f /usr/local/logstash-6.8.2/config/test_logstash.conf

我们看一下启动过程:如下截图

Logstash启动过程

启动过程分析:

1,检查系统配置、日志级别配置

2,发现错误提示“ERROR][logstash.plugins.registry] Tried to load a plugin's code, but failed,:exception=>#<LoadError: no such file to load -- logstash/filters/json_encode>”

3,然后logstash agent没有正常启动,然后Logstah服务关闭。

4,Logstash,启动失败。

二、logstash故障解决、启动配置文件分析

通过上面的故障提示,应该提示我们Logstash里没有那个插件,于是我们看看这个配置文件是怎么配置的吧?如下:

test.logstash.conf文件

将某一个文本里的内容中,带addition字段的文本用JSON编码的形式进行输出。那么我们根据上面的提示,看看我们的Logstash里到底有没有这个叫json_encode的插件呢?我们去看看

$PATH/bin/logstash-plugin list

pluginlist 清单

结果:发现真没有这个插件,那么我们安装一下这个插件:安装过程时间比较长。。。。

安装插件

接下来,安装完毕,我们再来启动Logstash,使用如上命令

Logstash启动成功

看看JPS,有进程否,发现是有的

查看Logstash进程

服务也起来啦,再来看看数据有没有入到ES里来?数据是有的。

logstash数据输出验证

三、总结

本节从实际应用出发,讲了logstash配置并传输数据到ES的过程。在启动过程中,我们启动故障,通过查看启动日志,排查故障原因,进而服务启动成功。后续,我们针对这logstash插件做更进一步的实战演练。

logstash-filter-json_encode 将字段序列化为JSON的插件