Linux系统中的日志管理
实验环
systemctl stop firewalld(关闭火墙)
1.journald
服务名称:systemd-journald.service
journalctl 默认日志存放路径:/run/log
1 journalctl命令的用法
journalctl
-n 3 日志的最新3条
-f 监控日志
-o 设定日志的显示方式
-o short 经典模式显示日志
-o verbose 显示日志的全部字节
-o export 适合传出和备份的二进制格式
-o json js格式显示输出
-p 显示制定级别的日志
-p 0 emerg系统的严重问题日志
1 alert系统中立即要更改的信息
2 crit严重级别会导致系统软件不能正常工作
3 err程序报错
4 warning程序警告
5 notice重要信息的普通日志
6 info普通信息
7 debug程序拍错信息
-F PRIORITY 查看可控日志级别
-u sshd 指定查看服务
--disk-usage 查看日志大小
--vacuum-size=1G 设定日志存放大小
--vacuum-time=1W 日志在系统中最长存放时间
--since "2022-04-25 11:00:00" 显示11:00后的日志
--until "2022-04-25 11:05:00" 显示日志到11:05
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service
2 用journald服务永久存放日志
系统中默认日志在:/run/log/journal中
默认方式在系统重启后日志会被清理,要永久保存日志请完成以下操作:
mkdir /var/log/journal chgrp systemd-journal /var/log/journal chmod 2775 /var/log/journal systemctl restart systemd-journald.service 当服务重启日志存放路径会被制定到: /var/log/journal 测试: 1.在操作以上步骤之前查看日志 2.重启系统 3.再次查看日志 4.可以看到日志是不会被保存下来的只能看到重启之后的日志 5.完成以上操作后再次重启系统可以看到日志是被保存下来的
2.rsyslog
服务名称:rsyslog.service 日志存放: /var/log/messages #系统服务日志,常规信息,服务报错 /var/log/secure #系统认证信息日志 /var/log/maillog #系统邮件日志信息 /var/log/cron #系统定时任务信息 /var/log/boot.log #系统启动日志信息 配置文件:/etc/rsyslog.conf 1.自定义日志采集路径 vim /etc/rsyslog.conf 更改文件日志类型;日志级别;日志存放路径; *.* /var/log/free ##把系统中所有级别的日志存放到free中 *.*;authpriv.none /var/log/free 把系统中所有级别的日志存放到free中 ,但是authpriv不存放到free中
日志类型
auth #用户认证 authpriv #服务认证 cron #时间任务 kern #内核类型 mail #邮件 news #系统更新信息 user #用户 日志级别 debug #程序排错信息 info #程序常规运行信息 notice #重要信息的普通日志 waring #程序警告 err #程序报错 crit #严重级别会导致系统软件不能正常工作 alert #系统中立即要更改的信息 emerg #系统的严重问题日志 none #不采集
2.如何更改日志采集格式
1定义日志采集格式 $template FREE_FORMAT, " %FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag% %msg%n" #FREE_FORMAT: 格式名称 #%FROMHOST-IP%: 日志来源主机IP #%timegenerated%: 日志生成时间 #%syslogtag%: 日志生成服务 #%msg%: 日志内容 #n: 换行
2设定日志采集格式应用
*.*;authpriv.none /var/log/westos;WESTOS module(load="builtin:omfile" Template="WESTOS_FORMAT") ##默认采用WESTOS_FORMAT格式
3.日志的远程同步
westos_node1:192.168.155.100 存放日志作为日志接受端,所有人日志都存放到此台主机 westos_linux:192.168.155.200 发送日志到westos_node1主机中 1.在westos_node1中设定接受所有人的日志 systemctl stop firewalld vim /etc/rsyslog.conf 19 module(load="imudp") ##打开日志接受插件 20 input(type="imudp" port="514") ##指定插件使用接口 systemctl restart rsyslog
查询端口: udp 0 0 0.0.0.0:514 0.0.0.0:*0 0 48558 2989/rsyslogd udp6 0 0 :::514: ::*0 0 48559 2989/rsyslogd
2.westos_linux中设定发送日志到westos_node1中 vim/etc/rsyslog.conf *.* @192.168.155.100 systemctl restart rsyslog @ 表示使用udp传输日志 @@ 表示使用tcp传输日志 @192.168.155.100 把本机日志用udp的传输方式发送到192.168.155.100主机
测试:
在westos_linux和westos_node1中 > /var/log/messages 在westos_linux中 logger westos test message 在westos_node1中可以看到westos_linux中生成的日志!!
3.timedatectl
timedatectl set-time "2222-02-22 22:22" ##设定系统时间 timedatectl list-timezones ##显示系统的所有时区 timedatectl set-timezone "Africa/Bangui" ##设定系统时区 timedatectl set-local-rtc0|1 ##设定系统时间计算方式 ,0表示使用utc时间计算方式
4.时间同步服务
服务名称: chronyd.service 配置文件:/etc/chrony.conf 在free2作为时间共享端free1同步free2 时间端在time_server中 vim/etc/chrony.conf 26 allow 172.25.254.0/24 允许172.25.254.0网段主机同步时间 29 local stratum 10 开启时间同步服务器功能并设定级别为10 systemctl restart chronyd.service systemctl stop firewalld
在free2中共享时间端
让free1同步free2时间端
vim /etc/chrony.conf pool 192.168.2.200 iburst
在free1中 执行chronyc sources -v查看效果