Linux常见问题-获取日志方法总结(Ubuntu/Debian)

news/2025/2/14 1:29:01/

1 日志基本路径和基础查看方法

在 Ubuntu 或 Debian 11 系统中,可以通过不同的日志文件来获取系统日志和内核日志。日志常见路径如下:

  • /var/log/syslog:包含系统的整体日志,包括各种系统事件和服务日志。
  • /var/log/auth.log:记录用户认证和授权相关的日志,如登录、sudo 使用等。
  • /var/log/kern.log:内核相关的日志,包括硬件和驱动程序问题。
  • /var/log/dmesg:包含内核环缓冲区的消息,可以用来查看系统启动期间的信息。

说明:这些日志一般都是有多个,这里以kern.log为例,一般从下到上的时间顺序,如下所示:

-rw-r-----   1 syslog            adm               1662 2月  6 06:58 kern.log
-rw-r-----   1 syslog            adm             366757 2月  3 00:00 kern.log.1
-rw-r-----   1 syslog            adm               6504 1月 25 12:24 kern.log.2.gz
-rw-r-----   1 syslog            adm              16436 1月 17 21:31 kern.log.3.gz
-rw-r-----   1 syslog            adm              51381 1月 11 23:25 kern.log.4.gz

这里可以使用以下命令查看这些日志文件的内容,如下所示:

$cat /var/log/syslog
$cat /var/log/auth.log
$cat /var/log/kern.log
$cat /var/log/dmesg

如果想实时监视日志文件的更新,可以使用 tail 命令加上 -f 参数如下:

$tail -f /var/log/syslog
$tail -f /var/log/auth.log
$tail -f /var/log/kern.log
$tail -f /var/log/dmesg

2 日志查看和过滤工具

除了直接查看日志文件之外,还有一些常用的工具可以帮助你抓取和分析系统日志和内核日志。以下是一些常见的工具:

2.1 journalctl

journalctl是 systemd 系统日志记录器的命令行工具,用于查看和分析系统日志。它可以以可读的格式显示日志,并支持按时间、单元(服务)、PID 等进行过滤和搜索。它提供了许多参数和选项,用于过滤、搜索和格式化日志输出。以下是 journalctl 常见的参数和使用示例:

@1 基本用法总结如下:

#查看最新的系统日志:
$journalctl
#查看指定单位(服务)的日志:
$journalctl -u unit-name.service
#查看指定用户的日志:
$journalctl -u user-name
#查看指定时间范围内的日志:
$journalctl --since "2023-12-01 00:00:00" --until "2023-12-02 23:59:59"

@2 过滤和搜索总结如下:

#根据优先级过滤日志。其中,priority 可以是数字(0 至 7)或对应的名称(如 emerg、alert、crit、err、warning、notice、info、debug):
$journalctl -p priority
#根据日志来源过滤日志:
$journalctl -b SYSLOG_IDENTIFIER=source-name
#搜索特定关键字的日志,这将搜索包含关键字的日志消息:
$journalctl -t keyword

@3 输出格式:

#以可读的格式显示日志:
$journalctl -o short
#以 JSON 格式显示日志:
$journalctl -o json
#以详细格式显示日志:
$journalctl -o verbose
#以特定字段的格式显示日志:
$journalctl -o field --field=FIELD_NAME

2.2 dmesg

dmesg 是一个用于读取和打印内核环缓冲区消息的命令。它可以查看系统启动信息、硬件设备和内核模块相关的日志。以下是 dmesg 常见的参数和使用示例总结:

#查看系统启动信息:
$dmesg
#以逆序方式查看最新的内核日志:
$dmesg -r
#仅显示指定级别的内核日志(可用级别:emerg, alert, crit, err, warning, notice, info, debug):
$dmesg --level=LEVEL
#过滤显示包含指定关键字的内核日志:
$dmesg --grep=KEYWORD
#限制输出的行数:
$dmesg -n NUM_LINES

2.3 syslog-ng

syslog-ng是一个高度可配置的系统日志守护进程,它可以收集、过滤和转发系统日志。它支持多种日志源和目标,并提供灵活的日志处理和存储功能。

以下是一个简单的使用案例:

#安装 syslog-ng
$sudo apt-get install syslog-ng
#创建一个自定义的 syslog-ng 配置文件
$sudo vim /etc/syslog-ng/conf.d/myconfig.conf

在 myconfig.conf 文件中,可以定义日志源、过滤规则和目标。以下是一个简单的demo示例:

# 定义日志源为本地系统日志
source s_local {system();
};# 过滤规则:仅保留来自特定设备的日志
filter f_myfilter {host("192.168.1.100");
};# 定义目标为远程日志服务器
destination d_remote {syslog("192.168.2.200" port(514));
};# 配置日志源、过滤规则和目标的关联
log {source(s_local);filter(f_myfilter);destination(d_remote);
};

保存并关闭文件后,重新启动 syslog-ng 服务:

$sudo systemctl restart syslog-ng

