Linux基础第十一章:日志文件及如何使用rsyslog搭建小型日志服务器
本文主要介绍日志文件,详解解析了rsyslog的配置文件,通过rsyslog日志处理系统如何给没有日志的服务或想要从公共日志中剥离的服务创建一个单独的日志文件并且介绍了小型企业如何通过rsyslog日志处理系统搭建一套日志服务器,方便运维人员查看日志排错。
目录
一、日志文件
1、日志作用
将系统和应用发生的事件记录至日志中,以助于排错和分析使用。
记录的内容包括:时间,地点,人物,事件
2、常用日志
日志文件位置 | 日志文件说明 |
/var/log/messages | 内核和公共日志:它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出 |
/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等命令查看 |
3、日志级别
日志级别数字越小越紧急,一般运维过程中出现4级就要进行检查注意了。
级别 | 紧急程度 | 出现的后果 |
0 | EMERG(紧急) | 会导致主机系统不可用的情况 |
1 | ALERT(警告) | 必须马上采取措施解决的问题 |
2 | CRIT(严重) | 比较严重的情况 |
3 | ERR(错误) | 运行出现错误 |
4 | WARNING(提醒) | 可能影响系统功能,需要提醒用户的重要事件 |
5 | NOTICE(注意) | 不会影响正常功能,但是需要注意的事件 |
6 | INFO(信息) | 一般信息 |
7 | DEBUG(调试) | 程序或系统调试信息等 |
二、Rsyslog日志处理系统
1、使用Rsyslog创建日志优点
在运维过程中某些服务时自带错误日志和运行日志的,但是有一些服务安装完成后是没有日志的。下面我们以sshd服务为例创建一个日志。
例如sshd本身是有日志的,但是与其他安全服务一样都存放在/var/log/secure/messages文件中不方便我们查看sshd的日志,如果我们将sshd服务的日志单独生成一个日志文件便于我们查看,注意使用Rsyslog创建日志的服务必须支持Rsyslog。
2、Rsyslog配置文件解析
配置文件路径:/etc/rsyslog.conf
分为三大块:
-
MODULES:相关模块配置
-
GLOBAL DIRECTIVES:全局配置
-
RULES:日志记录相关的规则配置
#MODULES //相关模块配置
# Provides UDP syslog reception
#$ModLoad imudp //使用UDP协议传输日志数据
#$UDPServerRun 514 //端口为514端口
# Provides TCP syslog reception
#$ModLoad imtcp //使用TDP协议传输日志数据
#$InputTCPServerRun 514 //端口为514端口
#### GLOBAL DIRECTIVES #### //全局配置不常用省略
#### RULES #### //日志记录相关的规则配置
*.info;mail.none;authpriv.none;cron.none /var/log/messages
//*表示所有*.info表示所有级别,分号隔开none表示没有级别即不记录
//本行中表示不记录mail、authpriv、cron其他所有记录到/var/log/messages文件中
authpriv.* /var/log/secure
//authpriv所有等级日志记录到/var/log/secure文件中,文件可以自定义路径和文件名
//可以使用1个@或者2@加ip的形式将日志传到其他相通的服务器上
mail.* -/var/log/maillog
//mail所有等级日志记录到-/var/log/maillog文件中,文件可以自定义路径和文件名
//可以使用1个@或者2@加ip的形式将日志传到其他相通的服务器上
cron.* /var/log/cron
//cron所有等级日志记录到/var/log/cron文件中,文件可以自定义路径和文件名
//可以使用1个@或者2@加ip的形式将日志传到其他相通的服务器上
local7.* /var/log/boot.log
//local7表示自定义服务,范围为0-7都可以使用,在支持的服务配置文件中也要写对应的local等级
// /var/log/boot.log表示存到此目录下的文件中,文件可以自定义路径和文件名
//可以使用1个@或者2@加ip的形式将日志传到其他相通的服务器上
3、使用rsyslog将ssh服务的日志单独设置
①第一步在rsyslog的配置文件(/etc/rsyslog.conf)# RULES #模块中设置ssh服务的local等级为local6并设置日志存路径为/mnt/ssh.logs,如下图。其中local6后的.*表示所等级的日志都输出,
.表示等于或高于后面等级日志的都会输出,如果是.=则表示只有等于后面的日志的等级才会输出,如果是.!则表示除了后面等级的其他等级日志全部记录
②第二步在ssh服务的服务器端配置文件中(/etc/ssh/sshd_conf)修改自定义rsyslog,如下图。
③重启sshd服务和rsyslog服务,如下图。
④本机ssh自己并查看实时日志是否生成记录,如下图。
4、使用rsyslog搭建日志服务器
①实验背景
日志服务器更方便管理企业内部日志,将业务服务器的日志都放到日志服务器上更便于运维和管理。
②实验目的
将业务服务器A的内核和公共日志实时传输到日志服务器B上
③实验环境
硬件:2台网络互通的centos7.4服务器
软件:业务服务器A地址为:192.168.30.11/32
业务服务器B地址为:192.168.30.10/32
③实验步骤
第一步将2台服务器的防火墙以及selinux防护关闭,如下图。
第二步在业务服务器A和日志服务器B上配置rsyslog服务开启tcp协议,在业务服务器A上将内核和公共日志实时传输到日志服务器B上(配置文件路径:/etc/rsyslog.conf),如下图。
第三步业务服务器A和日志服务器B上重启rsyslog服务并检查514端口是否开启,如下图。
第四步在业务服务器A上使用logger命令打印内容到日志查看日志服务器B是否能在日志中查看到,如下图。
更多推荐
所有评论(0)