日志服务管理和inode号

一、系统日志管理

1.1系统日志的介绍

在现实生活中,记录日志也非常重要,比如银行的转账记录,飞机上的黑盒子,那么将系统和应用发生的事件记录至日志中,以助于排错和分析使用

日志记录的内容包括:

  • 历史事件:时间,地点,人物,事件

  • 日志级别:事件的关键性程度,Loglevel error notice info debug

1.2rsyslog 系统日志服务

rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

rsyslog:管理日志

使用他的话,需要rsyslog软件和那个软件之间要支持

日志功能:

记录系统、程序运行中发生事情

1.3日志的种类

系统日志

/var/log/secure:放系统安全

/var/log/message:存放系统大部分文件

 用户登录日志

/var/log/btmp:查看用户登录失败的信息    用 lastb命令 看,因为btmp是二进制文件

/var/log/wtmp:查看哪些用户正常登录    用 last 命令查看

/var/log/lastlog:记录用户最后一次登录的信息    用 lastlog 命令查看

程序日志

和程序有关,有的有独立日志,有的没有

1.4journalctl:日志管理工具

CentOS 7 以后版,利用Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。

日志的配置文件

/etc/systemd/journald.conf

journalctl命令格式

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

选项说明:

--no-full, --full, -l
   如果字段内容超长则以省略号(...)截断以适应列宽。
   默认显示完整的字段内容(超长的部分换行显示或者被分页工具截断)。
   老旧的 -l/--full 选项 仅用于撤销已有的 --no-full 选项,除此之外没有其他用处。

-a, --all
   完整显示所有字段内容, 即使其中包含不可打印字符或者字段内容超长。


-f, --follow
   只显示最新的日志项,并且不断显示新生成的日志项。 此选项隐含了 -n 选项。

-e, --pager-end
   在分页工具内立即跳转到日志的尾部。 此选项隐含了 -n1000
   以确保分页工具不必缓存太多的日志行。 不过这个隐含的行数可以被明确设置的 -n
   选项覆盖。 注意,此选项仅可用于 less(1) 分页器。

 

-x, --catalog
   在日志的输出中增加一些解释性的短文本, 以帮助进一步说明日志的含义、
   问题的解决方案、支持论坛、 开发文档、以及其他任何内容。
   并非所有日志都有这些额外的帮助文本, 详见 Message Catalog Developer
   Documentation[5] 文档。
   注意,如果要将日志输出用于bug报告, 请不要使用此选项。

-n, --lines=
   限制显示最新的日志行数。 --pager-end 与 --follow 隐含了此选项。
   此选项的参数:若为正整数则表示最大行数; 若为 "all" 则表示不限制行数;
   若不设参数则表示默认值10行。


--no-tail
   显示所有日志行, 也就是用于撤销已有的 --lines= 选项(即使与 -f 连用)。


-r, --reverse
   反转日志行的输出顺序, 也就是最先显示最新的日志。


-o, --output=
   控制日志的输出格式。 可以使用如下选项:
   short
       这是默认值, 其输出格式与传统的 syslog[1] 文件的格式相似, 每条日志一行。
   short-iso
       与 short 类似,只是将时间戳字段以 ISO 8601 格式显示。
   short-precise
       与 short 类似,只是将时间戳字段的秒数精确到微秒级别。
   short-monotonic
       与 short 类似,只是将时间戳字段的零值从内核启动时开始计算。
   short-unix
       与 short 类似,只是将时间戳字段显示为从"UNIX时间原点"(1970-1-1 00:00:00
       UTC)以来的秒数。 精确到微秒级别。
   verbose
       以结构化的格式显示每条日志的所有字段。
    export
       将日志序列化为二进制字节流(大部分依然是文本) 以适用于备份与网络传输(详见
       Journal Export Format[2] 文档)。


   json
       将日志项按照JSON数据结构格式化, 每条日志一行(详见 Journal JSON Format[3]
       文档)。
   json-pretty
       将日志项按照JSON数据结构格式化, 但是每个字段一行, 以便于人类阅读。
   json-sse
       将日志项按照JSON数据结构格式化,每条日志一行,但是用大括号包围, 以适应
       Server-Sent Events[4] 的要求。
    cat
       仅显示日志的实际内容, 而不显示与此日志相关的任何元数据(包括时间戳)。

