就业班 2401--3.7 Linux Day13--日志轮转+jumpserver堡垒机

一、日志轮转

日志重要性

Linux系统日志对管理员来说,是了解系统运行的主要途径,因此需要对 Linux 日志系统有个详细的了解。

Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程序就是 rsyslog,rsyslog 可以根据日志的类别和优先级将日志保存到不同的文件中。

日志系统rsyslog

日志管理基础

rsyslog 日志管理 
logrotate日志轮转

一、处理日志的进程

rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证sshd,su,计划任务at,cron... httpd/nginx/mysql: 可以自己的方式记录日志
[root@linux-server ~]# ps aux |grep rsyslogd
root        752  0.0  0.2 216440  5548 ?        Ssl  20:18   0:00 /usr/sbin/rsyslogd -n
​
日志配置主文件:
/etc/rsyslog.conf

二、常见的日志文件(系统、进程、应用程序)

#tail -f /var/log/messages                  #动态查看日志文件的尾部,系统主日志文件
​
#tail -f /var/log/secure                    #记录认证、安全的日志
​
tail /var/log/maillog                       #跟邮件postfix相关
​
#tail /var/log/cron                         #crond、at进程产生的日志
​
tail /var/log/dmesg                         #和系统启动相关
​
#tail /var/log/yum.log                       #yum的日志
​
tail -f /var/log/mysqld.log                 #MySQL日志
​
tail /var/log/xferlog                       #和访问FTP服务器相关
​
/var/log/boot.log                           #系统启动过程日志记录存放
​
#[root@linux-server ~]#w                       #当前登录的用户 /var/log/wtmp
​
#[root@linux-server ~]#last                #最近登录的用户 /var/log/btmp
第一列,用户名;
第二列,终端位置,/pts/0 (伪终端)意味着从诸如ssh或者telnet的远程链接的用户,tty(teletypewriter)意味着直接连接到计算机或者本地链接的用户;
第三列,登录的ip或者内核。
第四列,开始时间;
第五列,结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机);
​
[root@linux-server ~]#lastlog              #所有用户的登录情况 /var/log/lastlog

日志优先级

日志级别分为:7种日志级别代号0-7
​
0 debug             #有调试信息的,日志信息最多
​
1 info              #一般信息的日志,最常用
​
2 notice            #最具有重要性的普通条件的信息
​
3 warning           #警告级别
​
4 err               #错误级别,阻止某个功能或者模块不能正常工作的信息
​
5 crit              #严重级别,阻止整个系统或者整个软件不能工作的信息
​
6 alert             #需要立刻修改的信息
​
7 emerg             #内核崩溃等严重信息
​
none                #什么都不记录

二、logrotate日志轮转

什么是日志轮转? 自动切日志
注:可以针对任何日志文件(rsyslog 日志、Nginx访问或错误日志...)
一、logrotate (轮转,日志切割) 
1. 如果没有日志轮转,日志文件会越来越大
2. 将丢弃系统中最旧的日志文件,以节省空间 
3. logrotate本身不是系统守护进程,它是通过计划任务crond每天执行
logrotate 配置文件:
主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
配置日志轮转
[root@linux-server ~]# vim /etc/logrotate.conf  
weekly              #轮转的周期,一周轮转,单位有年,月,日 
rotate 4            #保留4份 
create              #轮转后创建新文件 
dateext             #使用日期作为后缀 
#compress           #日志轮替时,旧的日志进行压缩 
include /etc/logrotate.d             #包含该目录下的配置文件,会引用该目录下面配置的文件
​
/var/log/wtmp {                     #对该日志文件设置轮转的方法    monthly                            #一月轮转一次  minsize 1M                         #最小达到1M才轮转,否则就算时间到了也不轮转create 0664 root utmp              #轮转后创建新文件,并设置权限   rotate 2                           #保留2份 
}
​
/var/log/btmp {    missingok                          #丢失不提示    monthly                            create 0600 root utmp              rotate 1                           
}

实战案例

例1:轮转文件/var/log/yum.log
​
[root@linux-server ~]# vim /etc/logrotate.d/yum    
/var/log/yum.log {missingok                                #丢失不提醒#notifempty                              #空文件不轮转 #size 30k                                  #只要到了30k就轮转#yearlydaily                                     #每天轮转一次   rotate 3      create 0644 root root 
}
​
测试:
[root@linux-server ~]# /usr/sbin/logrotate /etc/logrotate.conf    #手动轮转
[root@linux-server ~]# ls /var/log/yum*
/var/log/yum.log  /var/log/yum.log-20191110
​
[root@linux-server ~]# grep yum /var/lib/logrotate/logrotate.status #查看记录所有日志文件最近轮转的时间
"/var/log/yum.log" 2019-11-10-21:26:14
​
2:日志安全,操作日志的隐藏权限
[root@localhost log]# cd /etc/logrotate.d/
[root@localhost logrotate.d]# vim syslog
建议测试时先把/etc/logrotate.d/syslog中messages删除,然后在下面添加如下:
/var/log/messages{prerotate       在轮转之前chattr -a /var/log/messages    endscript#notifemptydailycreate 0600 root rootmissingokrotate 3
​postrotate          在轮转之后chattr +a /var/log/messagesendscript
}
[root@localhost logrotate.d]# /usr/sbin/logrotate /etc/logrotate.conf  #手动轮转
[root@localhost logrotate.d]# cd /var/log/
[root@localhost log]# ls mess*
messages  messages-20200805  messages-20200806
​
参数解释:
prerotate/endscript - 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript - 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
​
size
触发分割的条件是:1.日志大小达到这个值,和时间周期没有关系。
minsize
触发分割的条件是:1.时间周期到了,2.日志大小达到这个值;两个条件都要满足。
maxsize
触发分割的条件是:1.时间周期到了,2. 日志大小大于这个值;两个条件任何一个满足。

