从syslog-ng将日志转发到splunk / graylog

时间:2014-03-10 06:11:05

标签: linux syslog splunk syslog-ng graylog2

我想将我的apache和tomcat日志转发到我的中央日志服务器。(splunk / graylog)

我有运行syslog-ng的客户端系统。

如何转发日志?

是否有必要解析日志?我不能按原样转发日志吗? 我是否还要编辑apache配置?

我试图在一周内完成它。我创建了另一个有关此问题的问题。但没有找到肝脏。 Forwarding log via syslog-ng 任何人请看这个。

UPDATE1: 这是我最新的syslog-ng.conf

source s_all {
  internal();
  unix-stream("/dev/log");
  file("/proc/kmsg" program_override("kernel: "));
  file("/var/log/apache/access.log" follow_freq(1) flags(no-parse));
  file("/var/log/apache/error.log" follow_freq(1) flags(no-parse));
};
destination d_splunk {
  udp("ec2-xxx.xxx.xxx.xxx.compute-1.amazonaws.com" port(514));
};
log {
  source(s_all); destination(d_splunk);
};

2 个答案:

答案 0 :(得分:0)

将Universal Forwarder安装到您的中央日志服务器(我假设这是与您的Splunk实例不同的框)。然后监视syslog的路径。我不太了解syslog-ng但是应该编写日志,以便它在/var/log/my_host_one/apache/access.log之类的路径中包含主机名。这样Splunk将使用正确的主机名(请参阅inputs.conf中的host_segment)。

另外要测试以确保您的UF正确连接到主Splunk实例(通过outputs.conf配置),请尝试在UF的内部日志中搜索index=_internal host=your_uf_host

答案 1 :(得分:0)

嘿,我建议您检查ansible(https://docs.ansible.com/)。而不是一直手动进行。

    - name: Configure syslog forwarding
  copy:
    content: |
      *.* @localhost:514;RSYSLOG_SyslogProtocol23Format
    dest: /etc/rsyslog.d/30-graylog.conf
    mode: 0644
    owner: root
    group: root
  notify:
    - restart collector
    - restart rsyslog

类似的东西可以解决您的问题。