我试图让我的节点应用程序日志显示在papertrail使用pm2作为我的进程管理器。
到目前为止,我已经将pm2记录到process.json
中定义的文件中。我想把它设置在我保存日志的本地副本的地方,并将它们发送到papertrail,这样我就可以在没有ssh的情况下看到它们。
我按照papertrail启动指南并将输出添加到/etc/rsyslog.conf
,在papertrail的控制台上,我看到以下内容:
Sep 28 16:35:47 ip-172-31-16-83 sudo: ubuntu : TTY=pts/0 ; PWD=/home/ubuntu/api-nodejs ; USER=root ; COMMAND=/usr/bin/nano /etc/rsyslog.conf
Sep 28 16:35:47 ip-172-31-16-83 sudo: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
Sep 28 16:36:03 ip-172-31-16-83 sudo: pam_unix(sudo:session): session closed for user root
Sep 28 16:36:05 ip-172-31-16-83 sudo: ubuntu : TTY=pts/0 ; PWD=/home/ubuntu/api-nodejs ; USER=root ; COMMAND=/usr/bin/nano /etc/rsyslog.conf
Sep 28 16:36:05 ip-172-31-16-83 sudo: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
Sep 28 16:36:23 ip-172-31-16-83 sudo: pam_unix(sudo:session): session closed for user root
Sep 28 16:36:27 ip-172-31-16-83 sudo: ubuntu : TTY=pts/0 ; PWD=/home/ubuntu/api-nodejs ; USER=root ; COMMAND=/usr/sbin/service rsyslog restart
Sep 28 16:36:27 ip-172-31-16-83 sudo: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
Sep 28 16:36:27 ip-172-31-16-83 rsyslogd: [origin software="rsyslogd" swVersion="7.4.4" x-pid="12850" x-info="http://www.rsyslog.com"] exiting on signal 15.
Sep 28 16:36:27 ip-172-31-16-83 rsyslogd: [origin software="rsyslogd" swVersion="7.4.4" x-pid="12939" x-info="http://www.rsyslog.com"] start
Sep 28 16:36:27 ip-172-31-16-83 rsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
Sep 28 16:36:27 ip-172-31-16-83 rsyslogd: rsyslogd's groupid changed to 104
Sep 28 16:36:27 ip-172-31-16-83 rsyslogd: rsyslogd's userid changed to 101
Sep 28 16:36:27 ip-172-31-16-83 sudo: pam_unix(sudo:session): session closed for user root
有人对pm2和纸迹有经验吗?PM2是否完全绕过rsyslog,是否有一种方法可以让我以另一种方式将PM2的日志传输到papertrail ?
我建议您使用pm2总线api制作一个pm2模块,侦听日志事件(这是log:out
或log:err
)并将它们发送到您想要它们去的地方。