Linux 系统日志及其归档

2024-01-09

主要记录Linux 系统需要关注的日志文件,以及日志归档服务 rsyslogd

系统日志服务

rsyslogd 日志服务

rsyslogd reliable and extended syslogd 可靠 可扩展的系统日志服务

Rsyslogd是一个系统实用程序,提供对消息日志记录的支持。同时支持internet和unix域套接字使该实用程序能够支持本地和远程日志记录。

配置文件

more /etc/rsyslog.conf|grep -v '#'|grep -v ^$
$umask 0022
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none;local0.none          /var/log/messages
authpriv.*          /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
local0.*          /var/log/keepalived.log

从上述的配置文件里面可以看到我们需要关注的系统日志文件,一般都不动这个配置

感兴趣可以上官网看看: RSyslog Documentation - rsyslog

logrotate 日志归档

logrotate rotates, compresses, and mails system logs 归档 压缩 邮件发送系统日志

配置文件

/etc/logrotate.conf
/etc/logrotate.d/

来,上配置文件,如下是默认的配置:

more /etc/logrotate.conf 
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly                 # 每次归档以月为周期
    create 0664 root utmp   # 不存在时依据权限 0664 root:utmp 创建
        minsize 1M
    rotate 1                # 转储保留次数,为0即归档时删除旧的归档
}

