腾讯云 Elasticsearch 进阶篇(二十九)Logstash讲解与实战
- 2020 年 3 月 14 日
- 筆記
一、Logstash输出插件(output)
output是Logstash的最后阶段,一个事件可以经过多个输出,而一旦所有输出处理完成,整个事件就执行完成。 一些常用的输出包括:
file: 表示将日志数据写入磁盘上的文件。
elasticsearch:表示将日志数据发送给Elasticsearch。Elasticsearch可以高效方便和易于查询的保存数据。
graphite:表示将日志数据发送给graphite,graphite是一种流行的开源工具,用于存储和绘制数据指标。
此外,Logstash还支持输出到nagios、hdfs、email(发送邮件)和Exec(调用命令执行)。
1、输出到标准输出(stdout)
stdout与之前介绍过的stdin插件一样,它是最基础和简单的输出插件,下面是一个配置实例:
output {
stdout {
codec => rubydebug———》调试、测试使用
}
}
stdout插件,主要的功能和用途就是用于调试,这个插件,在前面已经多次使用过。这里不再过多介绍。
2、保存为文件(file)
file插件可以将输出保存到一个文件中,配置实例如下:
output {
file {
path => "/data/log3/%{+yyyy-MM-dd}/%{host}_%{+HH}.log"
}
上面这个配置中,使用了变量匹配,用于自动匹配时间和主机名,这在实际使用中很有帮助。我们看一下下面得配置文件截图:
1,input{} 标准输入,也就是从键盘输入
2,output{} file:表示输出一个到一个文件; path:表示文件的路径,需要手动创建目录,后面得目录会自动创建。
3,codec 对输出得文件内容进行编码,保证输入得内容与输出得内容保持一致,进而对数据进行分析。
好,接下来,我们启动服务。看下图:bin/logstash -f config/logstash8.conf
那么我们验证一下:/data/log下是否有我们得输入文本并记录日志呢?
验证成功。其实这个过程就可以称为对系统日志的实时备份。
3,输出到elasticsearch(*****)
Logstash将过滤、分析好的数据输出到elasticsearch中进行存储和查询,是最经常使用的方法。下面是一个配置实例
output—》到ES的配置路径如下:
output {
elasticsearch {
host => ["http://vip:9200"]
index => "logstash-%{+YYYY.MM.dd}" —————->以时间为序列进行索引的生成。每天一个索引。
user => "elastic"
password => "XXXX"
}
}
上面配置中每个配置项含义如下:
l host:是一个数组类型的值,后面跟的值是elasticsearch节点的地址与端口,默认端口是9200。可添加多个地址。
l index:写入elasticsearch的索引的名称,这里可以使用变量。Logstash提供了%{+YYYY.MM.dd}这种写法。在语法解析的时候,看到以+ 号开头的,就会自动认为后面是时间格式,尝试用时间格式来解析后续字符串。这种以天为单位分割的写法,可以很容易的删除老的数据或者搜索指定时间范围内的数据。此外,注意索引名中不能有大写字母。
二、总结
那么至此,Logstash入门篇的三大插件,已经全部讲解完毕。想必通过前面的这些知识的了解学习,对于ELK有了更进一步的了解。好好复习一下吧,下面,我们再来讲一下filebeat的一些知识。
此外,别忘了,ELK 官网,你值得拥有!!