###################
####系统日志管理####
###################
####1.系统日志默认分类####
/var/log/messages ##系统服务及日志,包括服务的信息,报错等等
/var/log/secure ##系统认证信息日志
/var/log/maillog ##系统邮件服务信息
/var/log/cron ##系统定时任务信息
/var/log/boot.log ##系统启动信息
####2.日志管理服务rsyslog####
1.rsyslog
此服务是用来采集和分类系统日志的,他不产生日志,只是起到采集的作用
2.rsyslog日志分类
vim /etc/rsyslog.conf ##主配置文件
服务.日志级别 /存放文件
*.* /var/log/redhat
*.* ##什么类型的日志 . 什么级别的日志 日志处理方式(action)
特别注意的是修改完配置文件后要重启rsyslog服务
systemctl restart rsyslog
我们来做一个实验操作:
可以看出产生的日志也存放在 /car/log/redhat文件里
3.日志设备(可以理解为日志类型)
auth ##pam产生的日志
authpriv ##ssh,ftp等登录信息的验证信息
cron ##时间任务相关
kern ##内核
lpr ##打印
mail ##邮件
mark(syslog)–rsyslog ##服务内部的信息,时间标识
news ##新闻组
user ##用户程序产生的相关信息
uucp ##unix to unix copy, unix主机之间相关的通讯
local 1~7 ##自定义的日志设备
##日志级别##
debug ##有调式信息的,日志信息最多
info ##一般信息的日志,最常用
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ##错误级别,阻止某个功能或者模块不能正常工作的信息
crit ##严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##内核崩溃等严重信息
none ##什么都不记录
##注意:从上到下,级别从低到高,记录的信息越来越少
##详细的可以查看手册: man 3 syslog
##连接符号##
.xxx: 表示大于等于xxx级别的信息
.=xxx: 表示等于xxx级别的信息
.!xxx: 表示在xxx之外的等级的信息
##3.日志的远程同步##
在日志发送方:
vim /etc/rsyslog.conf
*.* @172.25.254.127
特别值得注意的是:在IP地址前端用@符号表示udp协议发送 ,@@是tcp协议
systemctl restart rsyslog
在日志接受方
vim /etc/rsyslog.conf
15 $ ModLoad imudp ##日志接受模块(去掉#)
16 $ UDPServerRun 514 ##开启接受端口
systemctl restart rsyslog
systemctl stop firewalld ##关闭火墙
systemctl disable firewalld ##设定火墙开机关闭
我们来做以下测试测试:
我们用两台虚拟机一台位server服务端,一台位client客户端
在server服务端L
在shell里vim /etc/rsyslog.conf
#重启日志服务
在日志查收的客户端:
关闭防火墙
vim /etc/rsyslog.conf
15 $ ModLoad imudp ##日志接受模块(去掉#)
16 $ UDPServerRun 514 ##开启接受端口
接下来在两方都清空messages
> /var/log/messages
##在日志发送方
logger test
cat /var/log/messages
##在日志接受方
cat /var/log/messages
大功告成!
##日志采集格式的设定
vim /etc/rsyslog.conf
加入$template LOGFMT, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% ##显示日志时间
%FROMHOST-IP% ##显示主机ip
%syslogtag% ##日志记录目标
%msg% ##日志内容
\n ##换行
我们来做以下测试:
加入*.* /var/log/redhat;hello
cat /var/log/redhat
##4.时间同步服务##
服务名称 chronyd
在服务端
vim /etc/chrony.conf ##主配置文件
22 改为allow 172.25.254.0/24 允许哪些客户端来同步本机的时间
29 local stratum 10 本机不同步任何主机的时间,本机作为时间源
systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai 更改当前时区为东8区
在客户端
vim /etc/chrony.conf
3 server 0.rhel.pool.ntp.org iburst
4 server 1.rhel.pool.ntp.org iburst====> server ntpserverip iburst 本机立即同步225主机的时间
systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai 更改当前时区为东8区
我们来做以下测试:
客户端
chronyc sources -v
测试:
[root@localhost ~]# chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| / xxxx = adjusted offset,
|| Log2(Polling interval) -. | yyyy = measured offset,
|| \ | zzzz = estimated error.
|| | |
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 172.25.0.11 10 6 377 41 +170us[ +201us] +/- 191us
在服务端:
vim /etc/chrony.conf
systemctl restart chronyd
在客户端:
vim /etc/chrony.conf
systemctl restart chronyd
测试:chronyc sources -v
相差时间不超过1秒
##5.timedatectl命令##
timedatectl status ##显示当前时间信息
set-time ##设定当前时间
set-timezone ##设定当前时区
set-local-rtc 0|1 ##设定是否使用utc时间
##6.journalctl##
1.journalctl ##日志查看工具(不能查看关机之前的时间)
-n 3 ##查看最近三条
-p err ## 查看错误日志
-o verbose ##查看日志的详细参数
--since ##查看从什么时间开始的日志
--until ##查看从什么时候结束的日志
2.如何使用systemd-journald保存系统日志
默认 systemd-journald是不保存系统日志到硬盘的
那么关机后再次开机只能开到本次开机之后的日志,之前关机前的是没有的
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journald
ls /var/log/journal