系统日志

配置文件: /etc/rsyslog.conf

系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。

常用日志类型与日志级别

类型
auth            用户登陆日志(pam产生的日志)
authpriv        服务认证日志(sshd认证)
kern            内核日志
corn            定时任务日志
lpr            打印机日志
mail            邮件日志
news            新闻
user            用户相关程序日志
local 1-7        用户自定义日志
级别
debug            系统调试信息
info            常规信息
warning            警告信息
err            报错(级别低,阻止了某个软件不能正常工作)
crit            报错(级别高,阻止了整个软件或整个系统不能正常工作)
alert            需要立即修改信息
emerg            内核崩溃
none            不采集任何日志信息
格式

日志类型.日志级别 日志存放文件
例如:

auth.debug           文件名称    ##用户登陆日志的调试信息
auth.*               文件名称    ##用户登陆日志的所有信息
*.*                  文件名称   ##所有日志类型的所有级别的信息

vim /etc/rsyslog.conf

deployment的日志_白名单


auth.debug /var/log/westos ###将用户登录日志的调试信息保存在/var/log/westos文件中

. /var/log/log.all ####将所有类型日志的所有级别信息保存在/var/log/log.all文件中

系统常用日志

/var/log/messages    所有日志级别的常规信息(不包含邮件,服务认证,定时任务)
/var/log/maillog    邮件日志
/var/log/secure        服务认证日志
/var/log/cron        定时任务日志

远程日志同步

需要两台节点
节点一:日志发送方server1 172.25.66.11
节点二:日志接收方server2 172.25.66.12

在日志发送方

vim /etc/rsyslog.conf

. @172.25.66.12 #日志接受方地址

deployment的日志_白名单_02


systemctl restart rsyslog

deployment的日志_重启_03


在日志接收方vim /etc/rsyslog.conf

编辑第15、16行

15 $ModLoad imudp 日志接受程序

16 $UDPServerRun 514 接收程序接口

deployment的日志_deployment的日志_04


systemctrl restart rsyslog.srvice

systemctrl stop firewalld 关闭防火墙

systemctrl disabl firewalld 关闭防火墙开机自启动

deployment的日志_vim_05


测试:

清空日志接受方的日志记录 > /var/log/message

deployment的日志_重启_06


在日志发送方:

deployment的日志_白名单_07


在日志接受方可以查看到日志发送方的日志

cat /var/log/message

deployment的日志_重启_08

定义日志采集格式

vim /etc/rsyslog.conf
$template 格式名称(自定义),"日志采集格式"
*.info;mail.none;authpriv.none;cron.none                /var/log/messages;westos
$template westos,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"

%timegenerated%        日志生成时间
%FROMHOST-IP%        日志来源主机的ip
%syslogtag%        日志生成程序
%msg%            日志内容

deployment的日志_vim_09

systemctl restart rsyslog

测试:

deployment的日志_vim_10

journalctl

journalctl ##日志查看工具,直接查看内存中的日志

journalctl -n 3            查看最新三条日志
journalctl -p err        查看报错日志
journalctl -f            日志监控   用ctrl+c 结束监控
journalctl --since  --until    查看一个时间区间的日志
journalctl -o verbose        产看日志详细参数

对systemd-journald管理

默认此程序只负责对日志进行查看而不对日志进行保存和采集,那么在关机后在开机,对日志进行查看,只能查看到开机后的日志,系统之前的日志是因为保存在内存中的,所以关机后就被清空了,那么在开机是用journalctl看不到的

如何让systemd-journald保存日志到硬盘中

(1)mkdir /var/log/journal

(2)chgrp systemd-journal /var/log/journal

(3)chmod 2755 /var/log/journal

(4)killall -1 systemd-journald

deployment的日志_vim_11


测试:

journalctl 重启之前查看日志时间

date 查看当前时间

reboot 重启

journalctl 重启后查看日志,看重启之前的日志是否存在,存在即为正确

系统中的at延时任务

at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。

AT Time中的时间表示方法

-----------------------------------------------------------------------
  时 间 例子 说明
  -----------------------------------------------------------------------
  Minute    at now + 5 minutes   任务在5分钟后运行
  Hour      at now + 1 hour      任务在1小时后运行
  Days      at now + 3 days      任务在3天后运行
  Weeks     at now + 2 weeks     任务在两周后运行
  Fixed     at midnight          任务在午夜运行
  Fixed     at 10:30pm           任务在晚上10点30分
  Fixed     at 23:59 12/31/2018   任务在2018年12月31号23点59分

参数详解

at [-V] [-q x] [-f file] [-mldbv] time
at -c job ...
atq [-V] [-q x]
atrm [-V] job ...
-V : 印出版本编号 
-q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个 
-m : 即使程序/指令执行完成后没有输出结果, 也要寄封信给使用者 
-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入 网络应用
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l) 
-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d) 
-v : 列出所有已经完成但尚未删除的指定

举例:

at now+1min

at> touch /mnt/file{1…5}

ctrl+d

五分钟之后,在/mnt目录创建file1-file5五个文件

deployment的日志_重启_12


deployment的日志_vim_13

at黑白名单

/etc/at.deny ##黑名单
/etc/at.allow ##白名单本身不存在,创建后黑名单失效,除了超级用户外的其他用户都不能使用at作业,除非将用户加入白名单

vim /etc/at.deny 将指定用户加入黑名单
vim /etc/at.allow 将指定用户加入白名单