Linux基础企业级日志管理及优化方式

1.系统日志的理解

    日志是由程序本身来产生的,进程和操作系统内核需要能够为发生的事件记录日志,这些日志可用于系统审核和问题的故障排除,一般这些日志永久存储/var/log目录中(硬盘)

2.系统日志管理服务

(1)systemd-journald.service
系统默认日志存放路径:/run/log/journal
日志分析,只能分析当前主机开启日志,重启系统以后这个日志就看不到了
a) journalctl命令的用法
journalctl -n 默认显示系统中最新10条日志信息
在这里插入图片描述
journalctl -n 3 显示最新3条日志信息
在这里插入图片描述
journalctl --since “2020-02-13 22:15” 显示设定时间之后的日志信息
在这里插入图片描述
journalctl --since --until 设定开始与结束的时间,让在该期间的数据输出
在这里插入图片描述
journalctl -o 设定日志的显示方式
journalxtl -o short 经典模式显示日志
每条日志信息会记录:事件发生的时间与日期;发生此事件的主机名;启动此事件的服务名称(如sshd)或指令与函式名称(如su,login…);该讯息的实际数据内容在这里插入图片描述
journalctl -o verbose 显示日志的全部字节
在这里插入图片描述
journalctl -o export 适合传出和备份的二进制格式
在这里插入图片描述
journalctl -o json js格式显示输出(java-scripts)
在这里插入图片描述
journalctl -p 显示指定级别的日志

emerg(0) 系统的严重问题日志,指系统几乎已经宕机的状态,通常大概只有硬件出问题,导致整个核心无法顺利运作,就会出现此等级的讯息
alert(1) 系统中立即要更改的信息
crit(2) 严重级别会导致系统软件不能正常工作
err(3) 程序报错
warning(4) 程序警告
notice(5) 重要信息的普通日志
info(6) 普通信息
debug(7) 程序排错信息

journalctl -p err 程序报错
在这里插入图片描述
journalctl -p crit 严重级别会导致系统软件不能正常工作
在这里插入图片描述

journalctl -F PRIORITY 查看可控日志级别(234567),0和1级别高journalctl命令不可管控
在这里插入图片描述
journalctl -u sshd 指定查看服务(sshd服务)
在这里插入图片描述
journalctl -f 持续显示journal日志的内容,实时监测日志
journalctl --disk-usage 查看日志大小
在这里插入图片描述
vim /etc/systemd/journald.conf 查看systemd-journald.service服务配置情况
在这里插入图片描述
临时日志回滚

–vacuum-size=1G 设定日志存放大小
–vacuum-time 日志在系统中最长存放时间

这种方式设定日志存放大小和存放时间是临时有效的,只在当前系统有效,重启后该设定将会消失

重启sshd服务后(10060sshd),如何查看之前的9915sshd服务日志?
在这里插入图片描述
在这里插入图片描述
执行journalctl -o verbose命令显示日志的全部字节,查询"/9915"服务,找出_PID和_SYSTEMD_UNIT=sshd.service讯息
在这里插入图片描述
在这里插入图片描述
journalctl _PID=9915 _SYSTEMD_UNIT=sshd.service 只输出9915sshd.service信息
在这里插入图片描述
b) 用journald服务永久存放日志
    默认方式在系统重启后日志会被清理,要永久保存日志需要存放到硬盘里面
    建立/var/log/journal目录,设定这个目录的拥有组为systemd-journal(不然journald程序是不识别这个目录的),权限为2775,设定特殊权限是为了保证/var/log/journal这个目录里面的所有文件最后都归属到这个目录的所有组里,不是这个组的文件systemd-journald.service这个服务是不能够识别的
在这里插入图片描述
重启系统后,之前的系统日志可以看到
在这里插入图片描述
(2)rsyslog.service

日志存放路径 用途
/var/log/messages 系统服务日志,常规信息,服务报错
/var/log/secure 系统认证信息日志
/var/log/maillog 系统邮件信息日志
/var/log/cron 与定时任务相关的日志文件
/var/log/boot.log 与系统启动有关的日志文件

    程序产生的日志是在内存中(程序在运行中,它的所有资源都在内存里),而在/var/log/messages(或者其它secure、maillog、crod、boot.log)看到的文件是在硬盘里面的。所以,有程序把内存当中的日志采集到硬盘里面,并且分门别类地放到各个文件中,这个程序就是rsyslog服务(不生产日志,只是日志的一个搬运工)
    在关闭rsyslog服务后进行的操作,日志在内存中产生,不会显示在/var/log/messages文件中,当重启syslog服务后,它会将之前没有采集到的日志信息重新采集到硬盘中/var/log/messages各个日志文件中
