m-zhuang

导航

日志文件管理

记录系统、程序运行中发生的各种事件

阅读日志,有助于诊断和解决系统故障

1. 分类

内核及系统日志

由系统服务rsyslog统一进行管理,日志格式基本相似

主配置文件/etc/rsyslog.conf

用户日志

记录系统用户登录及退出系统的相关信息

程序日志

由各种应用程序独立管理的日志文件,记录格式不统一

2. 内核日志消息优先级别

数字越小优先级越高,消息越重要

优先级由开发者自行定义,也就是你想要哪部分的信息内容,可以自信添加修改

级别 消息 现象
0 EMERG(紧急) 会导致主机系统不可用,如系统崩溃
1 ALERT (警告) 必须马上采取紧急措施解决的问题,如数据库被破坏
2 CRIT(严重) 计较严重的情况,如硬盘错误,可能会阻碍程序的部分功能
3 ERR(错误) 运行出现错误,不是非常紧急,尽快修复的
4 WARNING(提醒) 可能影响系统功能,需要提醒用户的重要事件,不是错误,如磁盘使用了80%等
5 NOTICE(注意) 不影响正常功能,但需要注意的事件,无需处理
6 INFO(信息) 一般信息,正常的系统信息
7 DEDUG(调试) 程序或系统调试信息等,包含详细开发的信息,调试程序时使用
none(没有优先级) 不记录任何日志信息

3. 设施 facility

在linux的系统中,设施(facility)是指信息源的分类,每个消息都来自于一个特定的设施,如内核、邮件、用户等。在日志记录中,可以根据设施进行过滤,以便查看特定的设施生成的消息。

举例:

命令 含义
mail.info /var/log/maillog 比指定的级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中
maillog.=info /var/log/maillog 明确指定日志级别为info,保存至/var/log/maillog中
maillog.!info /var/log/maillog 除了指定的日志级别info外,其他所有级别的日志文件都保存至/var/log/mailog中
mail.*info /var/log/maillog mail的所有日志级别信息,都保存至/var/log/maillog中
*.info /var/log/maillog 所有的facility的info级别,保存至/var/log/maillog中

mail.notice;new.info 表示mail的notice以上的日志级别和new的info以上的日志级别

mail,new.info 表示mail和new的info以上级别

-/var/log/... - 表示异步模式

异步:一个线程或多个线程,不必等待回应就可以执行下一步

同步:必须等到对方回应才可以执行下一步

4. 保存位置

默认位置:/var/log目录下

主要日志文件:

日志文件名称 目录
内核及公共消息日志 /var/log/messages
计划任务日志 /var/log/cron
系统引导日志 /var/log/dmesg
邮件系统日志 /var/log/maillog
最近的用户登录事件 /var/log/lastlog
用户登录、注销及系统开、关机事件 /var/log/wtmp
当前登录的每个用户的详细信息 /var/log/utmp
与用户验证相关的安全性事件 /var/log/secure

5. 日志内容格式

事件发生时间 主机名 进程(系统,内核) 消息具体内容

May 16 15:30:01 localhost systemd: Starting Session 58 of user root.

分析工具

users、who、w、last、lastb

users 显示当前登录的用户

w 显示当前登录的用户

last 显示当前系统登录过的用户(lastb 登录失败的用户)

6. 日志文件保留时间

程序日志:一般只保留当天,一般留个2天左右(例如:http、nginx)

数据日志:数据库,最少保留半年

用户信息日志:永久保存

企业根据业务需要,自定义保留时间

7. 内核及系统日志统一管理工具

vim /etc/rsyslog.conf


注:自定义程序 local0-7

8. 自定义服务的日志文件位置

自定义ssh的日志文件路径为/var/log/sshd.log

# 添加自定义模块local6
[root@localhost ~]# vim /etc/rsyslog.conf
	local6	/var/log/sshd.log

# 为ssh服务配置模块
[root@localhost ~]# vim /etc/ssh/sshd_config
	# 在Logging模块
	SyslogFacility AUTHPRIV 	# 将此条命令内容注释掉
	SyslogFacility LOCAL6	 	# 添加此条命令内容

# 重启sshd服务和rsyslog服务
[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# systemctl restart rsyslog.service 

# 关闭防火墙和selinux的安全机制(仅针对实验环境 )
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

# 检验
# 进入另一台主机,用ssh服务登录此主机
[root@localhost ~]# ssh root@192.168.23.5
root@192.168.23.5's password: 
Last login: Tue May 16 16:04:57 2023 from 192.168.23.1

# 回到第一台主机查看sshd日志文件
[root@localhost ~]# cd /var/log
[root@localhost log]# cat sshd.log
May 16 17:41:11 localhost sshd[10884]: Accepted password for root from 192.168.23.10 port 37034 ssh2






9. 集中管理日志

将服务器的日志文件发到统一的日志文件服务器

实验环境要求:

两台不同的主机

主机1:ip 192.168.23.5

主机2:ip 192.168.23.10










posted on 2023-05-17 12:17  m_zhuang  阅读(61)  评论(0编辑  收藏  举报