1. 实验环境
两台能够通信的主机
2. journal日志查看工具的使用
企业7之前的系统没有
日志的收集工具:systemd-journald.service
查看路径:/run/log/journal/machine id/system.journal(machine id可用hostnamectl查看)
查看系统日志:
journalctl(显示从开机到现在的所有日志,/搜索关键字,q退出)
-n mun 查看最新的num条日志
--since “xx:xx:xx”--until “xx:xx:xx” 查看指定时间段的日志
-o 对输出进行设定:short(经典格式,默认)verbose(全字符格式)export(二进制格式)json(js格式)
-p num (num [0,7])指定查看日志级别
-F 查看日志指定列(例如UNIT查看日志中程序名称,PRIORITY查看日志可控级别)
-u 查看指定程序日志
8个日志级别:
0 emerg 最严重的错误,内核错误
1 alert 严重的系统程序错误,导致系统崩溃
2 crit 程序错误,导致程序无法运行
3 err 程序报错,导致程序部分功能缺失
4 warning 程序警告
5 notice 重要信息的普通日志
6 info 普通信息
7 debug 程序排错信息
日志的回滚(删掉老的,存进新的,目的是为了不消耗过多的硬盘资源)
journalctl --disk-usage 查看日志占用的硬盘大小
journalctl --vacuum-size=1G 指定日志最大存储容量
journalctl --vacuum-time=1w 指定日志最长存储时间(1week)
3. 利用systemd-journal永久存储日志
默认查看路径:/run/log,但/run下的东西在系统重启后会被清空,想要永久存储日志需要将日志从run下转移到硬盘中。
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journald
4. rsyslog日志的采集规则
默认存放规则:
/var/log/messages 系统服务日志,常规信息,服务报错信息
/var/log/secure 系统认证信息日志
/var/log/maillog 系统邮件日志信息
/var/log/cron 系统定时任务信息
/var/log/boot.log 系统启动日志信息
日志类型:
auth 用户认证
authpriv 服务认证
cron 定时任务
kern 内核类型
mail 邮件
news 系统更新信息
user 用户
日志级别:
debug 程序排错信息
info 程序常规运行信息
notice 重要信息的普通日志
waring 程序警告
err 程序报错,导致程序部分功能缺失
crit 导致程序无法正常运行
alert 严重的系统程序错误,系统中立即要更改的信息
emerg 系统的严重问题日志
none 不采集
配置文件路径:/etc/rsyslog.conf
编写格式:日志类型.日志级别 日志存放路径
保存退出后重启服务
e.g.*.* /var/log/westos 将系统中任何类型的任何级别的日志文件放在westos目录下
存放日志路径前若有-,代表实时采集日志
5. 日志远程同步方法
首先需要确定日志的发送方和接收方,且都关闭火墙
外网用TCP(@@),内网用UDP(@)
发送方:
vim /etc/rsyslog.conf
*.* @接收方ip
重启rsyslog服务
接收方:
vim /etc/rsyslog.conf
开启udp模块(module-udp两行)
重启rsyslog服务
查看端口:netstat -antlupe | grep rsyslog
测试:
接收方监控日志:tail -f /var/log/messages
发送方logger 字符生成日志
6. 日志采集格式的设定
默认格式:时间 主机名 进程所有人 内容
设定格式:
vim /etc/rsyslog.conf
在use default timestamp format下编写
$template TAB,“%FROMHOST-IP(来源ip)% %timegenerated(生成时间)% %syslogtag(程序名称)% %msg(内容)%\n”
在日志存放路径后指定使用该格式:;TAB
退出后重启rsyslog服务
将更改后的格式设定为默认格式:
将原本默认的格式注释掉,修改新格式中template中的内容为westos
退出后重启rsyslog服务
7. 手动管理系统时间
timedatectl:
local time:本机的系统时间
universal time:UTC时间(默认)
RTC time:硬件时间
更改系统时间:
关闭系统时间服务chronyd
timedatectl:
设定时间 set-time “xxxx-xx-xx xx:xx:xx”
设定时区 list-timezones “xx/xx”
设定当前系统时间为硬件时间 set-local-rtc num(num=0硬件时间和UTC时间一致;num=1硬件时间和系统时间一致)
8. 利用时间同步服统一idc机房时间
服务端:关闭火墙
vim /etc/chrony.conf
allow 0.0.0.0/0 允许所有人查看本机时间
取消注释local stratum 10
退出后重启chronyd服务
客户端:
vim /etc/chrony.conf
pool serverip iburst