使用 Papertrail 服务进行远程日志记录
管理 Linux, Windows 等服务器甚至路由器等嵌入式设备时,常常需要查看系统日志、应用日志来确认系统安全情况、确认服务运行状况等。当只有单台服务器需要管理时,我们可以远程登入服务器查看日志,而当有多台服务器需要管理时,一一登入查看日志就显得不便了。因而我们可以考虑采用远程日志记录的方案,来集中化的管理多台服务器的日志。
远程日志记录带来的另一个额外的好处是,即使服务器宕机、损坏等,由于日志同时记录在远程服务器上,我们不会丢失已记录的日志。集中化的日志管理,也使得对日志的分析、备份等操作变得更为简便。
本文介绍了利用 Papertrail 所提供的日志管理记录服务来远程记录日志的一些配置细节。
通过我的邀请码 2b4b27
注册可以额外获得持续一年每月 50MB 的额外日志记录容量。
首先,我们需要进入 Papertrail 网站,注册账号。注册完成后,我们会得到远程日志记录服务器的域名和端口号,会在随后的配置中用到。
确认系统所采用的日志系统
执行以下命令:
ls -d /etc/*syslog*
- 如果有列出
rsyslog.conf
,那么系统采用rsyslog
进行日志记录管理; - 如果有列出
syslog-ng.conf
,那么系统采用syslog-ng
进行日志记录管理; - 如果有列出
syslog.conf
,那么系统采用syslog
进行日志记录管理; - 如果都没有,且系统存在
systemctl
,journalctl
等命令,那么系统采用systemd-journald
进行日志记录,journalctl
进行日志管理。
配置日志系统进行远程日志记录
根据系统所采用的日志系统,进行相对应的配置。
配置使用 rsyslog 的系统
对于使用 rsyslog 的系统,编辑 /etc/rsyslog.conf
文件,在文件最后添加如下内容:
*.* @<host>.papertrailapp.com:<port>
注意将上文中的 <host>
以及 <port>
换为实际的内容。
随后,重启服务即可:
sudo service rsyslog restart
配置使用 systemd 的系统
对于使用 systemd 的系统,我们可以建立一个 systemd 的服务来将日志转发到远程服务器。
转发日志时需要使用 ncat
命令或 socat
命令,两者选其一即可。
ncat
1. 使用 ncat
命令包含在 nmap
包中,我们可以执行以下命令来安装:
# Arch Linux
sudo pacman -S nmap --noconfirm
# CentOS / Fedora
sudo yum install nmap -y
# Debian / Ubuntu
sudo apt-get install nmap -y
socat
2. 使用 socat
命令包含在 socat
包中,我们可以执行以下命令来安装:
# Arch Linux
sudo pacman -S socat --noconfirm
# CentOS / Fedora
sudo yum install socat -y
# Debian / Ubuntu
sudo apt-get install socat -y
使用 socat
命令通过 SSL 连接 Papertrail 的服务时,还需要验证本地保存的服务器的证书,因此要预先下载保存:
cd /etc
sudo curl -O https://papertrailapp.com/tools/papertrail-bundle.pem
随后新建 /etc/systemd/system/papertrail.service
服务文件,内容如下:
[Unit]
Description=Papertrail
After=systemd-journald.service
Requires=systemd-journald.service
[Service]
# 如使用 ncat 则移除下一行行首的 #
#ExecStart=/bin/sh -c "journalctl -f | ncat --ssl <host>.papertrailapp.com <port>"
# 如使用 socat 则移除下一行行首的 #
#ExecStart=/bin/sh -c "journalctl -f | socat - SSL:<host>.papertrailapp.com:<port>,cafile=/etc/papertrail-bundle.pem"
TimeoutStartSec=0
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
注意将上文中的 <host>
以及 <port>
换为实际的内容。
创建完服务文件以后,执行以下命令启动服务并设置开机自启:
sudo systemctl start papertrail
sudo systemctl enable papertrail
完成后,可以执行以下命令确认服务正常启动:
journalctl -f -u papertrail
参考:Configuring centralized logging from systemd · Papertrail log management