系统日志管理
Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。
rstslog ##此服务是管理系统日志的,他不产生日志,只是起到采集作用
rstslog的管理
系统产生的日志一般都放在指定的位置:
/var/log/message ##服务信息日志
/var/log/secure ##系统登录日志
/var/log/cron ##定时任务日志
/var/log/maillog ##邮件日志
/var/log/boot.log ##系统启动日志
当然,我们可以改变日志存放的位置
指定日志采集路径:
vim /etc/rsyslog.conf
格式:
什么类型的日志.什么级别的日志 放在什么目录 ##日志采集的规则
日志类型:
auth ##pam产生的日志
authpriv ##ssh,ftp等登陆信息的验证信息
cron ##时间任务相关
kern ##内核
lpr ##打印
mail ##邮件
mark(syslog)-rsyslog ##服务内部的信息,时间标识
news ##新闻组
user ##用户程序产生的相关信息
uucp ##unix主机之间的相关通讯
local 1-7 ##自定义的日志设备
日志级别:
debug ##有调试信息的日志信息最多
info ##一般信息的日志,最常用
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ##错误级别,阻止某个功能或者模块不能正常工作的信息
crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
emerg ##内核崩溃等严重信息
none ##什么都不记录
##注意: 从上到下,级别从低到高,记录的信息越来越少
##详细的可以查看手册: man 3syslog
日志的远程同步
在企业中,我们通常要管理多台主机,所以日志的远程同步就很有必要了。
在日志发送方:
vim /etc/rsyslog.conf
表示将所有类型所有级别的日志发送到ip为172.25.62.252这台主机上。
重启服务
在日志接受方:
开启日志接受模块和接受端口,之后重启服务,关闭火墙。
之后,清空两台主机的日志文件
> /var/log/messgages
在日志发送方:
logger yangmi longze
cat /var/log/messages
可以看到我们的日志信息。
之后查看日志接受方:
同样发现了这一条日志,说明日志同步成功了。
日志采集格式的设定
vim /etc/rsyslog.conf
同样,修改这个文件可以设定日志的采集格式。
格式:
%timegenerated% ##显示日志时间
%FROMHOST-IP% ##显示主机ip
%syslogtag% ##日志记录目标
%msg% ##日志内容
\n ##换行
设置的格式是: 日志时间 主机ip 日志记录目标 日志内容 换行
注意:YAMGMI是设置的名称,放在存放日志的目录后面,以;隔开。
可以看到,日志的格式已经设定好了。
时间同步服务
在管理日志是经常需要将时间同步。
服务名称 chrony
在服务端:
vim /etc/chrony.conf
打开22行和29行的服务。他们的说明是:
22 allow 172.25.62/24 ##允许哪些客户端来同步本机时时间
29 local stratum 10 ##本机不同步任何主机的时间,本机作为时间源
之后,关闭火墙,重启服务
systemctl stop firewalld.service
systemctl restart chronyd.service
在客户端:
vim /etc/chrony.conf
一样去修改这个配置文件。
同步ip为172.25.62.251这台主机的时间,同样,修改配置文件之后不要忘记关掉火墙,重启服务。
我们再来查看一下时间是否同步。
chronyc sources -v
可以看到"^*172.25.62.251",这一行, 星号代表的就是已经同步了。
也可以直接看这两台主机的时间是否同步。
timedatectl 命令
使用timedatectl 命令可以管理系统时间。
timedatectl [参数] ##管理系统时间
参数:
status ##显示当前时间信息
set-time ##设定当前时间
set-timezone ##设定当前时区
set-local-rtc 0|1 ##设定是否使用utc时间
list-timezone ##查看支持的所有时区
显示当前时间信息。
Local time(CST) ##本地时间
Universal time(UTC) ##世界时间,也就是伦敦时间
RTC time ##计算机硬件时间
设定当前时间为11:11。
修改时区为亚洲上海。
查看支持的所有时区。
journalctl命令
journalctl是一个日志查看工具,用于查看暂时存放在内存中的日志,这些日志在计算机重启后会被清空。
journalctl [参数]
参数:
-n 10 ##查看最近10条日志
-p err ##查看错误日志
-o verbose ##查看日志的详细参数
--since ##查看从什么时间开始的日志
--until ##查看到什么时间为止的日志
查看计算机开机之后的日志,按q退出页面。
查看最近10条日志。
查看日志的详细参数。
查看系统4:30到5:00中产生的日志。
上面说到,用timedatectl 命令只能查看计算机开机之后的日志,而且在关机之后所有产生的日志都会被清空,那么,如何保存这些日志呢?
mkdir /var/log/journal
首先创建一个目录。
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
修改目录的所属组。为systemd-journal,并给与这个目录sgid权限,在这个目录中产生的所有文件都属于systemd-journal组。
killall -1 systemd-journald
此时重启计算机,这些日志会保存到/var/log/journal目录中。