Linux 日志管理与系统调优补充
创始人
2025-01-07 04:05:41
0次

Linux 日志管理与系统调优

本文将详细介绍日志管理的几个重要方面,包括如何进行日志轮替和集中存储,以及使用 journalctl 工具查看和分析日志。此外,我们还将讨论如何通过系统调优来提升Linux服务器的性能。

一、日志轮替与存储

日志轮替是日志管理中的一项重要任务,目的是防止日志文件过大占满磁盘空间。本文将详细介绍如何使用 logrotate 工具进行日志轮替,以及如何配置日志服务器集中管理日志。

1.1 日志轮替 (logrotate)

logrotate 是一个日志管理工具,可以根据配置定期轮替、压缩、删除和发送日志文件。其主要配置文件为 /etc/logrotate.conf,此外,还可以在 /etc/logrotate.d/ 目录下创建单独的配置文件来管理不同的日志文件。

1.1.1 logrotate 配置示例

以下是 /etc/logrotate.conf 配置示例:

weekly                # 每周轮替一次 rotate 4              # 保留4个备份 create                # 创建新的日志文件 dateext               # 使用日期作为备份文件的后缀 minsize 1M            # 日志文件最小达到1M时才进行轮替 size 10M              # 日志文件最大达到10M时进行轮替 include /etc/logrotate.d  # 包含目录下的其他配置文件 
1.1.2 自定义日志轮替

可以为特定的日志文件创建单独的配置文件,例如 /etc/logrotate.d/myapp:

/var/log/myapp.log {     weekly     rotate 5     compress     missingok     notifempty     create 0640 root utmp     sharedscripts     postrotate         /usr/bin/killall -HUP syslogd     endscript } 
1.1.3 强制执行日志轮替

在修改 logrotate 配置文件后,可以使用以下命令强制执行日志轮替:

logrotate -fv /etc/logrotate.conf 
1.2 集中管理日志

将日志文件集中存储在日志服务器上有助于统一管理和分析。以下是设置日志服务器和客户端的步骤。

1.2.1 服务端配置

编辑 /etc/rsyslog.conf 文件,取消第19、20行的注释,允许服务器使用 TCP 514 端口接收日志:

19 $ModLoad imtcp 20 $InputTCPServerRun 514 

然后重启 rsyslog 服务:

systemctl restart rsyslog 
1.2.2 客户端配置

编辑客户端的 /etc/rsyslog.conf 文件,添加如下内容,将日志发送到日志服务器:

*.* @@192.168.10.19:514 

然后重启 rsyslog 服务:

systemctl restart rsyslog 
1.2.3 测试日志传输

在客户端上创建新用户或写入日志,然后在服务器端查看相应日志文件:

useradd testuser logger "This is a test log message from client" 

在服务器端检查 /var/log/secure 和 /var/log/messages 文件,确认是否接收到日志。

二、日志查看与分析

使用 journalctl 可以查看和分析系统日志。以下是详细介绍 journalctl 的使用方法。

2.1 journalctl 命令概述

journalctl 是 Systemd 提供的一个强大的日志查看工具,可以通过多种选项过滤和显示日志。

2.1.1 常用选项
  • -l, --full:显示完整的字段内容。
  • -a, --all:完整显示所有字段内容,即使其中包含不可打印字符或者字段内容超长。
  • -f, --follow:只显示最新的日志项,并且不断显示新生成的日志项。
  • -e, --pager-end:在分页工具内立即跳转到日志的尾部。
  • -n, --lines=:限制显示最新的日志行数,默认值为10行。
  • -r, --reverse:反转日志行的输出顺序。
  • -o, --output=:控制日志的输出格式,如 short, json, verbose 等。
  • --utc:以世界统一时间(UTC)表示时间。
  • -x, --catalog:在日志的输出中增加一些解释性的短文本。
  • -m, --merge:混合显示包括远程日志在内的所有可见日志。
  • -b [ID][±offset], --boot=[ID][±offset]:显示特定于某次启动的日志。
  • -k, --dmesg:仅显示内核日志。
  • -t, --identifier=SYSLOG_IDENTIFIER:仅显示 syslog 标识符为 SYSLOG_IDENTIFIER 的日志项。
  • -u, --unit=UNIT|PATTERN:仅显示属于特定单元的日志。
