【Linux】日志分析与管理

这篇具有很好参考价值的文章主要介绍了【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 日志级别

事件的关键程度:

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

2.4 关于用户登陆的日志

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

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

【Linux】日志分析与管理,Linux,linux,运维,服务器

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

【Linux】日志分析与管理,Linux,linux,运维,服务器

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

【Linux】日志分析与管理,Linux,linux,运维,服务器

三、日志管理

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的配置文件

【Linux】日志分析与管理,Linux,linux,运维,服务器

【Linux】日志分析与管理,Linux,linux,运维,服务器

【Linux】日志分析与管理,Linux,linux,运维,服务器


2. 修改rsyslog的配置文件

【Linux】日志分析与管理,Linux,linux,运维,服务器

【Linux】日志分析与管理,Linux,linux,运维,服务器

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

【Linux】日志分析与管理,Linux,linux,运维,服务器


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

【Linux】日志分析与管理,Linux,linux,运维,服务器


配置成功!

3.5 远程日志

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

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

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


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

第一台:

【Linux】日志分析与管理,Linux,linux,运维,服务器

【Linux】日志分析与管理,Linux,linux,运维,服务器

第二台:

【Linux】日志分析与管理,Linux,linux,运维,服务器


2. 查看514端口是否打开

第一台:

【Linux】日志分析与管理,Linux,linux,运维,服务器

第二台:

【Linux】日志分析与管理,Linux,linux,运维,服务器


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

【Linux】日志分析与管理,Linux,linux,运维,服务器

【Linux】日志分析与管理,Linux,linux,运维,服务器


4. 测试

第一台:

【Linux】日志分析与管理,Linux,linux,运维,服务器

第二台:

【Linux】日志分析与管理,Linux,linux,运维,服务器


成功

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/下文章来源地址https://www.toymoban.com/news/detail-857144.html

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

到了这里,关于【Linux】日志分析与管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【运维】Linux 跨服务器复制文件文件夹

    如果是云服务 建议用内网ip scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来

    2024年02月08日
    浏览(73)
  • linux定时删除服务器日志

    不说废话。直接进入操作流程 linux 定时任务是用的crontab 查看 crontab是否启动 dead 死的 启动crontab 再次查看状态 running  运转的 查看 crontab 查看 crontab任务 编辑 crontab任务 创建了一个任务  0 1 * * *  sh /workspace/java/del_log/dele_log.sh 每天1点自动执行 其中: 第一个号表示时间中的

    2024年02月09日
    浏览(47)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(91)
  • 服务器(Linux)查看Tomcat运行日志

    1、找到Tomcat安装位置 2、进入logs文件夹 3、实时查看tomcat日志信息 3、这样运行时就可以实时查看运行日志了,当想退出时候按 Ctrl+c 是退出tail命令。

    2024年02月11日
    浏览(68)
  • Linux服务器定时执行脚本清理日志

    程序的日志不正确或者启动脚本命令不正确,随着程序的持续运行,日志文件越来越大,持续占用设备硬盘,如果定期手动清理日志又比较占用大脑CPU和内存,如果忘了就是事故,所以写一个定时执行的脚本去清理日志很有必要。 清理日志有两种方式,一种是清空文件,主要

    2024年02月05日
    浏览(49)
  • linux服务器,nginx日志切割保存

    我们都知道,默认情况下,nginx的项目log是一直被累计写入的,随着时间越久,那么这个文件就会越大,这个时候如果我们要去做一些查找和排查就会比较困难,因为日志文件太大,操作起来比较费劲。 因此我们为了规避这个问题,提出日志切割的方案。 那日志切割的原理是

    2024年02月06日
    浏览(86)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(66)
  • Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月04日
    浏览(81)
  • 运维记录 会产生无用日志的服务器

    创建linux定时任务 crontab -e cron表达式 文件名.sh 查看linux定时任务 crontab -l 确认创建完成后重启cron service crond restart

    2024年04月11日
    浏览(46)
  • 【Linux学习笔记】Linux服务器:配置与管理samba服务器

    一、【linux学习笔记】红帽Linux 7.8系统在虚拟机上的安装 二、【Linux学习笔记】Linux系统的基本操作  三、【Linux学习笔记】管理Linux操作系统:用户管理  四、【Linux学习笔记】管理Linux操作系统:磁盘管理 五、【Linux学习笔记】管理Linux操作系统:软件安装  六、 【Linux学习

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包