1.系统中主要的日志文件
/var/log/boot.log:
开机的时候系统核心会去侦测与启动硬件,接下来开始各种核心支持的功能启动等。 这些流程都会记录在 /var/log/boot.log 里面哩! 不过这个文件只会存在这开机启动 的信息,前次开机的信息并不会被保留下来!
/var/log/cron:
你的 crontab 调度有没有实际被进行? 进行过程 有没有发生错误?你的 /etc/crontab 是否撰写正确?在这个登录文件内查看看。
/var/log/dmesg:
记录系统在开机的时候核心侦测过程所产生的各项信息。由于 CentOS 默认将开机时
核心的硬件侦测过程取消显示, 因此额外将数据记录一份在这个文件中;
/var/log/lastlog:
可以记录系统上面所有的帐号最近一次登陆系统时的相关信息。lastlog 指令就是利用这个文件的记录信息来显示的。
/var/log/messages:
这个文件相当的重要,几乎系统发生的错误讯息 (或者是重要的信息) 都会记录在 这个文件中; 如果系统发生莫名的错误时,这个文件是一定要查阅的登录之 一
/var/log/secure:
基本上,只要牵涉到“需要输入帐号密码”的软件,那么当登陆时 (不管登陆正确或 错误) 都会被记录在此文件中。 包括系统的 login 程序、图形接口登陆所用的 gdm 程序、 su, sudo 等程序、还有网络连线的 ssh, telnet 等程序, 登陆信息都会被记 载在这里;
/var/log/wtmp, /var/log/faillog:
这两个文件可以记录正确登陆系统者的帐号信息 (wtmp) 与错误登陆时所使用的帐 号信息 (faillog) ! 我们在第十章谈到的 last 就是读取 wtmp 来显示的, 这对于追 踪一般帐号者的使用行为很有帮助!
读取的时候不能使用 vim来打开
要使用 who 命令 我也不知道为啥who /var/log/wtmp
正确的打开方式
tips:
但是 rsyslogd 的登录文件只要“被编辑过”就无法继续记录! 你使用vim打开日志文件 例如/var/log/message 离开的时候你执行了:wq的命令 即使你没有做任何的更改 日志文件就会以为你编辑了 就会停止写入 日志文件
想要解决这个只能重启 rsyslogd 这个服务
我们一般为了保证日志文件的安全都会给
日志文件 加上 chattr 权限 -a 属性是只能增加不能修改 -i是啥也不能干 我们一般是使用 -a 权限
例子:chattr +a /var/log/message
取消的话使用 chattr -a /varlog/message 就可以
2.管理日志的服务
日志的管理方式
基本上有两种方式,一种是由软件开发商自
行定义写入的登录文件与相关格式, 例如 WWW 软件 apache 就是这样处理的。另一种则 是由 Linux distribution 提供的登录文件管理服务来统一管理。 你只要将讯息丢给这个服务 后,他就会自己分门别类的将各种讯息放置到相关的登录文件去!CentOS 提供 rsyslog.service 这个服务来统一管理登录文件
rsyslog.service :记录登录文件的服务
配置文件
# 来自 CentOS 7.x 的相关数据
[root@study ~]# vim /etc/rsyslog.conf
1 #kern.* /dev/console
2 *.info;mail.none;authpriv.none;cron.none /var/log/messages
3 authpriv.* /var/log/secure
4 mail.* -/var/log/maillog
5 cron.* /var/log/cron
6 *.emerg :omusrmsg:*
7 uucp,news.crit /var/log/spooler
8 local7.*
rsyslogd 针对各种服务与讯息记录在某些文件的配置文件就是 /etc/rsyslog.conf
这个文件规定了:
(1)什么服务
(2)的什么等级讯息
(3)需要被记 录在哪里(设备或文件)
这个文件的格式:
服务名称[.=!]讯息等级
讯息记录的文件名或设备或主机
# 下面以 mail 这个服务产生的 info 等级为例:
mail.info
/var/log/maillog_info
# 这一行说明:mail 服务产生的大于等于 info 等级的讯息,都记录到
# /var/log/maillog_info 文件中的意思。
服务名称
rsyslogd 主要还是通过 Linux 核心提供的 syslog 相关规范来设置数据的分类的, Linux 的 syslog 本身有规范一些服务讯息, 你可以通过这些服务来储存系统的讯息。 Linux 核心的 syslog 认识的服务类型主要有下面这些:
调用的实例:
讯息等级
基本上,在 0(emerg) 到 6(info) 的等级之间,等级数值越高代表越没事,等 级靠近 0 则代表事情大条了!除了 0 到 6 之外还有两个比较特殊的等级, 那就是 debug(错误侦测等级) 与 none (不需登录等级)
链接符号
. :代表“比后面还要严重的等级 (含该等级) 都被记录下来”的意思,例如:
mail.info 代表只要是 mail 的信息,而且该信息等级严重于 info (含 info 本身)时,
就会被记录下来的意思。
.=:代表所需要的等级就是后面接的等级而已, 其他的不要!
.!:代表不等于, 亦即是除了该等级外的其他等级都记录。
自定义日志保存位置
# 1. 先设置好所要创建的文件设置!
[root@study ~]# vim /etc/rsyslog.conf
# Add by VBird 2015/08/19 <==再次强调,自己修改的时候加入一些说明
*.info /var/log/admin.log <==有用的是这行啦!
# 2. 重新启动 rsyslogd 呢!
[root@study ~]# systemctl restart rsyslog.service
[root@study ~]# ll /var/log/admin.log
-rw-r--r--. 1 root root 325 Aug 20 00:54 /var/log/admin.log
# 瞧吧!创建了这个登录文件出现啰!
3.日志文件服务器的设置
简介
我们 CentOS 7.x 默认的 rsyslogd 本身就
已经具有这个登录文件服务器的功能了, 只是默认并没有启动该功能 ,那个默认的端口就是 UDP 或 TCP 的 port 514
架构图
配置文件的修改
service 端设置:
# 1. Server 端:修改 rsyslogd 的启动配置文件,
在 /etc/rsyslog.conf 内!
[root@study ~]# vim /etc/rsyslog.conf
# 找到下面这几行:
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
# 上面的是 UDP 端口,下面的是 TCP 端口!
#如果你的网络状态很稳定,就用 UDP 即可。
# 不过,如果你想要让数据比较稳定传输,那么建议使用 TCP 啰!
#所以修改下面两行即可!
$ModLoad imtcp
# 2. 重新启动与观察 rsyslogd 喔!
[root@study ~]# systemctl restart rsyslog.service
[root@study ~]# netstat -ltnp | grep syslog
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 2145/rsyslogd
tcp6 0 0 :::514 :::* LISTEN
client端设置:
[root@study ~]# vim /etc/rsyslog.conf
*.* @@192.168.1.100
#*.* @192.168.1.100 # 若用 UDP 传输,设置要变这样!
[root@study ~]# systemctl restart rsyslog.service