系统日志管理
1.rsyslog
此服务是用来采集系统日志的 ,他不产生日志,只起到采集作用
2.rsyslog的管理
文件 | 内容 |
---|---|
/var/log/messages | #服务信息日志 |
/var/log/secure | #系统登陆日志 |
/var/log/cron | #定时任务日志 |
/var/log/maillog | #邮件日志 |
/var/log/boot.log | #系统启动日志 |
服务信息日志:
系统登陆日志:
定时任务日志:
邮件日志:
系统启动日志:
指定日志采集路径
什么类型的日志,什么级别的日志 /var/log/file #日志采集规则
日志类型分为:
类型 | 含义 |
---|---|
auth | #pam产生的日志 |
authpriv | #ssh,ftp等登陆信息的验证信息 |
cron | #时间任务相关 |
kern | #内核 |
lpr | #打印 |
#邮件 | |
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
3.日志的远程同步
在日志发送方:
vim /etc/rsyslog.conf
添加
*.* @172.25.254.170 #"@"表示udp协议发送,"@@"表示tcp协议发送
systemctl restart rsyslog.service
清空messages方便测试
在日志接受方:
vim /etc/rsyslog.conf
把以下两行去掉注释
15 $ModLoad imudp #日志接收模块
16 $UDPServerRun 514 #开启接收端口
重启服务命令:
systemctl restart rsyslog.service
关闭防火墙:
systemctl stop firewalld
设定防火墙开机关闭:
systemctl disable firewalld
清空messages
测试:
在发放和接受方都要清空日志文件
/var/log/messages
在日志的发送方
logger test
cat /var/log/messages #查看日志已经生成
在日志接收方查看
cat /var/log/messages
都出现说明设定成功
4.日志采集格式的设定
vim /etc/rsyslog.conf
值 | 含义 |
---|---|
%timegenerated% | #显示日志时间 |
%FROMHOST-IP% | #显示主机ip |
%syslogtag% | #日志记录目标 |
%msg% | #日志内容 |
\n | #换行 |
添加命令
$template LOGFMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
LOGMT是自己设定的只要是大写就可以
在日志指向文件后加上LOGMT
* . * /var/log/westos;LOGFMT
cat /var/log/westos
发现已经修改了日志的格式。当然,格式里的参数个数是自己设定
未改变之前的是以下图片
5. 时间同步服务
服务名称
在服务端:
编辑chrony.conf文件
vim /etc/chrony.conf
22行 allow172.25.254.114/24 ##允许哪些客户端来同步本机时间,此处允许ip为172.25.254.114同步本机的时间
29行 local stratum 10 ##本机不同步任何主机的时间,本机作为时间源
systemctl restart chronyd.service #重启 chronyd服务
查看当前时间
在客户端:
查看当前时间是否和服务端一致
不一致时编辑chrony.conf文件
vim /etc/chrony.conf
第3行加上
server 172.25.254.214 iburst #本机立即同步214主机时间
重启chronyd服务
systemctl restart chronyd.service
timedatectl set-timezone Asia/Shanghai #更改当前时区为东8区
测试:
#在客户端
[root@client_ssh Desktop]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
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 172.25.254.214 10 6 17 56 +1756ns[ +90000ns] +/- 1015us
如果时区不一致,就会导致时间显示的不一致(实际转化成相同时区的时间就是一致的),时区修改成一样的就可以了
修改时区:
查看时间信息
timedatectl
timedatectl set-timezone Asia/Shanghai #更改当前时区为东8区
修改后查看
图中有每个参数符号的意义,对应查看,此次同步时间成功
6.imedatectl命令
命令 | 含义 |
---|---|
timedatectl | #管理系统时间 |
timedatectl status | #显示i当前时间信息 |
set-time | #设定当前时间 |
set-timezone | #设定当前时区 |
set-local-rtc 0或1 | #设定是否使用utc时间(0是使用utc时间,1是使用本地时间) |
list-timezones | #查看支持的所有时区 |
以下是几个例子
timedatectl
timedatectl status
timedatectl set-time ‘2019-01-15 11:23:00’
timedatectl set-timezone Asia/Shanghai
设定是否使用utc时间
1.可以直接在文件里修改
此处是使用utc时间
2.命令修改是否使用utc时间
此处修改为使用utc时区:
timedatectl set-local-rtc 0
此处修改为使用本地时间:
timedatectl list-timezones
7.journal
1).journalctl 日志查看工具
命令 | 含义 |
---|---|
-n 3 | #查看最近3条日志 |
-p err | #产看错误日志 |
-o verbose | #查看日志的详细参数 |
–since | #查看从什么时候开始的日志 |
–unit | #查看从什么时间为止的日志 |
journalctl
查看最近3条日志:
产看错误日志:
查看日志的详细参数:
查看从什么时候开始的日志:
查看从什么时间为止的日志:
2).如何使用system-journald保存系统日志
默认system-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/
946cb0e817ea4adb916183df8c4fc817
bootctl ##查看机器id
date
reboot
journalctl
此图可以看到有02:50:37之前的日志信息:
日志就保存成功了,但是不建议这么操作,每天产生的日志会很多会使你的电脑卡顿,如果不想再保存日志,直接 rm -rf /var/log/journal删除文件就好了