实例命令:

journalctl   -xe

 查看最后几个日志-----基本没什么用

journalctl -xe --no-pager

 

二、实验

1.实际操作,将ssh服务的日志单独设置

1.查看ssh服务的日志位置

tail -f /var/log/secure

2.添加自己文件位置

vim /etc/rsyslog.conf

3.修改ssh配置文件,32下一行添加自己的自定义

vim /etc/ssh/sshd_config

32 #SyslogFacility AUTHPRIV
33 SyslogFacility LOCAL6

 

4.重启服务

systemctl restart rsyslog.service sshd 

 

5.登录远程主机 172.16.18.4

ssh  172.16.18.4

6.具体查看一下日志文件

ls   /data/

cat   /data/sshd.log

7.开启远程登录ssh到主机;

ssh  172.16.18.4

单独调成文件

tail  -f  /data/sshd.log

 

2.远程日志功能

1.让两台主机,同步命令

2.关闭防火墙和核心防护

systemctl stop firewalld

setenforce 0

3.修改配置文件

vim /etc/rsyslog.conf

4.查看514端口是否开启;查看一下另一台主机是否开启,没有的话,按上操作开启一下

systemctl  restart rsyslog.service

ss -ntap |grep 514

5.主机1导给主机2,修改主机2的配置文件

6.重启;临时切换一下主机名

systemctl  restart rsyslog.service

hostname  test

su

7.概念说明

8.主机2中随便写入一条日志内容

logger "this is test log from 192.168.91.101 2"

9.最后,在主机1中查看一下,有没有刚刚主机2中的日志内容

三、inode号 

3.1介绍

在同一个设备上是唯一的

inode是有限资源,他的多少和磁盘大小有关

3.2访问文件流程:

根据文件夹中的文件名和inode号的关系,找到对应的inode表,再根据inode表中的指针,找到磁盘真实数据

3.3例题:

1.磁盘空间还剩余很多,但是无法继续建立文件?

原因是:inode号用完了

lvm:可以扩容

普通文件:删除没有用的空文件

2.我想看到几点几分到几点几分之间的日志

内存中

journalctl -S “2024-01-01 8:00” -U “2024 -02-02 8:00”

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

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

相关文章

Vue路由 - 工作原理(深入理解)

目标: 了解hash改变, 如何显示不同的组件的过程 1.基本思路: 用户点击了页面上的a链接 导致了 URL 地址栏中的 Hash 值发生了变化 前端js监听了到 Hash 地址的变化 前端js把当前 Hash 地址对应的组件渲染都浏览器中 2.实现简单的前端路由: 1.src/views/创建并在App.vue里…

springboot学生综合测评系统源码和论文

随着信息化时代的到来,管理系统都趋向于智能化、系统化,学生综合测评系统也不例外,但目前国内仍都使用人工管理,学校规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而…

scanf函数和printf函数

