使用Rails Elastic Beanstalk配置rsyslog

11

我在elastic beanstalk上为rails应用程序配置了远程日志记录。我想从/var/log/puma/puma.log获取日志,但只获取一些内核和系统信息。 这是我的配置文件.ebextensions/papertrail.config

packages:
  yum:
    rsyslog: []
    rsyslog-gnutls: []
files:
  "/etc/rsyslog.d/01-udp.conf":
    mode: "000640"
    owner: root
    group: root
    content: |
      $ModLoad imudp
      $UDPServerRun 514
  "/etc/rsyslog.d/02-papertrail-tls.conf":
    mode: "000640"
    owner: root
    group: root
    content: |
      $DefaultNetstreamDriverCAFile /etc/papertrail-bundle.pem # trust these CAs
      $ActionSendStreamDriver gtls # use gtls netstream driver
      $ActionSendStreamDriverMode 1 # require TLS
      $ActionSendStreamDriverAuthMode x509/name # authenticate by hostname
      $ActionSendStreamDriverPermittedPeer *.papertrailapp.com
  "/etc/rsyslog.d/03-logfile-config.conf":
    mode: "000640"
    owner: root
    group: root
    content: |
      $ModLoad imfile
      $InputFileName /var/log/puma/puma.log
      $InputFileTag api
      $InputFileStateFile api-staging
      $InputFileSeverity error
      $InputFileFacility local3
      $InputRunFileMonitor
  "/etc/rsyslog.d/04-papertrail.conf":
    mode: "000640"
    owner: root
    group: root
    content: |
      $LocalHostName api-staging

container_commands:
  01_copy_ca_certs:
    command: 'cp ./.ebextensions/papertrail-bundle.pem /etc/papertrail-bundle.pem'
  02_install_rsyslog_config:
    command: '/bin/echo "*.* @${SYSLOG_HOST}" >> /etc/rsyslog.d/04-papertrail.conf'
  03_restart_rsyslog:
    command: 'sudo service rsyslog restart'

但我在Papertrail上只能获取到一些信息,例如:

Nov 03 21:28:00 api-staging kernel:  imklog 5.8.10, log source = /proc/kmsg started.
Nov 03 21:28:00 api-staging rsyslogd:  [origin software="rsyslogd" swVersion="5.8.10" x-pid="32340" x-info="http://www.rsyslog.com"] start
Nov 03 23:50:41 api-staging kernel:  Kernel logging (proc) stopped.
Nov 03 23:50:41 api-staging rsyslogd:  [origin software="rsyslogd" swVersion="5.8.10" x-pid="32340" x-info="http://www.rsyslog.com"] exiting on signal 15.
Nov 04 00:51:56 api-staging kernel:  imklog 5.8.10, log source = /proc/kmsg started.
Nov 04 00:51:56 api-staging rsyslogd:  [origin software="rsyslogd" swVersion="5.8.10" x-pid="15883" x-info="http://www.rsyslog.com"] start
Nov 04 00:53:42 api-staging kernel:  Kernel logging (proc) stopped.

如果您对这个问题有经验,请帮助我。谢谢!


1
我也遇到了这个问题,但是我不知道为什么!非常令人沮丧。我已经设置了赏金,希望我们能得到一个答案,或者如果你找到了一个 @1Rhino,那么你可以更新一下。 - Kevin Willock
@KevinWillock 感谢您的悬赏。我会在找到解决方案或者有进展时及时更新并通知您。 - 1Rhino
你尝试过先使用未加密的日志记录使其工作吗? - Mike Gorski
1个回答

1

您可能会遇到许多潜在问题,这里无法一一列举。由于日志系统中包含文件访问,因此您的方法会变得更加复杂。仅尝试抓取日志文件(puma.log)最多也是脆弱的,在部署环境不同的情况下可能会导致许多可能的隐晦故障。

我怀疑日志数据根本没有传递到日志守护程序,因此从未传递到PaperTrail。

我建议您重新配置应用程序,通过UDP直接与日志守护程序通信,如此处所述:

https://www.thoughtworks.com/mingle/infrastructure/2015/06/10/simple-solution-for-papertrail-on-elasticbeanstalk.html

一旦您进行了此更改,我相信您的问题将得到解决。至少它将变得更容易进行故障排除,并且在将来会更加可靠。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接