一、查看系统中的日志rsyslog
1.rsyslog
此服务时用来采集系统日志的。他不产生日志,只是起到采集作用
2.rsyslog的管理
(1)
/var/log/messages | 服务信息日志 |
/var/log/secure | 系统登陆日志 |
/var/log/maillog | 邮件日志 |
/var/log/boot.log | 系统启动日志 |
/var/log/cron | 定时任务日志 |
(2)指定日志采集路径
日志采集规则:
什么类型的日志.什么级别的日志 /var/log/file
(3)日志类型分为:
auth | pam产生的日志 |
authpriv | ssh.ftp等登录信息的验证信息 |
cron | 时间任务相关 |
kren | 内核 |
lpr | 打印 |
邮件 | |
mark(syslog)-re=rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix to unix copy,unix主机之间相关的通讯 |
local 1~7 | 自定义的日志设备 |
(4)日志的级别分为:
debug | 有调试信息的,日志信息最多 |
info | 一般信息的日志,最常用 |
notice | 最具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不记录 |
注意:从上到下,级别从低到高,记录的信息越来越少
(详细的可以查看手册:man 3 syslog)
3.日志的远程同步
插件:实现功能的小程序(模块)
(1)在日志发送方:
vim /etc/rsyslog.conf
*.* @172.25.254.218 ##"@"表示udp协议发送,“@@”表示tcp协议发送
systemctl restart rsyslog
(2)在日志接收方:
vim /etc/rsyslog.conf
15行: $ModLoad imudp ##日志接收模块
16行:$UDPServerRun 514 ##开启接收端口
systemctl restart rsyslog
(3)在发送方和接收方都关闭火墙
systemctl stop firewalld ##关闭火墙
systemctl disable firewalld ##设定火墙开机关机
(4)测试
在发送方和接收方都清空日志文件
> /var/log/messages
在日志的发送方:
logger test
cat /var/log/messages ##查看日志已经生成
在日志的接收方查看:
cat /var/log/messages
4.日志采集格式的设定
vim /etc/rsyslog.conf
$template HELLO, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n "
*.info;mail.none;authpriv.none;cron.none /var/log/messages;HELLO
%timegenerated% | 显示日志时间 |
%FROMHOST-IP% | 显示主机ip |
%syslogtag% | 显示记录目标 |
%msg% | 日志内容 |
\n | 换行 |
cat /var/log/messages
二、系统时间管理
1.时间同步服务
服务名称:chronyd
在服务端:
vim /etc/chrony.conf
22行: allow 172.25.254/24 ##允许网络位相同的客户端来同步本机时间
29行: local stratum 10 ##本机不同步任何主机的时进,本机作为时间源(时间源的优先级为10)
systemctl restart chronyd.service ##重启服务
systemctl stop firewalld ##关闭火墙
在客户端:
vim /etc/chrony.conf
server 172.25.254.218 iburst ##本机立即同步218主机的时间(iburst 立即更改)
systemctl restart chronyd.service
测试:
在客户端:
[root@client_ssh ~]# date 11111111 ##修改客户端时间
Mon Nov 11 11:11:00 EST 2019
[root@client_ssh ~]#
[root@client_ssh ~]# chronyc sources -v
utc时间计算方式:世界时间+时区
2.timedatectl 命令
timedatectl ##管理系统时间
timedatectl status ##显示当前时间信息
timedatectl set-timezone "Asia/Shanghai" ##设置当前时区,更改当前时区分为东8区
timedatectl set-time "2016-08-08 12:12" ## 设置当前时间
timedatectl set-local-rtc 0/1 ##设置是否使用utc时间
vim /etc/adjtime
timedatectl list-timezones ##查看支持的时区
三、查看内存中的日志
1.日志查看工具:journalctl
journalctl -n 5 ##查看最近5条日志
journalctl -p err ##查看错误日志
journalctl -o verbose ##查看日志的详细参数
示例:查看_PID=85 的日志
journalctl --since "**:**" ##查看从**:**开始的日志
journalctl --until "**:**" ##查看到**:**为止的日志
2.如何使用systemd-journald保存系统日志
默认systemd-journald是不保存系统日志到硬盘的
那么关机后再次开机只能看到本次开机之后的日志
上一次关机之前的日志是无法查看的
使用下列命令可以保存系统日志(一般情况下不建议使用)
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
killall -l systemd-journald
ls /var/log/journal ##第一次查看
stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817
reboot ##重启虚拟机
ls /var/log/journal ##再次查看
stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817