搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十五) logstash将配置写在多个文件
来源:互联网 发布:unity3d lua 热更新 编辑:程序博客网 时间:2024/06/05 06:47
摘要
我们用Logsatsh写配置文件的时候,如果读取的文件太多,匹配的正则过多,会使配置文件动辄成百上千行代码,可能会造成阅读和修改困难。这时候,我们可以将配置文件的输入、过滤、输出分别放在不同的配置文件里,甚至把输入、过滤、输出再次分离,放在不同的文件里。
这时候,后期再需要增删改查内容的时候,就容易维护了。
1、logstash如何读取多个配置文件
我们知道在启动logstash的时候,只要加上-f /you_path_to_config_file
就可以加载配置文件了,如果我们需要加载多个配置文件,只需要-f /you_path_to_config_directory
就可以了。简单说,就是在-f
后面加上目录就可以。
注意:目录后面不能加 * 号,否则只会读取一个文件,但是在读取日志文件时,*可以匹配所有,比如sys.log*可以匹配所有以sys.log开头的日志文件,如sys.log1,sys.log2等。
示例如下:
//比如 /home/husen/config/目录下有//in1.conf、in2.conf、filter1.conf、filter2.conf、out.conf这5个文件//我们使用 /logstash-5.5.1/bin/logstash -f /home/husen/config启动logtstash//logstash会自动加载这个5个配置文件,并合并成1个整体的配置文件
2、logstash多个配置文件里的input、filter、output是否相互独立
答案是:NO!
比如:
## in1.conf内容如下:input{ file{ path=>[ "/home/husen/log/sys.log" ] }}## in2.conf内容如下:input{ file{ path=>[ "/home/husen/log/error.log" ] }}## out1.conf如下elasticsearch { action => "index" hosts => "localhost:9200" index => "from_sys_log" codec => "json" }## out2.conf如下elasticsearch { action => "index" hosts => "localhost:9200" index => "from_error_log" codec => "json" }
//这几个配置文件的目的是://想把in1.conf读进来的sys.log的索引建立为from_sys_log//把in.conf读进来的error.log的索引建立为femo_error_log//logstash-5.5.1/bin/logstash -f /home/husen/config//启动之后,会发现in1.conf的日志被输出了两次,in2.conf读进来的日志也被输出了两次//结论:logstash读取多个配置文件只是简单的将所有配置文件整合到了一起!//如果要彼此独立,需要自己加字段,然后判断一下//比如读取来不同不同服务器的同样格式的日志,那么filter是可以共用的//但是输出的索引需要分别建立,以提高辨识度
3、logstash读取多个配置文件建议的配置方法
如果要在配置文件中,独立一些部分,又要共用一些部分,比如我上门提高同样的日志来自不同的服务器,需要用同样的filter,但是建立不同的索引的问题,该怎么办?
建议使用tags
或者type
这两个特殊字段,即在读取文件的时候,添加标识符在tags
中或者定义type
变量。
示例如下:
## in1.conf内容如下:input{ file{ path=>[ "/home/husen/log/sys.log" ] type => "from_sys" #tags => ["from_sys"] }}## in2.conf内容如下:input{ file{ path=>[ "/home/husen/log/error.log" ] type => "from_error" #tags => ["from_sys"] }}## out1.conf如下if [type] == "from_sys"{#if "from_sys" in [tags] elasticsearch { action => "index" hosts => "localhost:9200" index => "from_sys_log" codec => "json" }}## out2.conf如下if [type] == "from_error"{#if "from_error" in [tags] elasticsearch { action => "index" hosts => "localhost:9200" index => "from_error_log" codec => "json" }}//特别地,如果要针对不同的类型日志用不同filter来grok解析,//也可以通过类似的方法判断
嗯哼,搞定!
阅读全文
0 0
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十五) logstash将配置写在多个文件
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(二) Logstash简介及常见配置语法
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(三) logstash input output 配置
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(四) logstash codec和filter 配置
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十四) logstash grok 正则解析日志
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(一) Logstash demo演示
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(五) 通过redis扩展logstash
- Ubuntu 14.04搭建ELK日志分析系统(Elasticsearch+Logstash+Kibana)
- ELK(ElasticSearch, Logstash, Kibana)搭建日志分析平台-Logstash篇
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十二) kibana 界面使用简介
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十三) kibana 界面查询语法
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(六) ElasticSearch demo演示
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(七) elasticsearch.yml配置文件详细说明
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(九) elasticsearch简介及集群介绍
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十) elasticsearch集群部署
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(八) elasticsearch配置外网访问及常见错误处理
- ELK(ElasticSearch, Logstash, Kibana)搭建日志分析平台-Kibana篇
- ELK(ElasticSearch, Logstash, Kibana)搭建日志分析平台-Elasticsearch篇
- js做的打字小游戏~按下键盘的时候为什么没有反应,附上我的代码
- Eclipse不能创建Maven webapp项目/Eclipse创建Maven工程的webapp项目时报错
- iOS crash:[__NSCFNumber length]: unrecognized selector sent to instance 0xb000000000000053
- python绘制误差柱状图
- Android的res与assets资源的使用
- 搭建ELK(ElasticSearch+Logstash+Kibana)日志分析系统(十五) logstash将配置写在多个文件
- 仿雅虎新闻的加载自定义view
- 数据结构与算法 ------ 表,栈,和队列
- 排序算法(六):快速排序
- C语言小问题---结构体
- 购物车,增加,删除,总价
- ARKit-带你走进全新的世界(三:追踪/距离感应/AR尺子)
- 迭代
- Markdown中使用:Mathjax,Latex