1.scanf函数 int scanf ( const char * format, ... );函数功能: 从键盘读取数据如果读取成功,返回读取到的数据个数如果读取失败,返回EOF 不常见的读取格式: %md -->读取m个宽度的数据 int main() {int n 0;scanf("%4d&…

Java里的实用类

1.枚举 语法: public enum 变量名{ 值一,值二} 某个变量的取值范围只能是有限个数的值时,就可以把这个变量定义成枚举类型。 2…装箱(boxing) 和拆箱(unboxing) 装箱(boxing&…

YOLOv5改进之OTA、SimOTA

一、OTA 1.1 原理 OTA原论文链接: https://readpaper.com/paper/3148566359 此处推荐一篇博文,对OTA讲解的非常详细: https://blog.csdn.net/hymn1993/article/details/127278641 1.2 如何改进 ota代码如下: import torch.nn.functional as F from utils.metrics import…

Android 屏蔽下拉状态栏(StatusBar)

Android 屏蔽下拉状态栏(StatusBar) 最近收到项目需求,需要屏蔽设备下拉状态栏(StatusBar),总结出两种修改方法,具体如下: 第一种: /vendor/mediatek/proprietary/pac…

【c++】vector模拟

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:能手撕vector模拟 > 毒鸡汤:在等待…

MYSQL - SQL优化

插入数据优化 小批量数据 批量插入 最好插入500-1000条比较好 手动提交事务 主键顺序插入 大批量插入数据 主键优化 页分裂 页合并 主键优化设计原则 order by优化 group by优化 limit优化 count优化 count(1)里面不一定必须1,数字都可以 update优化 更新字…

安卓多用户管理之Userinfo

目录 前言Userinfo----用户信息1.1 属性1.2 构造器1.3 信息的判断及获取方法1.3.1 获取默认用户类型1.3.2 基础信息判断 1.4 序列化部分 总结 前言 UserManagerService内部类UserData中有一个Userinfo类型的info参数,在UserData中并未有所体现,但在后续…

基于长短期神经网络lstm的电子密度预测

目录 背影 摘要 代码和数据下载:基于长短期神经网络lstm的电子密度预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88714821 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络lstm的电子密度预测 结果分析 展望 参考论文 背影 …

arch modelsim 解决无法运行

13.0的quartus modelsim版本10.1d 是32位的 修改/etc/pacman.conf [multilib] Include /etc/pacman.d/mirrorlistpacman -Sy安装 lib32-l…

《linux就该这样学》笔记(抽空更新)

2.3常用系统工作命令 2.3.1 echo 2.3.2 date 2.3.3 timedatectl 2.3.4 redoot 2.3.5 poweroff 2.3.6 wget 2.3.7 ps 2.3.8 pstree 2.3.9 top 2.3.10 nice 2.3.11 pidof 2.3.12 kill 2.3.13 killall 2.4系统状态检测命令 2.4.1 ifconfig 2.4.2 uname 2.4.3 upt…

OSPF基础

0x00 前言 本篇简述OSPF相关知识 0x01 正文 为什么需要动态路由协议 静态路由无法适应较大的网络无法动态的随着网络的变化而自动化,耗费人力 动态路由协议 什么是BGP协议 基于距离矢量算法修改后的算法形成协议,被称为路径矢量路由协议 BGP工作…

Spring MVC中JSON数据处理方式!!!

添加json依赖 <!--spring-json依赖--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency> 注解 RequestBody&#xff1a;作…

prometheus 监控 Hyperledger Fabric 网络

本例中使用的 fabric 版本为 2.4.1 修改 orderer , peer 节点 docker-compose 文件 orderer 节点&#xff1a; environment:- ORDERER_METRICS_PROVIDERprometheus- ORDERER_OPERATIONS_LISTENADDRESS0.0.0.0:8443 ports:- 8443:8443peer 节点&#xff1a; environment:- CO…

AGX更新Jetpack后无法SSH报错:写入管道指定不存在

AGX更新Jetpack后无法SSH报错&#xff1a;写入管道指定不存在 报错内容 > IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! > Someone could be eavesdropping on you right now (man-in-the-middle attack)! > It is also possible that a host key has ju…

Python正则表达式(python系列29)

前言&#xff1a;在实际开发中&#xff0c;正则表达式主要用在模式匹配&#xff08;检查一个字符是否符合某种格式&#xff09;和处理复杂的文本数据&#xff0c;例如查找&#xff0c;替换&#xff0c;分割。 定义&#xff1a;使用元字符&#xff08;具有特殊意义的专用字符&a…

【数据库原理】(16)关系数据理论的函数依赖

一.函数依赖的概念 函数依赖是关系数据库中核心的概念&#xff0c;它指的是在属性集之间存在的一种特定的关系。这种关系表明&#xff0c;一个属性集的值可以唯一确定另一个属性集的值。 属性子集&#xff1a;在关系模式中&#xff0c;X和Y可以是单个属性&#xff0c;也可以是…

scVI与MultiVI

scVI&#xff1a;https://docs.scvi-tools.org/en/stable/user_guide/models/scvi.html MultiVI&#xff1a;https://docs.scvi-tools.org/en/stable/user_guide/models/multivi.html 目录 scVI生成推理任务 MultiVI生成推理 scVI single cell variational inference提出了一个…

elementui dialog 回车时却刷新整个页面

到处都是坑&#xff0c;这个坑填完另一个坑还在等你。。。坑坑相连&#xff0c;坑坑不同。。。 使用el-dialog弹出一个表单&#xff0c;当我无意间敲到回车键时&#xff0c;整个页面被刷新了&#xff0c;又是一脸的懵逼。。。 经过查找文档发现解决方案为上述截图标记。。。 e…