腾讯云 Elasticsearch 进阶篇(二十三)Logstash 实战
- 2020 年 3 月 4 日
- 笔记
前言 |
由于目前在腾讯云Elasticsearch产品中,服务产品主要包括ES、Kibana、Xpack插件。那么,很多使用产品的客户需要把数据接入ES集群。那么比较常用的工具就是filebeat和logstash.那么今天开始我们讲讲Logstash的实用,filebeat我们后续再讲。
es-ldu6984s
一、logstash的安装、配置、使用
前面的章节中,我们讲了Logstash的相关知识以及介绍,那么今天我们讲一下它的安装、配置、使用。那么本次还是以6.8.2版本进行演示:步骤如下:
1,去官网上下载合适的产品,然后解压到指定文件夹即可。(过程略)
2,去安装目录看一下它的配置目录,这里要讲一下:默认情况下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
我们看一下启动过程:如下截图

启动过程分析:
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里没有那个插件,于是我们看看这个配置文件是怎么配置的吧?如下:

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

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

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

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

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

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