2.1.2 输出格式选项
  • short:默认值,输出格式与传统的 syslog 文件格式相似。
  • json:将日志项按照 JSON 数据结构格式化,每条日志一行。
  • json-pretty:将日志项按照 JSON 数据结构格式化,每个字段一行,便于阅读。
  • verbose:以结构化的格式显示每条日志的所有字段。
2.2 日志查看实战案例
2.2.1 查看所有日志
journalctl 
2.2.2 查看内核日志
journalctl -k 
2.2.3 查看系统本次启动的日志
journalctl -b 
2.2.4 查看指定时间的日志
journalctl --since="2023-07-31 09:00:00" --until="2023-07-31 10:00:00" 
2.2.5 显示尾部的最新日志
journalctl -n 20 
2.2.6 实时滚动显示最新日志
journalctl -f 
2.2.7 查看指定服务的日志
journalctl -u nginx.service 
2.2.8 查看指定用户的日志
journalctl _UID=1000 --since today 
2.2.9 查看指定优先级的日志
journalctl -p err -b 
2.2.10 以 JSON 格式输出日志
journalctl -b -u nginx.service -o json-pretty 
2.2.11 显示日志占据的硬盘空间
journalctl --disk-usage 
2.2.12 指定日志文件占据的最大空间
journalctl --vacuum-size=1G 
2.2.13 指定日志文件保存多久
journalctl --vacuum-time=1years 

相关内容

热门资讯

每日必看!江岸多玩到底能开挂吗... 每日必看!江岸多玩到底能开挂吗(辅助挂),江岸多玩原来真的有辅助挂讲义1、江岸多玩脚本辅助下载、江岸...
玩家交流!颖河竞技怎么开挂(外... 玩家交流!颖河竞技怎么开挂(外挂),颖河竞技好像是有外挂教材一、颖河竞技游戏安装教程牌型概率发牌机制...
最新通报!皮皮四川麻将软件下载... 最新通报!皮皮四川麻将软件下载(辅助挂),皮皮四川麻将果然有辅助挂模块1、操作简单,无需皮皮四川麻将...
一分钟揭秘!52游戏开挂脚本(... 一分钟揭秘!52游戏开挂脚本(透视挂),52游戏切实有透视挂法子52游戏脚本下载中分为三种模型:52...
一分钟快速了解!堆堆乐开挂破解... 一分钟快速了解!堆堆乐开挂破解(外挂),堆堆乐竟然真的有外挂方针1、下载好堆堆乐正确养号方法之后点击...
重大通报!汇城贵州麻将开挂脚本... 重大通报!汇城贵州麻将开挂脚本(开挂),汇城贵州麻将原来真的有开挂法门1、重大通报!汇城贵州麻将开挂...
盘点一款!七色城透视挂件(外挂... 盘点一款!七色城透视挂件(外挂),七色城切实是真的有外挂经验1、全新机制【七色城ai辅助工具激活码】...
今日头条!多多休闲透视软件下载... 今日头条!多多休闲透视软件下载(外挂),多多休闲确实是真的有外挂攻略1、首先打开多多休闲辅助器下载最...
关于!钱柜麻将真的有透视吗(辅... 关于!钱柜麻将真的有透视吗(辅助器),钱柜麻将一贯是有辅助器练习钱柜麻将能透视中分为三种模型:钱柜麻...
今日焦点!河北家乡棋牌辅助工具... 今日焦点!河北家乡棋牌辅助工具(外挂),河北家乡棋牌果然是有外挂手册小薇(辅助器软件下载)致您一封信...