适用于Linux的开源日志记录工具
如果您是Linux系统管理员,那么您将要使用的第一个工具是日志文件。 这些文件包含重要信息,可以帮助您解决影响桌面和服务器的问题。 对于许多系统管理员(特别是那些旧式的系统管理员),没有什么比检查日志文件更好的命令行。 但对于那些宁愿采用更有效(也可能是现代)方法进行故障排除的人来说,有很多选择。
在本文中,我将重点介绍Linux平台可用的一些此类工具。 我不会涉及可能特定于某个服务(例如Kubernetes或Apache)的日志记录工具,而是将重点放在可以挖掘写入/var/log的所有魔法信息深度的工具上。
说到哪......
什么是/var/log?
如果您是Linux新手,可能不知道/var/log目录包含什么。 但是,这个名字非常有说服力。 在该目录中包含来自系统的所有日志文件以及安装在操作系统上的任何主要服务(例如Apache,MySQL,MariaDB等)。 打开终端窗口并发出命令cd /var/log。 按照命令ls进行操作,您将看到所有可以查看日志文件的系统(图1)。
在/var/log/
图1:我们的ls命令显示/var/log/中可用的日志。
例如,假设您要查看syslog日志文件。 发出命令less syslog,您可以滚动浏览该特定日志的所有血腥细节。 但是如果标准终端不适合你呢? 你有什么选择? 我们来看看几个这样的选择。
日志工具Logs
如果您使用GNOME桌面(或其他,因为Logs可以安装在不仅仅是GNOME上),您可以轻松获得日志查看器,主要只是在日志文件上添加一点点GUI优点,创建一些简单的内容 它很有效。 一旦安装(从标准存储库),从桌面菜单打开日志,您将被视为一个接口(图2),允许您从各种类型的日志(重要,所有,系统,安全和硬件)中进行选择 ),以及选择启动周期(从顶部中心下拉列表),甚至搜索所有可用的日志。
记录工具
图2:GNOME Logs工具是您可以在Linux中找到的最简单的GUI日志查看器之一。
Logs是一个很好的工具,特别是如果你不是在寻找太多的花里胡哨,妨碍你查看关键的日志条目,这样你就可以排除系统故障。
KSystemLog
KSystemLog是KDE对GNOME的日志,但还有一些功能可以添加到组合中。虽然两者都使得查看系统日志文件非常简单,但只有KSystemLog包括彩色日志行,选项卡式查看,将日志行复制到桌面剪贴板,内置功能,可以直接向系统发送日志消息,读取每个日志的详细信息线,等等。 KSystemLog查看在GNOME日志中找到的所有相同日志,只有不同的布局。
在主窗口(图3)中,您可以查看任何不同的日志(来自系统日志,身份验证日志,X.org日志,日志日志),搜索日志,按日期过滤,主机,进程,消息,然后选择记录优先级。
KSystemLog
图3:KSystemLog主窗口。
使用KSystemLog创建手动日志条目。
如果单击“窗口”菜单,则可以打开一个新选项卡,您可以在其中选择要查看的其他日志/过滤器组合。从同一菜单中,您甚至可以复制当前选项卡。如果要手动将日志添加到文件,请执行以下操作:
1.打开KSystemLog。
2.单击文件>添加日志条目。
3.创建日志条目。
4.单击“OK”
KSystemLog使在KDE中查看日志成为一项非常容易的任务。
Logwatch
Logwatch不是一个奇特的GUI工具。相反,logwatch允许您设置一个日志系统,通过电子邮件向您发送重要警报。您可以通过SMTP服务器通过电子邮件发送这些警报,也可以在本地计算机上查看它们。几乎每个发行版都可以在标准存储库中找到Logwatch,因此可以使用单个命令完成安装,如下所示:
sudo apt-get install logwatch
要么:
sudo dnf install logwatch
在安装过程中,您需要选择警报的交付方式(图5)。如果您选择仅使用本地邮件传递,则需要安装mailutils应用程序(这样您就可以通过mail命令在本地查看邮件)。
Logwatch
图5:配置Logwatch警报发送方法。
所有Logwatch配置都在一个文件中处理。要编辑该文件,请发出命令sudo nano /usr/share/logwatch/default.conf/logwatch.conf。您将要编辑MailTo = option。如果您在本地查看,请将其设置为您希望日志发送到的Linux用户名(例如MailTo = linuxidc)。如果要将这些日志发送到外部电子邮件地址,则还需要将MailFrom = option更改为合法的电子邮件地址。在同一配置文件中,您还可以设置详细级别和要发送的日志范围。保存并关闭该文件。
配置完成后,您可以使用以下命令发送第一封邮件:
logwatch --detail Med --mailto ADDRESS --service all --range today
Where ADDRESS is either the local user or an email address.
有关使用Logwatch的更多信息,请发出命令man logwatch。阅读手册页以查看可与该工具一起使用的不同选项。
Rsyslog
Rsyslog是将远程客户端日志发送到集中式服务器的便捷方式。 假设您有一台Linux服务器要用于从数据中心的其他Linux服务器收集日志。 使用Rsyslog,这很容易完成。 必须在所有客户端和集中式服务器上安装Rsyslog(通过发出sudo apt-get install rsyslog之类的命令)。
安装后,在集中式服务器上创建/etc/rsyslog.d/server.conf文件,其中包含以下内容:
# Provide UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provide TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
# Use custom filenaming scheme
$template FILENAME,"/var/log/remote/%HOSTNAME%.log"
*.* ?FILENAME
$PreserveFQDN on
保存并关闭该文件。 现在,在每台客户机上,使用以下内容创建文件/etc/rsyslog.d/client.conf:
$PreserveFQDN on
$ActionQueueType LinkedList
$ActionQueueFileName srvrfwd
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
*.* @@SERVER_IP:514
SERVER_IP是中央服务器的IP地址。 保存并关闭该文件。 使用以下命令在所有计算机上重新启动rsyslog:
sudo systemctl restart rsyslog
您现在可以使用命令查看集中式日志文件(在集中式服务器上运行):
tail -f /var/log/remote/*.log
tail命令允许您实时查看这些文件。 您应该看到包含客户端主机名的日志条目(图6)。
Rsyslog
图6:显示已连接客户端条目的Rsyslog。
Rsyslog是一个很棒的工具,用于创建单个入口点以查看所有Linux服务器的日志。
总结
本文仅涉及在Linux平台上找到的日志工具的表面。 并且上述每个工具都能够胜过此处概述的内容。 但是,此概述应该为您提供一个开始漫长一天的Linux日志文件之旅的地方。