配置文件:/etc/rsyslog.conf
a) 自定义日志采集路径

日志文件类型 释义
auth 用户认证
authpriv 服务认证
cron 时间任务
kern 内核类型
mail 邮件类型
news 系统更新信息
user 用户

日志文件级别在systemd-journald服务已经列出
采集规则设定:日志类型 . 日志级别 日志存放路径
把系统中所有级别的日志都存放到westos中(* . * /var/log/westos)
在这里插入图片描述
在这里插入图片描述
把系统中所有级 别的日志存放到westos中,但是authpriv不存放到westos中
在这里插入图片描述
在这里插入图片描述

b)自定义日志采集格式
编辑配置文件 vim /etc/rsyslog.conf
用$template来指定自定义的采集格式,WESTOS为格式的名称,后面的 " " 里面的内容是采集的具体参数内容

%FROMHOST-IP% 日志来源主机IP
%timegenerated% 日志生成时间
%syslogtag% 日志生成服务
%msg% 日志内容
\n 换行

在这里插入图片描述
如果想让某一个类型的日志去使用这样的方式,在这个日志类型后加";WESTOS",如果想让默认的所有类型日志都使用这个格式,需要去改$Action这一行内容,把之前原有的都删掉,新格式加上去
在这里插入图片描述
在这里插入图片描述

c)日志的远程同步
rhel7_node1:192.168.1.10 存放日志作为日志接收端,所有人日志都存放到此台
主机
rhel8_node1:192.168.1.11 发送日志到rhel7_node1主机中
第一步:实验环境搭建
rhel8中设定发送日志到rhel7中
编辑配置文件vim /etc/rsyslog.conf     * . * @192.168.1.10

@ 表示使用UDP传输日志
@@ 表示使用TCP传输日志

在这里插入图片描述
在rhel7中设定接收所有人的日志
systemctl stop firewalld     关闭防火墙
编辑配置文件vim /etc/rsyslog.conf
15 $ModLoad imudp     打开日志接收插件
16 $UDPServerRun 514     指定插件使用接口
在这里插入图片描述
查询514端口状态,是否开启(已开启)
在这里插入图片描述
第二步:测试
在rhel7和8中 清空日志文件信息> /var/log/messages
在rhel8中
logger westos(logger用来专门生成测试日志)
在这里插入图片描述
在rhel7中可以看到rhel8中生成的日志
在这里插入图片描述
在这里插入图片描述

3.系统时间调整工具timedatectl

(1) timedatectl
默认回车以后,显示系统当中所有时间信息(本地时间、UTC时间可称为格林威治时间、系统的BIOS也就是硬件时间、时区)
时间的计算方式:硬件时间+当前所在的时区=系统当前时间
在这里插入图片描述
(2)timedatectl set-time 设定时间
在这里插入图片描述
(3)timedatectl set-timezone 设定时区位置
在这里插入图片描述

4.时间同步服务

服务名称: chronyd.service
配置文件: /etc/chrony.conf
现实需求:在同一个机房里面,所有服务器上面的时间怎样保持一致?
让一台主机把它的时间共享出来,另外一台主机查看它的时间并同步到自己主机上面就可以了

在rhel7主机作为时间源,rhel8主机同步rhel7主机时间
在rhel7中
编辑配置文件vim /etc/chrony.conf
26 allow 192.168.1.0/24    允许192.168.1.0网段主机同步时间
29 local stratum 10     开启时间同步服务器功能并设定级别为10

systemctl restart chronyd.service
systemctl stop firewalld
在这里插入图片描述
在这里插入图片描述

在rhel8中
编辑配置文件vim /etc/chrony.conf
pool 192.168.1.0 iburst    表示这个服务重启以后立即同步时间源的时间到本机
systemctl restart chronyd
在这里插入图片描述
查看:
在rhel8中查看时间:
现实已经变成rhel7中时间
使用chronyc 命令查看时间效果: chronyc sources -v
^* 服务器ip出现,证明时间已经同步过了
在这里插入图片描述

发布了23 篇原创文章 · 获赞 0 · 访问量 2488

猜你喜欢

转载自blog.csdn.net/weixin_45792518/article/details/104302431