##########系统日志的管理###########
- rsyslog ##此服务是用来采集日志的,它不生产日志,只是起到采集作用
- rsyslog的管理
/var/log/messages ##服务信息的日志
/var/log/secure ##系统登陆日志
/var/log/cron ##定时任务日志
/var/log/maillog ##邮件日志
/var/log/boot.log ##系统启动日志
指定日志采集路径
vim /etc/rsyslog.conf
在 /var/log/messages和/var/log/secure之间编写
什么类型的日志.什么级别的日志 /var/log/file ##日志采集规则
例: * . * /var/log/westos ##表示所有的日志都采集到westos里
##########日志类型分为#########
auth ##pam生产的日志
authpriv ##ssh,ftp等登陆信息的验证信息
cron ##时间任务相关
kern ##内核
lpr ##打印
mail ##邮件
mark(syslog)-rsyslog ##服务内部的信息,时间标识
news ##新闻组
user ##用户程序产生的相关信息
uncp ##unix to nuix copy,unix主机之间的通讯
local 1~7 ##自定义的日志设备
###########日志级别分为##########
debug ##有调式信息的,日志信息最多
info ##一般信息的日志,最常用
notice ##最具有重要性的普通条件的信息
warning ##警告级别
err ##错误级别,组织某个功能或者模块不能正常工作的信息
crit ##严重级别,组织整个系统或者整个软件不能正常工作的信息
alert ##需要立即修改的信息
emerg ##内核崩溃等
none ##什么都不记录
注意:从上到下,级别从低到高,记录的信息越来越少
详细的可以查看手册:man 3 syslog
#########日志的远程同步#########
在日志的发送方:
vim /etc/rsyslog.conf
*.* @172.25.254.200 ##"@"表示udp协议发送,“@@”表示tcp协议发送
systemctl restart rsyslog
在日志的接受方:
vim /etc/rsyslog.conf
15 $ModLoad imudp ##日志接受模块
16 $UDPServerRun 514 ##开启接受端口
systemctl restart rsyslog
systemctl stop firewalld ##关闭火墙
systemctl disable firewalld ##设定火墙开机关闭
测试:
在发送方和接受方都清空日志 > /var/log/messages ##两边都做
在日志的发送方:
logger test
cat /var/log/messages ##查看日志已生成
在日志的接受方:
cat /var/log/messages ##日志接受方
可见两台主机实现远程同步了
但是server主机接收的日志不止是刚刚新建的日志,而是还有很多 /etc/rc.d/rc.local文件产生的日志
在发送方主机中写命令 :
> /etc/rc.d/rc.local ##清空这个文件
reboot ##清空后重启这台主机:
在日志接收方:
重启系统:systemctl restart rsyslog
关闭防火墙:systemctl stop firewalld ##关闭火墙
systemctl disable firewalld ##设定火墙开机关闭
在日志发送方和接收方都清空历史日志文件 :
> /var/log/messages
重新建立日志,并且查看
logger test
cat /var/log/messages
在日志的接收方查看远程同步的日志
用该命令在接收方可以查看接口配置是否正确 netstat -antlupe | grep rsyslog
#########日志采集格式的设定#########
如果知道日志的生成时间、日志发送方的ip地址、日志的服务目标、日志的内容这样在管理服务器的时候就方便多了
在日志接收方进行日志采集格式的设置
vim /etc/rsyslog.conf
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% ##显示日志时间
%FROMHOST-IP% ##显示主机ip
%syslogtag% ##日志记录目标
%msg% ##日志内容
\n ##换行
在指定的日志中采用WESTOS格式
*.* /var/log/westos;WESTOS
$ActionFileDefaultTemplate WESTOS ##修改系统默认日志采集格式为WESTOS
systemctl restart rsyslog ##设置好后重启服务
在日志接收方查看日志格式
cat /var/log/westos
在日志的发送方查看日志格式
日志发送方的日志格式依然是默认格式
#########时间同步服务#########
服务名称 :chronyd
在服务端:
vim /etc/chrony.conf
22 allow 172.25.254.0/24 ##允许0-24客户端来同步本机时间
29 local stratum 10 ##本机不同步任何主机的时间,本机作为时间源
systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai ##更改当前时区为东8区
在客户端:
vim /etc/chrony.conf
server 172.25.254.211 iburst ##本机立即同步211主机的时间
systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai ##更改当前时区为东8区
测试:
在客户端
chronyc sources –v ##出现* ip 就说明好了
在客户端和服务端均输入 date看是否时间同步
说明:之所以相差几秒钟是因为输入date命令延迟了几秒。
######### timedatectl命令 ##########
timedatectl ##管理系统时间
装了双系统以后,linux把bios时间改了,所以windows时间不对,可以设置
timedatectl status ##设定当前时间信息
set-time ##设定当前时间
set-timezone ##设定当前时区
set-local-rtc 0|1 ##设定是否使用utc时间(0使用1不使用)
list-timezone ##查看支持的所有时区
Local time ##本地时间
Universal time ##国际时间
RTC time ##硬件时间
Timezone ##时区
timedatectl 管理系统时间
timedatectl status(可加可不加) 显示当前时间信息
timedatectl set-time 设定当前时间
timedatectl set-timezone “Asia/Shanghai" 更改当前时区为东8区
timedatectl set-local-rtc 0|1 设定是否使用utc时间 vim /etc/adjtime
timedatectl list-timezones 查看支持的所有时区
########## 新的日志采集方式journal ##########
journalctl ##日志查看工具(看不了开机前的日志)
-n 3 ##查看最近3条日志
-p err ##查看错误日志
-o verbose ##查看日志的详细参数
--since ##查看从什么时间开始的日志
--until ##查看到什么时间为止的日志
journalctl
journalctl -n 3 查看最近3条日志
journalctl -p err 查看错误日志
journalctl -o verbose 查看日志的详细参数
journalctl --since --until 查看一个时间段的日志
如何使用systemd-journal 保存系统日志
默认systemd-journald是不保存系统日志到硬盘的
那么关机后再次开机只能看到本次开机之后的日志
上次关机之前的日志是无法查看的,那么怎么生成永久生效的日志呢
以下就是步骤
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
系统初始化程序控制这个日志,改这个文件的所有组为systemd-journal
这样系统就能识别这个文件了,把这个文件放入这个组,让组控制这个文件
chmod g+s /var/log/journal
改这个文件的权限,使这个文件的systemd-journal组都能查看这个日志
ls -ld /var/log/journal/ 查看文件属性
ps aux | grep journal 查看进程
killall -1 systemd-journald 进程重新加载配置
ls /var/log/journal 可看到(946cb0e817ea4adb16183df8c4fc817)
bootctl 重启
journalctl(可以看到之前的日志了 就是可以采集日志)
date(查看系统当前时间)
reboot(重启系统 相当于关机)
journalctl(再次查看仍然能看到系统当前时间之前的日志了)
因为采集的日志放到了硬盘里面
只有这样使用journalctl查看日志的时候,才会看到系统开机之前的日志
只有硬盘的东西才可以永久保存
内存里面的东西都是开机之后才有的