Linux下的日志记录技巧 (linux 写log)

在Linux系统运营中,日志记录是极其重要和必要的,无论是出于调试和排错还是安全的考虑。Linux提供了一系列的日志记录工具,每个工具都有不同的应用范围和优缺点。在本篇文章中,我们将讨论一些在Linux系统下的日志记录技巧,包括:

1. 使用rsyslogd:rsyslogd是一种日志守护进程,它可以从多个客户端收集日志并将它们发送到一台服务器上。它的优点是可以按需记录不同级别的日志,并可以自动将日志分成不同的文件。可以使用以下命令检查rsyslogd是否安装:

“`bash

$ systemctl status rsyslog

“`

2. 使用journalctl:journalctl是用于访问Linux系统日志的命令,它不仅可以列出所有的系统日志信息,还可以通过不同的选项来过滤和搜索日志。以下是一些常见的journalctl选项:

– -u:根据单元名过滤日志

– -b:仅显示特定引导过程的日志

– –since和–until:指定日志记录的时间范围

– -f:实时显示最新的日志信息

例如,要查看ssh服务在最近一小时内的所有日志信息,可以使用以下命令:

“`bash

$ journalctl -u sshd –since “1 hour ago”

“`

3. 使用logrotate:随着时间的推移,日志文件可能会变得非常大,这可能会导致存储空间的浪费。为了解决这个问题,可以使用logrotate来轮询并压缩日志文件。logrotate是一个Shell脚本,定期压缩或删除旧的日志文件,并为每个压缩的日志文件创建一个新的日志文件。您可以使用以下命令来测试您的日志轮换配置:

“`bash

$ logrotate -d /etc/logrotate.conf

“`

注意:logrotate默认每天执行一次,可以修改配置文件/etc/logrotate.d/rsyslog,以更改轮询时间。

4. 配置syslog-ng:syslog-ng是一个开源的日志守护进程,它可以收集、处理和转发日志数据。它有许多高级功能,如过滤、标记和分类日志等。要开始使用syslog-ng,需要编辑配置文件/etc/syslog-ng/syslog-ng.conf。以下是一个简单的syslog-ng.conf配置文件示例,该文件将接收本地日志并将其传输到远程syslog服务器:

“`bash

@version: 3.3

# Source

source s_local {

system();

internal();

};

destination d_remote{

syslog(“syslog.example.com” port(514));

};

# Logging

log {

source(s_local);

destination(d_remote);

};

“`

5. 管理syslog文件权限:为了保证系统的安全,应对日志文件的访问权限进行管控。您可以使用以下命令来更改syslog日志文件的访问权限:

“`bash

$ sudo chmod 640 /var/log/syslog

$ sudo chown syslog:adm /var/log/syslog

“`

以上是Linux下的一些日志记录技巧,其中包括使用rsyslogd来收集日志、使用journalctl访问日志、使用logrotate轮询并压缩日志文件、配置syslog-ng来处理日志数据以及管理syslog文件权限。这些技巧可以帮助系统管理员更好地管理日志,并且减少系统错误和安全漏洞。

相关问题拓展阅读:

linux /var/log/ 记录哪些日志

以下介绍的是20个位于/var/log/ 目录之下的日志文件。其中一些只有特定版本采用,如dpkg.log只能在基于Debian的系统中看到。

/var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。

/var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。

/var/log/auth.log — 包含系统授权信息,包括用户登录和使用的权限机制等。

/var/log/boot.log — 包含系统启动时的日志。

/var/log/daemon.log — 包含各种系统后台守护进程日志信息。

/var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。

/var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。

/var/log/lastlog — 记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。

/var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。

/var/log/user.log — 记录所有等级用户信息的日志。

/var/log/Xorg.x.log — 来自X的日志信息。

/var/log/alternatives.log – 更新替代信息都记录在这个文件中。

/var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。

/var/log/cups — 涉及所有打印信息的日志。

/var/log/anaconda.log — 在安装Linux时,所有安装信息都储存在这个文件中。

/var/log/yum.log — 包含使用yum安装的软件包信息。

/var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。

/var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。

/var/log/wtmp或/var/log/utmp — 包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。

/var/log/faillog – 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

除了上述Log文件以外, /var/log还基于系统的具体应用包含以下一些子目录:

/var/log/httpd/或/var/log/apache2 — 包含服务器access_log和error_log信息。

/var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。

/var/log/mail/ – 这个子目录包含邮件服务器的额外日志。

/var/log/prelink/ — 包含.so文件被prelink修改的信息。

/var/log/audit/ — 包含被 Linux audit daemon储存的信息。

/var/log/samba/ – 包含由samba存储的信息。

/var/log/sa/ — 包含每日由sysstat软件包收集的sar文件。

/var/log/sssd/ – 用于守护进程安全服务。

除了手动存档和清除这些日志文件以外,还可以使用logrotate在文件达到一定大小后自动删除。可以尝试用vi,tail,grep和less等命令查看这些日志文件。

关于linux 写log的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux下的日志记录技巧 (linux 写log)