作业

1.测试当日期和星期发生冲突的时候以哪个为准,还是取或的关系,全部都执行?
2.计划每星期天早8点服务器定时重启,如何实现?
3.某系统管理员需要每天做一定的重复工作,编制一个解决方案:
(1).从下午 4:50 删除/abc 目录下的全部子目录和全部文件;
(2).每逢周一下午 5:50 将/data目录下的所有目录和文件归档并压缩为文件backup.tar.gz;
(3).在早上 8:00 开机后启动crontab。

木马:两个国家打架的故事。

如果docker运行中,想要关闭防火墙,需要重启docker

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

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

相关文章

SQOOP安装与使用

SQOOP安装及使用 文章目录 SQOOP安装及使用SQOOP安装1、上传并解压2、修改配置文件3、修改环境变量4、添加MySQL连接驱动5、测试 准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数据的方式使用Navicat运行SQL文件导出MySQL数据库 importMySQL…

Leetcode : 147. 对链表进行插入排序

给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输…

SpringBoot项目如何添加全局接口上下文

1. 定义Spring Boot应用的路由 首先,确保您的Spring Boot应用有一个统一的路由前缀。例如,可以在application.properties或application.yml配置文件中使用server.servlet.context-path属性来定义所有请求的基础路径。 # application.properties server…

[OpenCv]频域处理

目录 前言 一、频域变换 1.傅里叶变换 2.代码实现 二、频域中图像处理 1.理解数字图片的频谱 2.频域图像处理步骤 3.使用低通滤波器实现图像平滑 4.使用高通滤波器实现图像锐化 三、总结 前言 数字图像处理的方法有两大类:一种是空间域处理法,…

0x04_数组_指针_字符串

数组 数组的定义与使用 数组是具有一定顺序关系的若干相同类型变量的集合体&#xff0c;组成数组的变量称为该数组的元素。 给出下面程序的输出&#xff1a; #include <iostream> using namespace std; int main() {int a[10], b[10];for(int i 0; i < 10; i) {a[…

[Unity实战]使用NavMeshAgent做玩家移动

其实除了Character Controller, Rigidbody&#xff0c;我们还可以使用NavMeshAgent去做。这么做的好处是能避免玩家去莫名其妙的地方&#xff08;毕竟基于烘焙过的导航网格&#xff09;&#xff0c;一般常见于元宇宙应用和mmo。 根据Unity手册&#xff0c;NavMeshAgent 也有和…

探索SRM软件:了解SRM在企业中的作用

作为供应商&#xff0c;对于SRM软件并不陌生&#xff0c;但对于刚刚进入采购行业的新手来说&#xff0c;就可能不太了解这个软件的作用了。现在让我们来科普一下&#xff1a;通常&#xff0c;我们将SRM称为供应商关系管理&#xff0c;其全称为Supplier Relationship Management…

计算机网络面经-HTTPS加密过程

前言 在上篇文章HTTPS详解一中&#xff0c;我已经为大家介绍了 HTTPS 的详细原理和通信流程&#xff0c;但总感觉少了点什么&#xff0c;应该是少了对安全层的针对性介绍&#xff0c;那么这篇文章就算是对HTTPS 详解一的补充吧。还记得这张图吧。 HTTPS 和 HTTP的区别 显然&am…

【MySQL】not in遇上null的坑

今天遇到一个问题&#xff1a; 1、当 in 内的字段包含 null 的时候&#xff0c;正常过滤&#xff1b; 2、当 not in 内的字段包含 null 的时候&#xff0c;不能正常过滤&#xff0c;即使满足条件&#xff0c;最终结果也为 空。 测试如下&#xff1a; select * from emp e;当…

Mysql深入学习 基础篇 Ss.05多表查询语法及案例

世界总是在推着我走&#xff0c;我自己一个人也能站稳 —— 24.3.7 一、多表关系 1.概述 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个…

一个比较全面实用的C#帮助类、工具类库

前言 经常会有一些同学会问为什么感觉我身边的大佬写一个功能会这么快&#xff1f;一个类似的模块大佬可能半天就搞定了&#xff0c;而我要搞一两天。其实工作久了你会发现很多常用公共的帮助类和工具类&#xff0c;如常见的Excel数据导入导出、文件操作、字符串操作、数据转换…

什么是攻防演练,能给企业带来什么

随着互联网技术的发展和企业信息化程度的提高&#xff0c;企业面临的网络安全威胁越来越多。为了保护企业的信息安全&#xff0c;攻防演练已经成为企业安全运营中不可或缺的一部分。攻击者通常会利用各种方法来破坏企业的安全系统和数据&#xff0c;因此企业需要像攻击者一样思…