linux系统日志管理
1.采集日志的文件在哪
/etc/rsyslog.conf
用vim改后要重启systemctl restart rsyslog.service
2.rsyslog的管理路径
日志采集存在以下文件内,可在rsyslog.conf里修改,需要重启
/var/log/messages #服务信息日志
/var/log/secure #系统登陆日志
/var/log/maillog #邮件服务日志
/var/log/cron #定时任务日志
/var/log/boot.log #系统启动日志
#> /var/log/cron #清空日志内容
在rsyslog.conf里保存路径前有一串文字,每一个词条由(日志类型).(生成相关信息)组成,由分号隔开词条。
2.远程同步日志
utp和tcp选择哪个,内网稳定选择utp(类似发短信),外网选择tcp(类似打电话会有回应收到)
发送:
在rsyslog.servic最后加*.* @172.25.254.228(此为接受的主机ip,两个@时为tcp发送)
接收:
解除rsyslog.conf第15,16行的注释。但此时数据被防火墙挡住了,必须修改
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开机不自动启动防火墙
cat查看文件内用很多local结尾的文件,干扰实验用>/etc/rc.d/rc.;coal删除,reboot重启
如果接受端自己看不到传输和自己的日志一定是采集规则出问题
按步骤输入的结果
3.日志采集格式设置
在现实中有些数据我们不需要,需要设置采集格式
在rsyslog.conf里rules下输入
$template (代号),"%timegenerated%(时间) %FROMHOST-IP%(来源) %syslogtag%(服务) %msg%(内容)\n(换行)"
此命令为设置某个代号代表采集规则
测试下,两台虚拟机都创建文件夹westos和输入以上命令
结果
4.时间同步
在现实生活中传输日志两方文件的时间戳不一样检查日志会很麻烦,需要共享时间来解决
vim打开/etc/chrony.conf
服务端:
22行写上allow 172.25.254.0/24 #允许访问我时间的主机范围
29行写上local stratum 10 #本机不同步别的时区,10代表共享等级,10换句话说就当作时间源
客户端:
第一行写server 172.25.254.228 iburst
systemctl restart chronyd 重读取以上
验证
chronyc sources -v最后一行显示匹配的网关
5.timedatectl命令
timedatectl #管理系统时间
timedatectl+以下
status #显示当前时间信息
set-time "2018-11-11 11:11:11" #设定当前时间
list-timezones #查看所有时区
set-timezone Aisa/shanghai#设定当前时区
set-local-rtc 0|1 #设定是否使用utc时间(改的是adjtime文件)
6.journalctl #日志查看工具
journalctl+以下
-n 3 #查看最近三条日志
--sincce 11:11 #查看从什么时间开始的日志
--until 11:20
#查看到什么时间为止的日志,这两个命令能用空格隔开一起用,意思是查看11.11点到11.20的日志
-o verbose #查看日志详细参数
-p err #查看错误日志
7.怎么使用systemd-journald保存系统日志
sysytemd-journald是不保存系统日志到硬盘的
关机重启后不能看到之前的日志
怎么保存到文件里呢
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal/
ls -ld /var/log/journal/
killall -1 systemd-journald
cd /var/log/journal/
ls(查看)
bootctl