系统日志
进程和操作系统内核需要能够为发生的时间记录日志,这些日志可用于系统审核和问题的故障排除,一般这些日志永久存储在/var/log目录下,系统文件记录信息如下:
/var/log/messages ##大多数的日志信息记录在此处
/var/log/secure ##安全和身份认证相关的消息和错误的日志文件
/var/log/cron ##与定时任务相关的日志文件
/var/log/maillog ##与邮件服务相关的日志文件
/var/log/wtmp ##与登陆信息相关的日志(别的主机登录这台主机的信息)
/var/log/boot.log ##与系统启动相关的日志文件
rsyslog服务
系统日志程序自己产生的,由rsyslog.service服务采集。
rsyslog是一个开源工具,被广泛用于Linux系统的TCP/UDP协议的转发或者日志采集。
rsyslog服务的主配置文件为/etc/rsyslog.conf,指定日志保存位置修改配置文件,重启rsyslog服务后,服务生效。若关闭日志收集服务,当再次开启时,会回收之前没有收集的.
指定日志采集路径格式:
什么类型的日志.什么级别的日志 /var/log/文件
日志类型分为:
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
实验1:在/etc/rsylog.conf中指定“*.* ”日志的保存位置为“/var/log/westos”
第一步:在/etc/rsyslog.conf中添加“*.* /var/log/westos”
远程日志同步
man rsyslog.conf ##查看文件的帮助:@udp @@tcp
日志同步,方便日志分析
实验2:实现node1虚拟机和node2虚拟机远程同步
在接收日志的一端(node 1)
第一步:关闭火墙
systemctl stop firewalld
第二步:在/etc/rsyslog.conf中打开文件接口,打开udp或者tcp的插件
第三步:设定接收格式
日志格式设定:
在RULES下 $template 引用名,"格式"
把WESTOS的值定义成“”中的内容
并把WESTOS添加到 /var/log/messages后,用;隔开
systemlogtag 表示是什么服务产生的
在发送日志的一端(node2)
第一步:设置文件,把*.* @主机ip(要发送给的主机)
@ udp
@@ tcp
注意:在企业中日志不能随便清
2.日志测试
发送端发送日志测试命令:
logger hello
接收端收到“hello”
chronyd服务
Chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确。NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
它由两个程序组成:chronyd和chronyc。
chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
配置文件是/etc/chrony.conf
实验3:同步虚拟机node1和node2的时间
第一步:时间源(node2)地址为172.25.254.122
在时间源主机上设定网络范围和stratum的值(stratum设置为其它值也是可以的,其范围为0~15)
第二步:在时间同步的主机(node1)上,在chrony服务中加载时间源地址,使重启服务后,时间同步立即生效
第三步:时间同步测试
node2设定时间
node1完成时间同步
注意:
0.0.0/24任何人都可以访问
ibust 立即生效
chronyc sources -v ##查看是否同步成功(^*为成功)
journalctl 命令-------日志分析命令
journalctl ##查看从最开时到现在的日志
journalctl -n 5 ##前五条
journalctl --since 时间 ##从什么时间开始的
journalctl --since --until
journalctl -p err ##报错的日志
journalctl -o verbose ##所有进程的详细日志信息
reboot重启后journal看到的日志就消失,内存中的数据丢失了,但是日志文件中的不会丢失,日志文件中时采集的日志信息
systemd-journald服务
服务提供一种改进日志的管理服务,可以收集来自内核、启动过程、标准输出、系统日志以及守护进程启动和运行期间错误的消息,他将这些消息写入到一个结构化时间日志中
默认情况下,systemd日志保存在/run/log/journal中, 这意味着reboot重启后journal的日志会被清除,内存中的数据丢失了
如果将日志保存在/var/log/journal目录,这样启动后就可以利用历史数据,形成永久日志
实验4:使用systemd-journald服务实现日志永久化
第一步:先创建一个目录/var/log/journal,改权限 组systemd-journal,并且让在这个目录建立的文件都属于这个组g+s
第二步 :更新服务,并重启
ps aux | grep systemd-journal ##查看进程PID
kill -1 systemd-journald
第三步: 查看/var/log/journal目录下的内容,和Machine ID一样
第四步:进入上述目录,有两个目录。一个是历史日志,一个是当前日志。
timedatectl命令
timedatectl list-timezones ##显示所有时区
timedatectl set-timezone ##设置时区
timedatectl set-time "年-月-日 时-分-秒"
timedatctl
bios time 硬件时间 RTC time
local time 当地时间
universal time 伦敦时间
/etc/adjtime显示rtc设定的值对应的情况
timdatectl set-local-rtc 1 ##硬件时间和当前地区时间一直 LOCAL
timdatectl set-local-rtc 0 ##硬件时间和伦敦时间一至,可以解决时间错乱问题 UTC
timedatectl set-time