/var/log/btmp {
    missingok               # 默认off ,表示如果文件不存在,停止所有文件的归档
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

查看归档情况

more /var/lib/logrotate/logrotate.status

注意

/etc/logrotate.d/syslog 这里写着系统日志的归档方式

more /etc/logrotate.d/syslog
   sharedscripts
   postrotate
        /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
   endscript

logrotate 在每次对应的日志文件轮转后运行postrotate 与 endscript 之间的命令或脚本

message 里面能看到归档后执行结果
rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-38.el7" x-pid="1487" x-info="http://www.rsyslog.com"] rsyslogd was HUPed

系统日志简介

如下所有的文件默认指/var/log 目录下,如果不是将写全路径,主要是依据Centos 7版本

messages

从rsyslogd 的配置中可以看出来,message 文件包含了很多的系统日志,错误、警告、通知

一般,排查系统运行过程中出现的问题,会先从message入手

boot.log

系统的引导日志,系统开机看到刷刷刷的打印,内容就会记录在这里,记录了系统引导过程中的所有信息,包括硬件检测、内核加载、启动服务等

一般发现系统启动异常,比如启动慢,启动报错等问题,会从这里入手排查,看失败的任务有哪些,这都将会影响到系统启动

secure

安全日志文件,记录了系统中所有安全相关的信息,包括登录失败、系统入侵尝试、安全事件等

一般,我们需要检查secure日志里面登录失败记录,因为如果出现大量的不同用户登录失败的记录,就表示有人在尝试爆破服务器了,这时候需要特别关注,考虑加入黑名单或者更新ssh端口了

一些简单手段:

1、 /etc/hosts.deny  IP或者用户写进去,将无法通过ssh登录, 慎用

man HOSTS_ACCESS
或者
man hosts.deny

2、最好是屏蔽root用户登录,用普通用户登录再提权,修改ssh端口

3、添加sudo 失败尝试锁定

more /etc/pam.d/system-auth-ac
修改如下内容,5次输错后,锁定300秒
auth        required      pam_tally2.so deny=5 unlock_time=300

man pam_tally2 
This module maintains a count of attempted accesses, 
can reset count on success, can deny access if too many attempts fail.

Add the following line to /etc/pam.d/login to lock the account after 4 failed logins. 
Root account will be locked as well. The accounts will be
       automatically unlocked after 20 minutes. The module does not have to be called
       in the account phase because the login calls pam_setcred(3)
       correctly.

现象以及解锁

锁定现象:
sudo su -
[sudo] password for username: 
Sorry, try again.
[sudo] password for username: 

Account locked due to 19 failed logins
Password: 
su: Authentication failure

手工解锁:
pam_tally2 -u username --reset

4、加强口令策略以及密码尝试限制

more /etc/pam.d/system-auth
# 限制重试次数,2次
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=2 authtok_type=

# 限制密码口令长度10位以上 复杂度2种以上 口令历史 20次
password    sufficient    pam_unix.so remember=20 minlen=10 minclass=2 sha512 shadow nullok try_first_pass use_authtok

# 加载拒绝登录
password    required      pam_deny.so

5、限制用户 IP段 用户组登录, 注意别把自己拒绝了,会无法访问的

more /etc/security/access.conf
+ : ALL : 192.168.0.0/16         # 允许这个段登录
- : ALL EXCEPT root myuser mygroup : ALL   # 拒绝所有 除了root/myuser/mygroup 这些用户或者用户组

dmesg

内核日志文件,记录了系统内核的所有输出信息,包括硬件检测、设备驱动加载、内核错误等。

感兴趣可以看看,这个比 boot.log 详细

maillog

邮件日志文件,记录了系统中所有邮件相关的信息,包括发送、接收、退回等

这个一般不看,平时也不用系统自带mail ,有需要的可以了解一下

kdump.log

有些系统启用了kdump 用来保存系统异常崩溃时的信息

lastlog

记录所有用户的登录情况, 是一个data 文件,不能直接看,需要通过lastlog 命令查看

补充说明

utmp 将为我们提供用户登录终端、注销、系统事件和当前系统状态、系统启动时间(由正常运行时间使用)等的完整信息

wtmp 给出了 utmp 的历史数据

btmp 只记录失败的登录尝试

记录正确登入系统者的帐户信息 (wtmp) 与错误登入时所使用的帐户信息 (btmp)

后续有发现新的需要记录的日志文件,再追加上来

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 系统日志及其归档 的相关文章

  • Docker:如何创建堆栈、多个映像或一个基础映像?

    I am new using Docker and I got the doubt of using one image base for my stack or I have to define each image depending
  • 是否可以在 python shebang 中包含命令行选项?

    我的 python 脚本顶部有规范的 shebang usr bin env python 但是 当我运行脚本时 我仍然经常希望将未缓冲的输出导出到日志文件 因此我最终调用 python u myscript py gt myscript
  • linux + ksh + 向下舍入或向上舍入 - 浮点数

    在我的 ksh 脚本中 我只需要计算整数 有时我会得到浮点数 例如 3 49 或 4 8 等 所以我需要根据以下规则将浮点数转换为整数 示例 3 49 will be 3 2 9 will be 3 4 1 will be 4 23 51
  • 无法从 Windows GUI 工具连接到远程 Linux 服务器上的 MySql 数据库

    我已经在 Amazon EC2 上的 Linux 服务器上设置了 mysql 数据库 这在本地效果很好 我可以登录 linux 盒子并管理 mysql 数据库 我正在尝试将本地 GUI 客户端连接到远程 mysql 但连接失败 我更新了 e
  • 使用 tac 和 sed 反转文件

    我有一个用例 我需要搜索并替换文件中最后一次出现的字符串并将更改写回文件 下面的案例是该用例的简化版本 我正在尝试反转该文件 进行一些更改 再次将其反转并写入该文件 我为此尝试了以下代码片段 tac test sed s a b sed i
  • sed 将带空格的行插入到特定行

    我在开头有一行空格 例如 Hello world 我想将此行插入到文件中的特定行 例如 将 hello world 插入下一个文件 hello world result hello hello world world 我正在使用这个 sed
  • 如何在 Ubuntu x64 中使用 ptrace 插入 int3?

    我正在努力追随本指南 http eli thegreenplace net 2011 01 27 how debuggers work part 2 breakpoints 通过设置断点达到相同的结果 唯一的区别是我在 x64 系统上 所以
  • 拼写检查 shell 脚本

    我有一些疑问 我对一个应该是简单拼写检查器的脚本有疑问 它的目的是 当发现错误的单词时 它会提示用户输入该单词的正确拼写 如果用户输入正确的拼写 则会显示更正的单词以及错误的单词 下面 在读完所有单词之后 但是 如果用户只是按 Enter
  • 无法在 Linux 的 NetBeans 中编译 C++ 和 OpenGL (GLFW) 的简单源代码

    我开始学习 OpenGL glfw 我从教程中复制源代码并尝试编译它 但出现了错误 我想我已经正确安装了所有头文件 glm glfw 等 这是我的来源 我没有在头文件中使用这些字符 include iostream include stdi
  • 确定 TCP Listen() 队列中当前积压的连接数

    有没有办法找出currentLinux 上 TCP 套接字上等待 Accept 的连接尝试次数 我想我可以在每个事件循环上点击 EWOULDBLOCK 之前计算成功的 Accept 数量 但我使用的是隐藏这些细节的高级库 Python Tw
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • Apache 端口转发 80 到 8080 并访问 Apache (80) 中托管的应用程序,即 phpMyadmin 和 Tomcat (8080)

    我想访问托管在 tomcat 服务器 8080 中的应用程序 myapp 当前可以通过以下方式访问http example com 8080 myapp http example com 8080 myapp in http example
  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情

随机推荐

  • 黑豹程序员-字符串中查找出重复的字符串

    Collections frequency codeList element 字符串element 在codeList集合中重复的次数 List
  • 字节码指令例子分析

    什么是字节码指令 字节码指令就是由一个字节长度的操作吗和操作数组成 有些只有操作码 没有操作数 例如 bipush 10 第一个参数就是操作码 第二个是操作数 a 和i 有什么区别 public static void main Strin
  • Linux搭建测试环境详细步骤

    本文讲解如何在Linux CentOS下部署Java Web项目的步骤 环境准备 1 Linux系统 2 JDK 3 Tomcat 4 MySQL 工具下载 一 Linux系统 本文主要是Linux CentOS7为例 自己在家练习小项目的
  • 浏览器缓存相关面试题一网打尽,理论结合实践,用代码学习缓存问题,建议关注+收藏,(含项目源代码)

    前言 浏览器缓存的问题是面试中关于浏览器知识的重要组成部分 也是性能优化题目的一部分 但是不要被吓到 我话放到这里 就那么点东西 我这一篇文章基本上就涵盖了所有相关的知识点 认真看一遍 所有的问题都是纸老虎 一 准备工作 1 1 拉取仓库
  • “单项突出”的赢双科技IPO加速,比亚迪是最强助力?

    近日 新能源汽车核心部件供应商赢双科技首次递表科创板 其凭借旋转变压器产品就坐稳了新能源车企主要供应商的地位 从核心业务及业绩情况来看 赢双科技不愧为 单项冠军 据悉 赢双科技本次IPO拟募资8 47亿元 主要将用于年产旋转变压器910万台
  • Qt源码分析:Qt程序是怎么运行起来的?

    一 从 exec 谈起 一个标准的Qt gui程序 在启动时我们会coding如下几行简洁的代码 include widget h include
  • AI壁纸画展头像表情包流量主微信抖音小程序开源版开发

    AI壁纸画展头像表情包流量主微信抖音小程序开源版开发 以下是AI壁纸画展头像表情包流量主微信抖音小程序开源版的开发功能列表 用户注册和登录 实现用户注册和登录功能 包括手机号登录 第三方登录等方式 图片上传和展示 用户可以上传自己的图片或选
  • idea分支代码合并说明

    Rebase feature 1 0 0 onto origin release 1 0 0 Merge origin release 1 0 0 into feature 1 0 0 pull into feature 1 0 0 Usi
  • 一文了解VR全景技术如何运用在乡村发展,助力乡村振兴

    引言 随着科技的不断发展 VR全景技术作为一项创新科技成为了助力乡村振兴的新力量 通过在乡村中应用VR全景技术 不仅能够带动乡村旅游的发展 还能够提升乡村生态环境的保护意识和乡村文化的传承 促进乡村振兴的全面发展 一 VR全景技术的优势 1
  • PCB设计规范及技巧顺口溜100句

    PCB设计 细节要牢记 技巧规范 别忘记 元件选择 要慎重权衡 性能优化 细节考虑 电路布局 尺寸精确 差分信号 清晰准确 地平面铺 阻抗匹配 多层堆叠 功耗降低 信号路径 长度平等 串扰减小 信噪比增 参考设计 莫忽略 静电防护 接地要密
  • 多项目同时进行如何做好进度管理?

    目前 许多企业都面临着同时进行多个项目的挑战 相比单一项目管理 多项目管理更加困难 其中主要问题包括项目资源分配不均 多项目进度监控困难以及沟通协作的复杂性 虽然已经有很多经验丰富的人分享了多项目管理的原则和方法论 但正如有人所说 知道很多
  • word技巧

    word这个东西有的时候令人又爱又恨 很多用上的时候都是因为自己贫瘠的技巧而令人抓狂 比如设置一个页脚和页眉 首页如何不同 目录页如何设置罗马数字 页眉前面几页不要横线 后面几页要横线 谨以此文记录一下操作方法 注 本文所示所有功能都基于w
  • EMD+包络谱故障诊断

    EMD是一种信号处理方法 用于将信号分解成多个本征模态函数 Intrinsic Mode Functions IMF 每个IMF代表信号中的一个固有振动模式 VMD在处理非平稳信号和非线性信号方面具有较好的性能 包络谱峭度是一种用于描述信号
  • 2024年最热门的15个科技工作岗位

    1 系统安全管理员 系统安全管理员的任务是确保公司的网络 数据和系统免受网络安全威胁 方法是确保有适当的安全战略并保持最新的合规性和策略 要求 应聘者应具有网络安全职位的工作经验 并对合规性和安全协议的最佳实践有坚实的基础 这个职位通常需要
  • Failed to create CUDAExecutionProvider 使用onnxruntime-gpu未成功调用gpu

    最近在使用GPU对onnx模型进行加速过程中 仅针对N卡 毕竟也没有别的显卡了 遇到了点问题 就是明明在安装了合适版本的显卡驱动和CUDA后 onnx还是不能够成功调用GPU 并且还出现了先导入torch 再导入onnxruntime就可以
  • 奇异值分解

    https blog csdn net Jayphone17 article details 113106887 降维与压缩 奇异值分解 SVD 奇异值分解 Singular Value Decomposition SVD 可以用于降维 特
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • 解决“DataFrame object has no attribute append“问题

    1 将append改为了 append 这个成功了 dataframe dataframe append 2 可以使用 pandas concat 方法代替 dataframe append 这个我没试验成功 出现这个报错 TypeErro
  • OPT 大华SDK

    OPT 大华SDK
  • Linux 系统日志及其归档

    主要记录Linux 系统需要关注的日志文件 以及日志归档服务 rsyslogd 系统日志服务 rsyslogd 日志服务 rsyslogd reliable and extended syslogd 可靠 可扩展的系统日志服务 Rsyslo