这个示例配置将从本地系统收集日志,然后根据过滤规则将特定设备的日志转发到远程日志服务器。

2.4 rsyslog

类似于 syslog-ng,rsyslog也是一个常见的系统日志守护进程。它可以收集、转发和处理系统日志,并支持各种配置选项和插件。

以下是一个简单的使用案例:

#安装 rsyslog
$sudo apt-get install rsyslog
#创建一个自定义的 rsyslog 配置文件
$sudo vim /etc/rsyslog.d/myconfig.conf

在 myconfig.conf 文件中,你可以定义日志源、过滤规则和目标。以下是一个简单的demo示例:

# 过滤规则:仅保留来自特定设备的日志
if $fromhost-ip == '192.168.1.100' then {action(type="omfwd" target="192.168.2.200" port="514" protocol="udp");
}

保存并关闭文件后,重新启动 rsyslog 服务:

$sudo systemctl restart rsyslog

这个示例配置将根据过滤规则将来自特定设备的日志转发到远程日志服务器。

2.5 logrotate

logrotate是一个实用程序,用于管理日志文件的轮转。它可以自动压缩和归档旧的日志文件,以便节省磁盘空间并确保日志文件不会无限增长。

以下是一个简单的使用案例:

# 创建一个自定义的 logrotate 配置文件
$sudo vim /etc/logrotate.d/mylog

在 mylog 文件中,你可以指定要轮转的日志文件、轮转频率、保存的旧日志文件数量等。以下是一个简单的demo示例:

# 轮转 /var/log/mylog.log 文件,每天轮转一次,保留最近的 7 个旧日志文件
/var/log/mylog.log {dailyrotate 7compress
}

保存并关闭文件后,logrotate 将根据配置文件的设置定期轮转日志文件。

2.6 总结

  • 这些工具提供了更灵活和高级的功能,能够更方便地查看、分析和管理系统日志和内核日志。可以根据自己的需求选择适合的工具来使用。
  • 注意,可能需要使用 sudo 或以 root 用户身份运行这些命令来访问一些日志文件,特别是位于 /var/log 目录下的文件。

http://www.ppmy.cn/news/1264080.html

相关文章

球上进攻^^

欢迎来到程序小院 球上进攻 玩法&#xff1a;点击鼠标走动躲避滚动的球球&#xff0c;球球碰到即为游戏结束&#xff0c;看看你能坚持多久&#xff0c;快去玩吧^^。开始游戏https://www.ormcc.com/play/gameStart/214 html <div id"game" class"game" …

线上盲盒小程序,开启互联网盲盒时代

近年来&#xff0c;盲盒经济在国内非常火爆&#xff0c;各类盲盒品牌层出不穷&#xff0c;深受国内外年轻人、消费者的喜爱。 目前&#xff0c;根据数据显示&#xff0c;盲盒市场不仅在线下异常火热&#xff0c;线上盲盒也是成为了大众的新选择。各类电商平台中盲盒的成交额更…

C语言_常见位操作

C语言_常见位操作 文章目录 C语言_常见位操作一、位操作函数二、代码示例 一、位操作函数 设置某位为1或者对某位清0、获取某位的值、对某位取反 /*对某位置1*/ unsigned Setbit(unsigned x,int n) {return x | 1 << n; }/*对某位清0*/ unsigned Resetbit(unsigned x,…

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 29 章:ChatGPT 插件

要求CHATGPT高质量回答的艺术&#xff1a;提示工程技术的完整指南—第 29 章&#xff1a;ChatGPT 插件 这是 ChatGPT 的另一个圣杯。它将彻底改变你使用 ChatGPT 的方式。ChatGPT 插件本质上是将 ChatGPT 的功能扩展到文本输出之外。它允许你上传图片、视频、音频和 CSV 文件&…

nginx常用笔记备忘

#user nobody; #工作进程数&#xff0c;一般设置为cpu核心数 worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { #最大连接数&#xff0c;一般设置为cpu*20…

基于Java会员管理系统

基于Java会员管理系统 功能需求 1、会员信息管理&#xff1a;该系统需要提供会员信息管理功能&#xff0c;包括会员的姓名、性别、年龄、联系方式等基本信息。同时&#xff0c;还需要提供会员的消费记录、积分、优惠券等信息的管理。 2、会员注册和登录&#xff1a;系统需要…

【开源】基于Vue+SpringBoot的固始鹅块销售系统

项目编号&#xff1a; S 060 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S060&#xff0c;文末获取源码。} 项目编号&#xff1a;S060&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固…

服务器无法访问外网是怎么回事

1951年&#xff0c;第一台商业电子计算机UNIVAC I投入使用&#xff0c;从此主机机房进入世界。 至此60年代往后的几十年服务器被广泛运用于各个行业。随着网络技术的高速发展。TCP/IP协议奠定了互联网通讯的基础&#xff0c;使服务器在联网环境下得到广泛应用。并成为企业网络…