【Linux】日志分析与管理

作为一个运维,如果不会看日志,就好比是冬天刚刚用热水泡完了脚,接着就立马让人把水喝掉。

目录

一、Inode介绍

1.1 什么是inode

1.2 inode表内容

1.3 查看inode号的方式

二、日志分析

 2.1 日志的用途

2.2 日志的分类

2.3 日志级别

2.4 关于用户登陆的日志

三、日志管理

3.1 日志的配置文件

3.2 一些常见用户日志

 3.3 rsyslog配置文件

3.4  如何为程序设置专属的独立日志

3.5 远程日志

3.6日志管理工具——journalctl


一、Inode介绍

1.1 什么是inode

  • inode号通常用于Linux系统的存储文件和目录元数据信息的数据结构
  • 每个文件和目录在文件系统中都有对应的inode,inode中存储了文件的各种元信息,如文件类型、所有者、权限、大小、创建时间、修改时间等信息,以及指向文件数据块的指针
  • 删除文件时,若该文件有多个指向它的inode,则不会释放空间,需要删除所有指向它的inode才会释放存储空间

1.2 inode表内容

每一个inode表记录对应的保存了以下信息:

  • inode number 节点号

  • 文件类型

  • 权限

  • UID

  • GID

  • 链接数(指向这个文件名路径名称个数)

  • 该文件的大小和不同的时间戳

  • 指向磁盘上文件的数据块指针

  • 有关文件的其他数据

1.3 查看inode号的方式

ls -i 文件名

stat 文件名

df -i     #用于查看文件系统的inode号

 注意!!!

  1. inode号在同一设备中是唯一的,但是在不同分区或不同硬盘中可以有相同inode号
     
  2. 达到inode数量上限时,文件系统将无法创建新的文件或目录,无论是否还有空间。

                                                                                                                                                       

二、日志分析

 2.1 日志的用途

  • 记录系统或程序在系统中的运行事件
  • 通过查看日志可以帮助排查系统故障

2.2 日志的分类

  • 系统日志:操作系统运行中发生的事件和故障
  • 应用日志:某一程序运行中发生的事件和故障

2.3 日志级别

事件的关键程度:

级别消息级别说明
0EMERG紧急会导致主机系统不可用
1ALERT警告必须马上采取措施解决问题
2CRIT严重比较严重的情况
3ERROR错误运行出现错误
4WARNING提醒可能影响系统功能,需要提醒用户的重要事件
5NOTICE注意不会影响正常功能,但是需要注意的事件
6INFO信息一般信息
7DEBUG调试程序或系统调试信息等

2.4 关于用户登陆的日志

日志作用命令
btmp查看登录失败的用户lastb
lastlog查看用户最后一次登录情况lastlog
wtmp用户成功登录的日志last

last 命令用于查询成功登录到系统的用户记录

lastb 命令用于查询登录失败的用户记录

lastlog用于查看用户最后一次登录情况

三、日志管理

3.1 日志的配置文件

Linux操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下

内核及系统日志由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf

3.2 一些常见用户日志

/var/log/lastlog记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看
/var/log/secure记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/wtmp永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
/var/log/btmp记录当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看

 3.3 rsyslog配置文件

/etc/rsyslog.conf 配置文件格式:由三部分组成

  • MODULES:相关模块配置

  • GLOBAL DIRECTIVES:全局配置

  • RULES:日志记录相关的规则配置

RULES配置格式:

通式:

服务程序.记录的日志级别       日志文件的位置(绝对路径)

facility.priority; 
#分类     日志的级别


*: 所有级别
none:没有级别,即不记录
PRIORITY:指定级别(含)以上的所有级别
=PRIORITY:仅记录指定级别的日志信息

文件路径:通常在/var/log/,文件路径前的 ‘ - ’ 表示异步写入   

异步:记录一段日志后统一存入磁盘

同步:内存中磁盘上有一条就记录一条


用户:将日志事件通知给指定的用户,* 表示登录的所有用户
日志服务器:@host把日志送往至指定的远程UDP日志服务器

                      @@host 将日志发送到远程TCP日志服务器
管道: | COMMAND,转发给其它命令处理

3.4  如何为程序设置专属的独立日志

举例:

ssh服务的日志默认放在/var/log/secure下,不利于我们观察,现在将其日志独立出来

操作目的:利用rsyslog软件给ssh生成独立的日志文件


1. 修改ssh的配置文件


2. 修改rsyslog的配置文件

系统提供了local0 ~ local6 供用户自定义使用


3. 重新启动rsyslog和ssh服务后,使用ssh服务,查看日志文件


配置成功!

3.5 远程日志

 操作用途:用于管理10-20台服务器

 操作目的:将日志传输到远程服务器

注意:本实验之前请关闭两台主机的防火墙


1. 配置两台主机的/etc/rsyslog.conf文件,打开tcp端口协议

第一台:

第二台:


2. 查看514端口是否打开

第一台:

第二台:


3. 配置/etc/rsyslog.conf文件,配置接收日志的主机IP


4. 测试

第一台:

第二台:


成功

3.6日志管理工具——journalctl

CentOS 7 以后版,利用Systemd 统一管理所有 Unit 的启动日志。

带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。

1. 配置文件

/etc/systemd/journald.conf

2. 命令格式

journalctl [OPTIONS...] [MATCHES...]

查看日志的重要命令:

#显示最近的提示信息
 journalctl -xe
 systemctl status   软件名

#日志默认分页输出,--no-pager 改为正常的标准输出
 journalctl --no-pager

#查看所有日志(默认情况下 ,只保存本次启动的日志)
 journalctl


#查看内核日志(不显示应用日志)
 journalctl -k


#查看系统本次启动的日志    实战案例!!!
 journalctl -b
 journalctl -b -0
#查看上一次启动的日志(需更改设置)
 journalctl -b -1


#查看指定时间的日志   -S=since    -U=unit
 journalctl --since="2023-10-30 18:10:30"
 journalctl --since "20 min ago"
 journalctl --since yesterday
 journalctl -S "2024-03-31 2:00" -U "2024-04-22 03:00"
 journalctl --since 09:00 --until "1 hour ago"


#实时滚动显示最新日志
 journalctl -f


3.7 logrotate——日志转储、分割

3.7.1 相关文件

  • 计划任务:/etc/cron.daily/logrotate
  • 配置文件:/etc/logrotate.conf
  • 日志文件:/var/lib/logrotate/logrotate.status

配置文件/etc/logrotate.conf主要参数:

vim /etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
weekly 
#一周生成一个新的日志文件

# keep 4 weeks worth of backlogs
rotate 4
#只保留最近的4个文件


# use date as a suffix of the rotated file
dateext
# 添加一个日期后缀

程序还可以设置独立的配置文件在/etc/logrotate.d/下

3.7.2 配置参数及用例

配置参数说明
compress通过gzip压缩转储以后的日志
nocompress不压缩
copytruncate用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate备份日志文件但是不截断
create mode ownergroup转储文件,使用指定的权限,所有者,所属组创建新的日志文件
nocreate不建立新的日志文件
delaycompress和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress覆盖 delaycompress 选项,转储同时压缩
errors address专储时的错误信息发送到指定的Email地址
ifempty即使是空文件也转储,此为默认选项
notifempty如果是空文件的话,不转储
mail address把转储的日志文件发送到指定的E-mail 地址
nomail转储时不发送日志文件
olddir directory转储后的日志文件放入指定目录,必须和当前日志文件在同一个文件系统
noolddir转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript在转储以前需要执行的命令,这两个关键字必须单独成行
postrotate/endscript在转储以后需要执行的命令,这两个关键字必须单独成行
daily指定转储周期为每天
weekly指定转储周期为每周
monthly指定转储周期为每月
rotate count指定日志文件删除之前转储的次数,0指没有备份,5指保留5个备份
tabooext [+] list让logrotate*不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig,.rpmsave, v, 和~
size size当日志文件到达指定的大小时才转储bytes(缺省)及KB或MB
sharedscripts默认,对每个转储日志运行prerotate和postrotate脚本,日志文件的绝对路径作为第一个参数传递给脚本。 这意味着单个脚本可以针对与多个文件匹配的日志文件条目多次运行(例如/ var / log / news /.example)。 如果指定此项sharedscripts,则无论有多少个日志*与通配符模式匹配,脚本都只会运行一次
nosharedscripts针对每一个转储的日志文件,都执行一次prerotate和 postrotate脚本,此为默认值
missingok如果日志不存在,不提示错误,继续处理下一个
nomissingok如果日志不存在,提示错误,此为默认值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/570978.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flink学习(七)-单词统计

前言 Flink是流批一体的框架。因此既可以处理以流的方式处理,也可以按批次处理。 一、代码基础格式 //1st 设置执行环境 xxxEnvironment env xxxEnvironment.getEnvironment;//2nd 设置流 DataSource xxxDSenv.xxxx();//3rd 设置转换 Xxx transformation xxxDS.…

简述MASM宏汇编

Hello , 我是小恒不会java。今天写写x86相关底层的东西 寄存器 8086由BIU和EU组成 8088/8086寄存器有14个。8通用,4段,1指针,1标志 8个通用寄存器:这些寄存器可以用来存储任意类型的数据,包括整数、地址等。8086有8个…

Modbus转Profinet网关接电表与工控机通讯

Modbus转Profinet网关(XD-MDPN100/300)的主要功能是实现Modbus协议和Profinet协议之间的转换和通信。Modbus转Profinet网关集成了Modbus和Profinet两种协议,支持Modbus RTU主站/从站,并可以与RS485接口的设备,如变频器…

找对方法,单位信息宣传工作向媒体投稿其实也简单

曾经,作为一名肩负单位信息宣传重任的我,每当面对那堆叠如山的稿件与闪烁不定的电脑屏幕,心中总会涌起一股无尽的焦虑与疲惫。尤其在向媒体投稿这个环节,我仿佛陷入了一个难以挣脱的漩涡,邮箱投稿的艰辛、审核的严苛、出稿的迟缓以及成功发表的少之又少,如同一座座无形的大山压…

力扣面试 150二叉搜索树迭代器 中序遍历 栈模拟递归 步骤拆分

Problem: 173. 二叉搜索树迭代器 思路 &#x1f469;‍&#x1f3eb; 三叶 复杂度 时间复杂度: O ( 1 ) O(1) O(1) 空间复杂度: O ( h ) O(h) O(h) Code class BSTIterator { Stack<TreeNode> d new Stack<>();public BSTIterator(TreeNode root){dfsLe…

书生·浦语大模型第二期实战营第七节-OpenCompass 大模型评测实战 笔记和作业

来源&#xff1a; 视频教程&#xff1a;https://www.bilibili.com/video/BV1Pm41127jU/?spm_id_from333.788&vd_sourcef4a51f7f5a63e756f73ad0dff318c1a3 文字教程&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md 作业来源&#x…

day12 过一遍Nestjs框架(java转ts全栈/3R教室)

介绍&#xff1a;NestJS是Ts技术栈的后端框架&#xff0c;相当于Java中的springboot。 学习方法&#xff1a;与java技术体系进行对比学习。学习目标&#xff1a;nest相关知识也是挺多&#xff0c;但对比学spring的时候&#xff0c;大部分在项目生产中都是套路化的&#xff0c;大…

SpringMVC基础篇(二)

文章目录 1.Postman1.基本介绍Postman是什么&#xff1f; 2.Postman快速入门1.Postman下载点击安装自动安装在系统盘 2.基本操作1.修改字体大小2.ctrl “” 放大页面3.进入创建请求界面 2.需求分析3.具体操作4.保存请求到文件夹中1.点击保存2.创建新的文件夹3.保存成功 3.使用…

Linux系统IO

Linux系统中的IO函数主要包括两大类&#xff1a;标准C库中的函数和Linux系统调用。这些函数可以用于文件操作、网络通信、设备控制等多种IO任务。以下是Linux系统中常用的IO函数和系统调用的概述&#xff1a; 标准C库IO函数 这些函数是高级的、封装好的&#xff0c;并且与操作…

一些好听且有心意的英文全名Burwood新南威尔士州伯伍德喝酒上脸就是乙醛中毒1. 康奈尔大学官宣恢复标化要求2. 香港城市大学(东莞)正式设立!

目录 一些好听且有心意的英文全名 Burwood新南威尔士州伯伍德 喝酒上脸就是乙醛中毒 1. 康奈尔大学官宣恢复标化要求 2. 香港城市大学&#xff08;东莞&#xff09;正式设立&#xff01; 一些好听且有心意的英文全名 在选择好听且有意义的英文全名时&#xff0c;我们可…

[MoeCTF-2022]Sqlmap_boy

title:[MoeCTF 2022]Sqlmap_boy 查看网页源代码&#xff0c;得到提示 <!-- $sql select username,password from users where username".$username." && password".$password.";; --> 用万能密码绕过&#xff0c;用’"闭合 爆数据库…

【NLP】大语言模型基础之GPT

大语言模型基础之GPT GPT简介1. 无监督预训练2. 有监督下游任务微调 GPT-4体系结构1. GPT-4的模型结构2. GPT-4并行策略3. GPT-4中的专家并行GPT-4的特点 参考连接 以ELMo为代表的动态词向量模型开启了语言模型预训练的大门&#xff0c;此后&#xff0c;出现了以GPT和BERT为代表…

Simulink从0搭建模型03-Enabled Subsystem 使能子系统

参考博客 b站视频 【Simulink 0基础入门教程 P4 使能子系统 Enabled Subsystem 的使用介绍】 个人听了这个博主的视频风格觉得很适合我入门学习&#xff0c;讲得很清楚。 另外&#xff0c;视频里面教得很详细了&#xff0c;我也不会再详细写怎么打开创建等步骤&#xff0c;跟着…

年如何在不丢失数据的情况下解锁锁定的 Android 手机?

当您忘记密码、PIN 码或图案并且想要解锁 Android 手机时&#xff0c;您可能会丢失 Android 手机上的数据。但您无需再担心&#xff0c;因为在这里&#xff0c;我们想出了几种解锁锁定的 Android 手机而不丢失数据的方法。 方法 1. 使用 Android Unlock 解锁锁定的 Android 且不…

拿捏 顺序表(1)

目录 1. 顺序表的分类2. 顺序表实现3. 顺序表实现完整代码4. 总结 前言: 一天xxx想存储一组数据, 并且能够轻松的实现删除和增加, 此时数组大胆站出, 但是每次都需要遍历一遍数组, 来确定已经存储的元素个数, 太麻烦了, 于是迎来了顺序表不屑的调侃: 数组你不行啊… 顺序表是一…

MSE实现全链路灰度实践

技术架构包括以下基础设施和云服务&#xff1a; 1个地域&#xff1a;ACK集群、微服务应用、MSE实例均部署在同一地域下。 1个专有网络VPC&#xff1a;形成云上私有网络&#xff0c;确保核心云资源的网络环境&#xff0c;如容器服务ACK、微服务引擎MSE。 ACK集群&#xff1a;简单…

升级 jQuery:努力打造健康的 Web 生态

jQuery 对 Web 的影响始终是显而易见的。当 jQuery 在 2006 年首次推出时&#xff0c;几乎立即成为 Web 开发人员的基本工具。它简化了 JavaScript 编程&#xff0c;使操作 HTML 文档、处理事件、执行动画等变得更加容易。从那时起&#xff0c;它在 Web 标准和浏览器功能的演变…

idea中打印日志不会乱码,但是部署到外部tomcat中乱码了。

问题&#xff1a;如图Tomcat乱码&#xff0c;而且启动时的系统日志不会乱码&#xff0c;webapp中的打印日志才乱码。 idea中的情况如下&#xff1a;正常中文展示。 问题分析&#xff1a;网上分析的原因是Tomcat配置的字符集和web应用的字符集不匹配&#xff0c;网上集中的解决…

Springboot的日常操作技巧

文章目录 1、自定义横幅2、容器刷新后触发方法自定义3、容器启动后触发方法自定义**CommandLineRunner**ApplicationRunner 不定时增加 参考文章 1、自定义横幅 简单就一点你需要把banner.text放到classpath 路径下 &#xff0c;默认它会找叫做banner的文件&#xff0c;各种格式…

“奇观”初见,祁门竞赛上海正式发

布给上下山水、左右人文的“徽州”&#xff0c;另起一笔“烟火” 城市更新从空间营造进入地方创生。何为地方&#xff1f;如何创生&#xff1f;其关键也许在于“持续打开”&#xff0c;源源不断吸引新生力量参与&#xff0c;从在地文化中生长出创作生态。 镶嵌于长三角腹地&a…