rsyslog将日志文件转发给elasticsearch

时间:2015-04-28 23:41:35

标签: logging elasticsearch rsyslog

我遇到了困难,得到了一个非常基本的rsyslog动作。我希望它能抓取一个文件并使用elasticsearch模块转发它。不幸的是,我无法弄清楚如何通过规则集将操作与操作绑定。

module(load="imfile" PollingInterval="10")
module(load="omelasticsearch")

template(name="logstash-index"
  type="list") {
    constant(value="logstash-")
    property(name="timereported" dateFormat="rfc3339" position.from="1" position.to="4")
    constant(value=".")
    property(name="timereported" dateFormat="rfc3339" position.from="6" position.to="7")
    constant(value=".")
    property(name="timereported" dateFormat="rfc3339" position.from="9" position.to="10")
}

template(name="plain-syslog"
  type="list") {
    constant(value="{")
      constant(value="\"@timestamp\":\"")     property(name="timereported" dateFormat="rfc3339")
      constant(value="\",\"host\":\"")        property(name="hostname")
      constant(value="\",\"severity\":\"")    property(name="syslogseverity-text")
      constant(value="\",\"facility\":\"")    property(name="syslogfacility-text")
      constant(value="\",\"tag\":\"")   property(name="syslogtag" format="json")
      constant(value="\",\"message\":\"")    property(name="msg" format="json")
    constant(value="\"}")
}

ruleset (name="somename") {
action(type="omelasticsearch"
    template="plain-syslog"
    searchIndex="logstash-index"
    server="10.10.10.5"
    serverport="9200"
    bulkmode="on"
    queue.type="linkedlist"
    queue.size="5000"
    queue.dequeuebatchsize="300"
    action.resumeretrycount="-1"
    dynSearchIndex="on")
}

input(type="imfile"
      File="/var/log/haproxy.log"
      Tag="haproxy"
      StateFile="state-haproxy"
      Severity="notice"
      escapelf="on"
      readMode="2"
      Facility="local7"
      ruleset="somename")

知识渊博的人可以修复我的代码尝试(并且可能会显示同时转发多个文件的示例吗?)

PS。我让它工作的一种方法是指导一个服务(haproxy)登录到local7(例如),然后将rsyslog动作绑定到local7。*,但这只是一个临时的解决方法,因为我需要能够转发文件..

0 个答案:

没有答案