假设您有两种非常不同类型的日志,例如技术和业务日志,您需要:
gelf
输出将原始技术日志路由到graylog2服务器,elasticsearch_http
输出将json业务日志存储到elasticsearch集群中.我知道,Syslog-NG
例如,配置文件允许定义几个不同的输入,然后可以在分派之前单独处理; 什么Logstash
似乎无法做到.即使一个实例可以使用两个特定的配置文件启动,所有日志都采用相同的通道并应用相同的处理...
我应该运行尽可能多的实例,因为我有不同类型的日志吗?
我安装了Logstash来解析apache文件.我花了很多时间来设置正确的,我总是尝试真正的日志.我注意到(正如文档所说)logstash"记住"它在文件中的位置.现在我的设置很好,我希望Logstash"忘记".这似乎比我更难.我已经做了以下事情:
用过的: start_position => "beginning"
从elastissearch中删除了完整的"数据"文件夹(并先将其停止)
看看logstash打开哪些文件lsof -p PID
并删除了所有有希望的东西(在我的例子中/tmp/jffi*.tmp
)
Logstash仍然不会忘记并解析日志所在文件夹中的"新鲜"文件
有任何想法吗?
我们正在定义一个架构,用于收集Logstash托运人的日志信息,这些托架安装在各种机器中,并将数据集中在一个弹性搜索服务器中,并使用Kibana作为图形层.我们需要在Logstash发货人和elasticsearch之间建立一个可靠的消息传递系统来授权交付.在Logstash发货人和弹性搜索之间选择Redis over RabbitMQ作为数据代理/消息传递系统时应该考虑哪些因素,反之亦然?
是否可以使用Kibana查询字段的不同/唯一计数?我使用弹性搜索作为我的Kibana后端.
如果是这样,查询的语法是什么?下面是我想查询Kibana界面的链接:http://demo.kibana.org/#/dashboard
我正在使用logstash解析nginx访问日志并将数据存储到弹性搜索中.然后,我使用Kibana运行查询并在图表中可视化我的数据.具体来说,我想知道使用Kibana在特定时间范围内的唯一IP地址的数量.
在我的一个项目中,我计划将ElasticSearch与mysql一起使用.我已经成功安装了ElasticSearch.我能够分别管理ES中的索引.但我不知道如何用mysql实现相同的功能.
我已阅读了几份文件,但我有点困惑,没有明确的想法.谁能帮帮我吗?
提前致谢.
我想知道使用Logstash Grok过滤器的最佳方法是什么.我有一些特定日志条目的过滤器,不适用于所有条目.那些不适用的标签始终生成_grokparsefailure标签.例如,我有一个grok过滤器,用于每个日志条目,它工作正常.然后我有另一个过滤器,用于带有回溯的错误消息.回溯过滤器为每个没有回溯的日志条目抛出grokparsefailure.
如果没有匹配而不是添加parsefailure标记,我宁愿让它只是通过规则.我使用parsefailure标签来查找未正确解析的内容,而不是与特定过滤器不匹配的内容.也许只是命名"解析失败"才能得到我.对我而言,这意味着过滤器出现了问题(例如格式错误),而不是它不匹配.
所以问题是,我该如何处理?
使用过滤器模式可选吗?
(ab)使用tag_on_failure选项将其设置为空[]
使用诸如"if ifback in message"之类的东西使过滤器有条件
还有别的什么我不考虑?
提前致谢.
编辑
我采取了在过滤器周围添加条件的路径:
if [message] =~ /took\s\d+/ {
grok {
patterns_dir => "/etc/logstash/patterns"
match => ["message", "took\s+(?<servicetime>[\d\.]+)"]
add_tag => [ "stats", "servicetime" ]
}
}
Run Code Online (Sandbox Code Playgroud)
仍然对反馈感兴趣.什么被认为是"最佳实践"?
Graylog2和Kibana之间的主要区别是什么?
我们已经使用了Graylog2,但我必须承认我并不喜欢UI.只是想知道如果切换到Kibana可能会有所帮助.
我有日志文件进入ELK堆栈.我想复制一个字段(foo)以便在其上执行各种突变,但是字段(foo)并不总是存在.
如果foo不存在,则仍会创建bar,但会为其分配文字字符串 "%{foo}"
如果字段存在,我怎样才能执行变异?
我正在尝试做这样的事情.
if ["foo"] {
mutate {
add_field => "bar" => "%{foo}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含数字的字段.我想要一个过滤器,显示所有小于常量值的日志.当我尝试添加新的查询过滤器时,我只能看到一个查询字符串选项.
我正在使用ELK从我的日志文件创建仪表板.我有一个包含价值ID和"成功" /"失败"值,显示与给定ID的操作是成功还是失败的条目的日志文件.每个操作/ id可以无限次地失败并且最多可以成功一次.在我的Kibana仪表板中,我想显示每个操作ID的"失败"值的日志条目计数,但我想过滤掉id存在"成功"日志条目的情况.即我只对从未成功的操作感兴趣.任何可以达到此目的的技巧提示?