目前我有以下设置。
Syslog – > Logstash – > ElasticSearch – > Kibana
Logstash正在创build一个每日索引“/etc/elasticsearch/data/test-elasticsearch/nodes/0/indices/logstash-2014.02.04”,我正在通过Kibana查看所有的日志。 我们希望使用kibana-authentication-proxy设置来设置一些基于用户的访问控制,因为它支持每用户kibana索引。 现在你可以为用户A使用索引kibana-int-userA,为用户B使用kibana-int-userB我想把所有从logstash进入的日志放在位置为“/ var / log / UNIX / *”的地方。日志“发送到unix-2014.02.04的新索引,而不是logstash。 这样我可以使用Kibana身份validation代理给我的UNIX用户只能访问他们的日志。 我已经读了一些关于创build映射,但不知道如何将它们结合在一起。 我看到你可以用API调用做各种各样的事情,但是如果我可以从一开始就在elasticsearch.yml文件中设置所有这些,我们就好奇了。
谢谢,
埃里克
我发现你可以在logstashconfiguration中使用input和输出filter来做到这一点。 新的如果方式如下所示,但我还没有得到它的工作。
input { file { type => "unixlogs" path => "/var/log/UNIX/*.log" } } output { if [type] == "unixlogs" { elasticsearch { host => "localhost" index => "unix-%{+YYYY.MM.dd}" } } }
以下是我已经开始工作的较早的方法。
file { type => "syslog" exclude => ["*.gz"] start_position => "end" path => [ "/var/logs/Security/*.log"] } file { type => "unix-syslog" exclude => ["*.gz"] start_position => "end" path => [ "/var/logs/UNIX/*.log"] } output { elasticsearch { type => "unix-syslog" embedded => "false" host => "XXX" cluster => "my-elasticsearch" index => "unix-%{+YYYY.MM.dd}" } elasticsearch { embedded => "false" host => "XXX" cluster => "my-elasticsearch" } }
以最高的方式,它只会写入你告诉它的一个索引。 最后,UNIX日志将写入到unix索引和通用索引,因为它不是if,just和。