日志的功能
- 用于记录系统、程序运行中发生的各种事件
- 通过阅读日志,有助于诊断和解决系统故障
日志文件的分类
-
内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似 -
日志信息的级别
级号 | 消息 | 级别 | 说明 |
0 | EMERG | 紧急 | 会导致主机系统不可用的情况 |
1 | ALERT | 警告 | 必须马上采取措施解决的问题 |
2 | CRIT | 严重 | 比较严重的情况 |
3 | ERR | 错误 | 运行出现错误 |
4 | WARNING | 提醒 | 可能会影响系统功能的事件 |
5 | NOTICE | 注意 | 不会影响系统但值得注意 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或系统调试信息等 |
-
用户日志
记录系统用户登录及退出系统的相关信息 -
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
日志保存位置
- 默认位于:/var/log目录下
日志文件位置 | 日志文件说明 |
/var/log/messages内核和公共日志 | 它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。 |
/var/log/cron计划任务日志 | 记录与系统定时任务相关的日志 |
/var/log/dmesg系统引导日志 | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
/var/log/maillog邮件日志 | 记录邮件信息的日志 |
/var/log/lastlog | 查看记录系统中所有用户最后一次的登录时间的日志。这个文件也是二进制文件.不能直接用Vi查看。而要使用lastlog命令 |
/var/log/secure | 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
/var/log/wtmp | 永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看 |
/var/tun/ulmp | 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看 |
日志文件的格式
日志文件的格式包含以下 4 列:
重启rsyslog服务
systemctl restart rsyslog
把日志放到指定配置文件
打开/etc/rsyslog.conf文件,启用UDP协议,尽量避免修改主配置文件,我们在/etc/rsyslog.d/中新建default.conf,追加如下模板:
#### GLOBAL DIRECTIVES ####
# Use default timestamp format # 使用自定义的格式
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template myFormat,"%timestamp% %fromhost-ip% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate myFormat
# 根据客户端的IP单独存放主机日志在不同目录,rsyslog需要手动创建
$template RemoteLogs,"/var/log/rsyslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
# 排除本地主机IP日志记录,只记录远程主机日志
:fromhost-ip, !isequal, "127.0.0.1" ?RemoteLogs
# 忽略之前所有的日志,远程主机日志记录完之后不再继续往下记录
& ~
改完之后重启服务
如果还没有日志输出,查看selinux
临时关闭SELinux
setenforce 0
永久关闭
vi /etc/selinux/config
改成
SELINUX=disable
- 事件产生的时间。
- 产生事件的服务器的主机名。
- 产生事件的服务名或程序名。
- 事件的具体信息
-
为了方便日志监控和防止日志被篡改,我们可以使用rsyslog搭建日志服务器用于存放其他服务器的日志。
对于入侵排查工作来说,操作系统的认证日志、计划任务日志和历史命令都是非常重要的。我们把各个系统的相应日志保存到专门的rsyslog日志服务器,保存日志的路径格式为:源IP地址/设施名(日志类别)、年月.log。软件:rsyslog
日志客户端(发送端):CentOS 7(负责发送日志到远程日志服务器,支持udp,tcp,relp协议。)
日志服务器(接收端):CentOS 7(负责接收客户端发来的日志并存储在本地,支持文件存储和数据库存储方式。)
- rsyslog是系统自带的服务,不需要安装
-
#客户端、服务端都需要修改配置文件 vim /etc/rsyslog.conf # Provides UDP syslog reception #若启用UDP进行传输,则取消下面两行的注释 $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception #若启用TCP进行传输,则取消下面两行的注释 #$ModLoad imtcp #$InputTCPServerRun 514 #客户端配下面这一行 *.* @192.168.1.10:514 #若启用TCP传输则使用@@,若是UDP则使用@