一、系统日志
1、为了在真机上连接虚拟机时区别各主机,修改主机名
hostnamectl set-hostname node1.exapmle.com #node1 是主机名
2、在真机上面连接两台虚拟机,ctrl+shift+t 打开另外一个终端
3、为了方便查看操作记录,需要规定日志采集位置
1、日志采集
日志内容是系统本身决定的,在内存中,日志采集的位置需要在配置文件 /etc/rsyslog.conf 下规定。
rsyslog #将日志采集在硬盘里面的日志采集工具
vim /etc/rsyslog.conf #打开规定采集日志的位置的配置文件,进行编辑,从而修改配置文件
1.系统常用日志:
/var/log/messages #所有日志级别的常规信息(不包含邮件,服务认证,定时任务)
/var/log/maillog #邮件日志
/var/log/secure #服务认证日志
/var/log/cron #定时人物日志
systemctl restart rsyslog.service #改变采集日志的配置文件后必须要重启,才可生效
> 日志文件 #清空文件里面的日志记录
例:> /var/log/messages #清空messages里面的日志记录
注意:当清空了messages后还有日志时,是因为有脚本在运行,需要在实验前先删除 rc.local #> /etc/rc.d/rc.local
2.规定采集规则:
日志类型.日志级别 日志存放文件
3.日志类型:
auth #表示用户登录时产生的日志(pam产生日志)
authpriv #服务认证日志(sshd认证)
kern #内核日志
cron #定时任务日志
lpr #打印日志
mail #邮件日志
news #新闻
user #用户相关程序日志
local 1-7 #用户自定义日志
4.日志级别:
debug #系统调试信息
info #常规信息
warning #警告信息
err #报错(级别较低,阻止了某个功能不能正常工作)
crit #报错(级别高,阻止整个软件或整个系统不能正常工作)
alert #需要立即修改的信息
emerg #内核崩溃
none #不采集任何日志信息
* 代表所有的日志类型或者级别
测试:把所有的日志信息放在 /var/log/haha 里
文件中编辑内容如红线框里所示:
在另外一个虚拟机连接测试虚拟机而产生日志:
查看是否有日志被采集,确认修改是否成功:
注意:在修改配置文件后必须要有重启:systemctl restart rsyslog.service
2、日志远程同步(为了方便管理多台主机日志)
日志发送方:
vim /etc/rsyslog.conf #编辑配置文件
*.* @日志接受方的ip #通过udp协议把日志发送到接收方,@udp,@@tcp
systemctl restart rsyslog #重启配置文件
日志接受方:
vim /etc/rsyslog.conf #配置文件,同意以UDP形式同步远程日志
15 $ModLoad imudp #日志接收插件
16 $UDPServerRun 514 #日志接收插件使用端口
systemctl restart rsyslog #重启配置文件
systemctl stop firewalld #关闭防火墙,以便日志进入
systemctl disable firewalld #永久关闭防火墙,需reboot重启
注意:在使用时要关闭防火墙,以便日志进入,而完成同步
测试:
发送方:
发送方配置文件内容:
接收方:
接收方配置文件:
清空日志文件以便查看日志是否同步:
发送方和接收方同步日志查看:
3、定义日志采集格式
在接受方:
vim /etc/rsyslog.conf
$template 格式名称,“日志采集格式" #注意输入法,及空格
例:
$template hehe,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% #日志生成时间
%FORMHOST-IP% #日志来源主机的IP
%syslogtag% #日志生成程序
%msg% #日志内容
\n #换行
给显示日志的文件规定那一行后面加“;格式名称” #按格式进行显示
例:
*.info;mail.none;authpriv.none;cron.none /var/log/messages;hehe
测试:
文件内容如下:
4、journalctl #日志查看工具,直接查看内存中的日志分析本机日志,不能远程同步日志,重启后重启之前的日志会清掉
-n 3 #显示最新的3行日志
-p err #查看报错日志
-f #实时监控日志,用ctrl+c结束监控
--since --until #--since "[YYYY-MM-DD][hh:mm:ss]",查看从什么时间到什么时间的日志
-o verbose #查看日志详细参数(执行后/PID=3226 #查看pid为3226的详细参数)
5、对 systemd-journald 管理
默认此程序只负责对日志进行查看而不对日志进行保存和采集
但是开机后再开机,对日志进行查看,只能查看到开机后的日志,系统之前的日志因为是保存在内存中的,所以关机后就被清空了,所以在开机后用 journalctl 看不到
1.让systemd-journald保存日志到硬盘,步骤如下:
mkdir /var/log/journal #创建一个保存关机前日志的目录
chgrp systemd-journald /var/log/journal #修改目录所属组
chmod g+s /var/log/journal #只能看到目录权限(加粘制位)改变后新的日志
killall -1 systemd-journald #对程序刷新
journalctl #查看最新日志
date #看关机前时间
reboot #重启
journalctl #查看是否有关机前的日志
测试:
二、时间同步
在服务器端共享时间
vim /etc/chrony.conf
29 local stratum 10 #开启时间共享功能,并设定共享级别,这个参数开启后本机不去同步别人的时间到本机
22 allow 172.25.254.0/24 #允许哪些客户端来访问本机的共享时间
systemctl restart chronyd #重启
在客户端
vim /etc/chrony.conf
3 server 172.25.254.123 iburst #同步ip为172.25.254.123的主机的时间
systemctl restart chronyd #重启
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.254.123 10 6 17 7 -468ns[ -33us] +/- 148us
其中^代表服务,*代表同步是否成功,? 没有连接成功
注意:需要关闭服务端防火墙才可同步时间
测试:
服务端:
文件内容:
客户端:
文件内容:
查看是否同步成功:
1.时间设置
EDT #bells时间
timedatectl #查看现在的时间列表
timedatectl list-timezones #查看各个时区列表
timedatectl set-timezone Asia/Shanghai #设置时间为Asia/Shanghai时间
timedatectl set-time "2018-11-11 11:11:11" #设置时间为2018-11-11 11:11:11
timedatectl set-local-rtc 0 #0表示使用UTC时间
timedatectl set-local-rtc 1 #1表示使用本地时间
vim /etc/adjtime #查看使用时间
当使用本地时间时内容查看如下: