【Linux】日志分析与管理

news2024/12/22 16:03:11

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

目录

一、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如果日志不存在,提示错误,此为默认值

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电力调度自动化系统由什么构成?

电力调度自动化系统由什么构成? 电力调度自动化系统通过数据采集与传输、数据处理与存储、监视与控制、优化与决策、通信网络和系统应用软件等构成,实现对电力系统的监控、控制和优化。 电力调度自动化系统是一种集成了计算机技术、通信技术、自动化技术…

从阿里云OSS迁移到AWS S3的步骤

随着企业数字化转型的加速,云计算成为企业IT基础设施不可或缺的部分。对象存储作为云计算的重要组成部分,为企业提供了可靠、安全、低成本的数据存储和管理解决方案。在选择对象存储服务时,企业需要根据自身需求和发展战略来进行全面评估。我们九河云,获得AWS官方认…

vue3 修改路由中的meta属性

有些时候可能需要在路由跳转前后修改meta里面的相关属性值,这个时候就需要使用钩子函数(路由守卫),钩子函数有全局钩子,局部组件钩子函数以及路由配置里面的钩子函数 (这些也叫路由守卫) 1.全局…

Windows 10 安装配置WSL2(Ubuntu 20.04)教程

Windows 10 安装配置WSL2(Ubuntu 20.04)教程 一、WSL简介 WSL(Windows Subsystem for Linux)是一个兼容层,允许在Windows 10上原生运行Linux二进制可执行文件。 二、安装WSL2 3.1 传统手动安装 更新系统&#xff…

“亚马逊依赖”之下,傲基科技的品牌势能如何提升?

受益于出口政策红利、低人工成本、完善的供应链以及成熟的生产工艺优势,近年来我国家具出口行业迅速发展。 数据显示,我国家具出口规模1995年仅为11.06亿美元,至2023年增至641.96亿美元。随着出口规模持续扩大,相关企业积极走入公…

问题速查手册(时实更新)【Ctrl+F】输入关键词可快速查询

1.1.虚拟机和机器人上树莓派的密码是多少 虚拟机和小车的账号和密码都是nanorobot,在linux下输入密码无任何提示,退格键也没有用。输错请按回车后重新输入。 注:2021年四月份以后购买的机器人账号和密码已更改为bingda 1.2.请严格区分PC端…

冯喜运:4.24 周三黄金原油市场分析报告及操作策略

黄金消息面解析:周三(4月24日)黄金反弹后微幅回跌,金价在2325美元附近喘息。尽管美国国债收益率下降,美元走弱,金价未能维持涨势。标普全球PMI弱于预期,引发了对美联储可能降息的猜测。中东地缘紧张局势有所缓解&#…

pom文件依赖报红问题

dependencyManagement标签下依赖报红 如图 dependencyManagement标签下依赖报红问题,原因是dependencyManagement标签下的包不会被下载,repository里根本没有 解决方法 :将依赖复制到dependencies标签下,再reload pom文件&#x…

力扣HOT100 - 230. 二叉搜索树中第K小的元素

解题思路&#xff1a; class Solution {List<Integer> list new ArrayList<>();public int kthSmallest(TreeNode root, int k) {dfs(root);return list.get(k - 1);}public void dfs(TreeNode root) {if (root null) return;dfs(root.left);list.add(root.val)…

【Linux】gdb的简单使用

文章目录 一、gdb是什么&#xff1f;二、使用说明1. 安装2. 注意事项3. 常用调试指令3.1 gdb3.2 l3.3 r3.4 n3.5 s3.6 b3.7 info b3.8 finish3.9 p3.10 set var3.11 c3.12 d breakpoints3.13 d n3.14 disable/enable breakpoints3.15 disable/enable n3.16 info b3.17 display …

男生一般穿什么裤子好看?五大爆款男装精选测评!

男生裤子要怎么选才能找到适合自己的裤子呢&#xff1f;这肯定是大家选裤子时经常出现的一个疑问了&#xff0c;现在的市面上虽然款式风格非常多&#xff0c;但是由于品牌鱼龙混杂的原因&#xff0c;不同的裤子质量也参差不齐。为了帮助各位男同胞能选到适合自己的裤子&#xf…

Springboot 整合 Quartz框架做定时任务

在Spring Boot中整合Quartz&#xff0c;可以实现定时任务调度的功能 1、首先&#xff0c;在pom.xml文件中添加Quartz和Spring Boot Starter Quartz的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

Day15-进程和线程-开启线程的三种方式Thread类的常见方法线程的安全和同步线程池

1. 进程和线程-开启线程的三种方式 1.1 进程和线程的介绍 1.2 开启线程的三种方式 1.2.1 继承Thread类 package com.itheima.thread;public class ThreadDemo1 {/*开启线程第一种方式: 继承Thread类1. 编写一个类继承Thread2. 重写run方法3. 将线程任务代码写在run方法中4. …

无人机探测技术,无人机侦测频谱仪技术实现详解

频谱仪&#xff0c;又称为频谱分析仪&#xff0c;是一种用于测量电信号频谱特性的仪器。其基本原理是通过将时域信号转换为频域信号&#xff0c;进而分析信号的频率成分、功率分布、谐波失真等参数。频谱仪利用快速傅里叶变换&#xff08;FFT&#xff09;算法&#xff0c;将采集…

复习python函数

复习python函数 1.对函数的理解函数的传递方式返回值 return可通过help()函数查看函数说明作用域 2.不定长参数3.递归4.高阶函数将函数作为参数传递将函数作为返回值返回 5.匿名函数6.装饰器 1.对函数的理解 函数可以用来保存一些可执行的代码&#xff0c;并且可以在需要时&am…

C语言—贪吃蛇(链表)超详解

目录 游戏背景 游戏展示效果 需要实现的功能 贪吃蛇地图绘制&#xff1a; 蛇吃食物的功能&#xff1a; 蛇的移动控制&#xff1a; 蛇撞墙死亡&#xff1a; 蛇撞自身死亡&#xff1a; 计算得分&#xff1a; 蛇身加速、减速&#xff1a; 暂停游戏&#xff1a; 技术要…

关注四个要点,以“韧性”助力大数据局数据安全体系化建设

近日&#xff0c;中国互联网协会数字政府发展工作委员会主办的“推进政务服务提质增效的思考与实践”主题沙龙活动在京举行&#xff0c;中央、地方政府信息化部门相关负责同志及工委会18家成员单位的业界专家和团队负责人参会。 美创科技获邀参加&#xff0c;技术专家张骥带来《…

神州设备互联接口IPV6地址用本地链路地址配置路由综合运用

一、基本配置: SW-1: SW-1>ena SW-1#conf SW-1(config)#ipv6 enable SW-1(config)#vlan 100 SW-1(config)#int l1 SW-1(config-if-loopback1)#ip add 1.1.1.1 255.255.255.255 SW-1(config-if-loopback1)#ipv6 add 2001:1::1/128 SW-1(config-if-loopback1)#e…

python绘制随机地形地图

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 当我们谈论计算机编程中的地图生成时&#xff0c;通常会想到游戏开发、仿真模拟或者数据可视…

使用预训练模型构建自己的深度学习模型(迁移学习)

在深度学习的实际应用中&#xff0c;很少会去从头训练一个网络&#xff0c;尤其是当没有大量数据的时候。即便拥有大量数据&#xff0c;从头训练一个网络也很耗时&#xff0c;因为在大数据集上所构建的网络通常模型参数量很大&#xff0c;训练成本大。所以在构建深度学习应用时…