linux日志管理总结,rules详解、轮转详解、实例展示。

概述

​ 1、日志文件记录系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等
​ 2、通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。

1. rsyslog系统日志管理

1.1 处理日志的程序:

rsyslog:系统专职日志程序,是一个程序,是一个进程,有配置文件

#ps aux |grep rsyslogd    
(注:d deamon 程序,守护程序,一般不会退出)

用户 /进程号 /cpu /内存 /虚拟内存*2 /没有终端 /线程在sleep /2021年开的 /占cpu104.43秒 /命令

安装: yum install -y rsyslog
启动:systemctl start rsyslog.service

1.2 rsyslogd的主配置文件 — /etc/rsyslog.conf

# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####
# 必要的加载模块
# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
#$ModLoad imklog # reads kernel messages (the same are read from journald)
#$ModLoad immark  # provides --MARK-- message capability

发送到远程主机,需开启网络服务
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514



#### GLOBAL DIRECTIVES ####

# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
定义日志的时间使用默认的时间戳格式

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
定义同步功能

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
子配置文件

# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on

# File to store the position in the journal
$IMJournalStateFile imjournal.state

#### RULES ####

# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none        /var/log/messages
	## *.info  所有设备的基本信息
	## ;  和
	##  mail.none  none表示排除
	
# The authpriv file has restricted access.
authpriv.*                  /var/log/secure

# Log all the mail messages in one place.
mail.*                      -/var/log/maillog
# “-”符号,表示使用异步的方式记录,先放到缓存区,稍晚写到文件中

# Log cron stuff
cron.*                      /var/log/cron


# Everybody gets emergency messages
*.emerg                     :omusrmsg:*
#匹配任何类型,且消息等级是emerg(致命性,最高等级)的消息,会被发送到系统所有用户的登录终端

# Save news errors of level crit and higher in a special file.
uucp,news.crit              /var/log/spooler

1) /etc/rsyslog.conf 配置文件格式

authpriv.* /var/log/secure

·#服务名称+[连接符号]+日志等级 日志记录位置
·#认证相关服务.所有日志等级 记录在/var/log/secure中

RULES:即规则,是一套生成日志,以及存储日志的策略。

规则由四部分组成::facility + 连接符 + level + path     
  • facility 设备:同种应用程序,设计程序时已经制定
设备名说明
authprivssh、ftp 等登录信息的验证信息
cron时间任务相关
kern内核
lpr打印
mail邮件
mark(syslog)-rsyslog服务内部的信息,时间标识
news新闻组
user用户程序产生的相关信息
uucpunix to nuix copy主机之间相关的通信
local 1-7自定义的日志设备

不同设备类型对应多款app

  • 连接符号

    • .”代表只要比后面的等级高的(包含该等级)日志都记录下来。比如:“cron.info”代表cron服务产生的日志,只要日志等级大于等于info级别,就记录
    • .=”代表只记录所需等级的日志,其他等级的都不记录。比如:“*. =emerg”代表任何日志服务产生的日志,只要等级是emerg等级就记录。这种用法及少见,了解就好
    • .!”代表不等于,也就是除了该等级的日志外,其他等级的日志都记录。
  • level级别:记录信息的类型

等级介绍
debug有调试信息的,日志通信最多
info通知信息,属于一般信息
notice普通信息,但是有一定的重要性
warnig警告信息,还不会影响到服务或系统的运行
err错误级别,阻止某个功能或者模块不能正常工作的信息
crit临界状况信息,阻止整个系统或者整个软件不能正常工作的信息
alert警告状态信息,需要立即处理和解决,eg磁盘空间不足
emerg紧急,致命,服务无法继续运行,eg:配置文件丢失
*代表所有日志等级
none忽略这个日志服务
  • path :存储信息的位置 四种写法

    • 日志文件的绝对路径

    • 转达给远程主机(日志服务器)

      • UDP协议:@192.168.1.181:514 (514是日志服务默认端口)
      • TCP协议:@@192.168.1.181:514
    • 用户名

      eg:root,就会把日志发送给root用户(必须在线);”*“ 代表发送给所有在线用户。

      如需把日志发送给多个在线用户,用户名之前用","隔开。

    • ”,代表忽略或丢弃日志。

测试:更改日志保存路径

修改:日志存储路径
vim /etc/rsyslog.conf
# The authpriv file has restricted access.
#authpriv.*                                              /var/log/secure
authpriv.*                                              /var/log/anquan

重新加载rsyslog
[root@vm-150 ~]# systemctl restart rsyslog
[root@vm-150 ~]# cat /var/log/anquan
Dec 16 14:01:55 vm-150 polkitd[710]: Unregistered Authentication Agent for unix-process:125930:137224934 (system bus name :1.6006, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)

换账号测试
[root@vm-150 ~]# su - Bess
上一次登录:三 1216 13:58:32 CST 2022pts/1 上
-bash-4.2$ su -
密码:
上一次登录:三 1216 13:59:20 CST 2022pts/1 上

日志已更新
[root@vm-150 ~]# cat /var/log/anquan 
Dec 16 14:01:55 vm-150 polkitd[710]: Unregistered Authentication Agent for unix-process:125930:137224934 (system bus name :1.6006, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)
Dec 16 14:02:12 vm-150 su: pam_unix(su-l:session): session opened for user Bess by root(uid=0)
Dec 16 14:02:21 vm-150 su: pam_unix(su-l:session): session opened for user root by root(uid=10001)

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

除了系统默认的日志外,采用rpm方式安装的系统服务也会把日志记录在/var/log/目录下,各个服务使用字的日志管理文档来记录自身日志。 源码包安装的服务日志是在源码包指定目录中。

系统常用日志:

日志文件说明
/var/log/message 记录系统重要消息的日志,该日志文件记录 Linux 系统的绝大多数重要信息,如果系统出现问题,首先检查该日志文件 tailf 动态查看日志文件尾部
/var/log/secure 记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录,比如系统登录、ssh 登录、su 切换用户、sudo 授权,添加用户、修改用户密码都会记录在这个日志文件中
/var/log/dmesg 记录系统在开机时内核自检的信总,也可以使用 dmesg 命令直接查看内核自检信息
/var/log/mailog记录邮件信息的日志
/var/log/boot.log系统启动日志
/var/log/cron记录与系统定时任务相关的日志
/var/log/btmp记录错误登录的日志,该文件为二进制文件,不能直接使用 Vi 查看,而要使用 lastb 命令查看。b-bad
/var/log/wtmp永久记录所有用户的登录、注销信息,同时记录系统的后动、重启、关机事件,为二进制文件,要使用 last 命令查看。w-who
/var/tun/utmp记录当前已经登录的用户的信息,该文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息,该文件不能用vi查看,而要使用 w、who、users 等命令查看。u-user
/var/log/lastlog记录系统中所有用户最后一次的登录时间的日志,该文件为二进制文件,要使用 lastlog 命令查看
日志文件说明
/var/log/httpdRPM包安装的apache服务的默认日志目录
/var/log/mail/RPM包安装的邮件服务的额外日志目录
/var/log/samba/Rpm包安装的samba服务的日志目录
/var/log/sssd/守护进程安全服务目录

**举例:messages 内容查看 **

# tailf  /var/log/messages 
Dec 16 09:19:07 lvm-150 sudo: bess : TTY=pts/0 ; PWD=/mnt ; USER=root ; COMMAND=/bin/tailf /var/log/secure
Dec 16 09:19:07 vm-150 sudo: pam_unix(sudo:session): session opened for user root by bess(uid=0)
Dec 16 09:19:23 vm-150 sshd[88436]: Accepted password for bess from 192.168.2.13 port 1738 ssh2
Dec 16 09:19:23 vm-150 sshd[88436]: pam_unix(sshd:session): session opened for user bess by (uid=0)
Dec 16 09:19:53 vm-150 sshd[88436]: pam_unix(sshd:session): session closed for user bess

日志文件格式

只要由日志服务rsyslogd记录的日志文件,格式是一样的,基本包含以下四列:

  • 事件产生的时间;
  • 发生事件的服务器的主机名;
  • 产生事件的服务名或程序名;
  • 事件的具体信息。

1.4 自定义日志

(1)添加日志文件:/var/log/自定义日志.log
(2)编辑 /etc/rsyslog.conf,添加自定义文件
(3)日志类型、日志级别,决定该日志获取的信息

自定义日志   /var/log/ztest.log
[root@vm-150 ~]# vim /etc/rsyslog.conf

cat  /etc/rsyslog.conf
#test 2022-12-15 Besssss
*.*							/var/log/ztest.log

重新加载
[root@vm-150 ~]# systemctl restart rsyslog.service 

查看
[root@vm-150 ~]# cat  /var/log/ztest.log
Dec 15 10:33:49 vm-150 systemd: Stopping System Logging Service...
Dec 15 10:33:49 vm-150 rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-57.el7_9.1" x-pid="14640" x-info="http://www.rsyslog.com"] exiting on signal 15.
Dec 15 10:33:49 vm-150 systemd: Stopped System Logging Service.
Dec 15 10:33:49 vm-150 systemd: Starting System Logging Service...
Dec 15 10:33:49 vm-150 rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-57.el7_9.1" x-pid="14695" x-info="http://www.rsyslog.com"] start
Dec 15 10:33:49 vm-150 systemd: Started System Logging Service.
Dec 15 10:33:49 vm-150 polkitd[710]: Unregistered Authentication Agent for unix-process:14689:152534829 (system bus name :1.6641, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)

2. logrotate日志轮转 (切割+轮替)

简介:

​ 把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除

目的:

​ 为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。

  • 主配置文件 /etc/logrotate.conf (决定每个日志如何轮转)

  • 子配置文件夹/etc/logrotate.d/*

[root@vm-150 ~]# ls /etc/logrotate.conf /etc/logrotate.d/
/etc/logrotate.conf

/etc/logrotate.d/:
bootlog  firewalld    libvirtd   numad   rh-nginx116-nginx  sssd   yum    chrony   glusterfs    libvirtd.qemu  ppp     rh-php72-php-fpm   syslog     zabbix-agent
cups     iscsiuiolog  mysql    psacct  samba    wpa_supplicant  zabbix-server

2.1 logratate 主配置文件

vim /etc/logrotate.conf

# see "man logrotate" for details
# rotate log files weekly
weekly      #每周对日志文件进行一次轮替

# keep 4 weeks worth of backlogs
rotate 4	#共保存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    #包含 /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				#日志文件最小轮替大小是 1MB 。也就是日志一定要超过 1MB 才会轮替,否则就算时间达到一个月,也不进行日志转储
    rotate 1				# 仅保留一个日志备份,即保留 wtmp 和 wtmp.1 日志
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

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

属性说明:

配置说明
daily轮转周期,每天轮转
weekly轮转周期,一周轮转
monthly轮转周期,每月轮转
yearly轮转周期,一年轮转
rotate 数字保留的日志文件的个数,0 指没有备份
create轮转后创建新文件,旧文件改名
dateext以时间作为文件扩展名(date 时间、extend 扩展)
compress日志轮替时,压缩旧的日志
include /etc/logrotate.d包含该目录下的子配置文件
maxsize 1M达到1M才轮转(date跟max 是或的关系
minsize 30k最小达到30k轮转(date跟mix 同时满足才轮转
size 大小日志只有大于指定大小才进行日志轮替,而不是按照时间轮替
create 0600 root utmp
create mode owner group
轮转后创建新日志,并设置权限。
权限、属主、属组
missingok丢失不提示
notifempty空文件不轮转
missingok如果日志不存在,则忽略该日志的警告信息
mail address当日志轮替时,输出内容通过邮件发送到指定的邮件地址
sharedscripts在此关键字之后的脚本只执行一次
prerotate/endscript在日志轮替之前执行脚本命令,endscript 标识 prerotate 脚本结束
postrotate/endscript在日志轮替之后执行脚本命令,endscrip i标识 postrotate 脚本结束

yum日志轮转实例:

vim /etc/logrotate.d/yum 

之前的:
#/var/log/yum.log {
 #  missingok
 #  notifempty
 #  maxsize 30k
 #  yearly
 #   create 0600 root root
#}

修改后的
/var/log/yum.log {
        missingok
        #notifempty
        daily
        rotate 3
        create 0770 root root
}

重新加载
[root@vm-150 ~]# /usr/sbin/logrotate /etc/logrotate.conf

强制轮转,展示效果
[root@vm-150 logrotate.d]# logrotate  -vf yum 
reading config file yum
Allocating hash table for state file, size 15360 B

Handling 1 logs

rotating pattern: /var/log/yum.log  forced from command line (3 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/yum.log
  log needs rotating
rotating log /var/log/yum.log, log->rotateCount is 3
dateext suffix '-20221216'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
creating new /var/log/yum.log mode = 0770 uid = 0 gid = 0

[root@vm-150 logrotate.d]# ll /var/log/yum.log
-rwxrwx--- 1 root root 0 1216 14:17 /var/log/yum.log
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ElementUI是一款基于Vue.js的UI组件库,在开发表单时经常需要对输入的内容进行验证,ElementUI提供了rules属性来进行表单验证。rules属性是一个输入框校验的规则,包含回调函数和验证信息。在表单项中设定rules属性后,输入框会自动根据这些规则进行校验。可以根据需求定义多个规则,每个规则都包含一个触发条件和验证内容。下面是一个简单示例: <el-form :model="form" :rules="rules"> <el-form-item label="用户名" prop="name"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="密码" prop="password"> <el-input type="password" v-model="form.password"></el-input> </el-form-item> </el-form> 例:rules: { name: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 10, message: '长度在 6 到 10 个字符', trigger: 'blur' } ] } 在这个例子中,表单中的每个表单项都会有一个对应的 rules 规则属性。其中,prop 表示需要校验的字段名称;required 表示必填项,message 表示在未通过验证时的提示信息,trigger 触发条件为失焦事件。 rules属性还可以自定义验证函数,例如:rules: { email: [ {required: true, message: '请输入邮箱', trigger: 'blur'}, {validator: validateEmail, trigger: 'blur'} ], } function validateEmail (rule, value, callback) { if (value === '') { callback(new Error('请输入邮箱')) } else { const reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ if (reg.test(value)) { callback() } else { callback(new Error('请输入正确的邮箱地址')) } } } 在这个例子中,自定义了一个验证邮箱格式的函数,通过validator属性进行定义,当输入框失焦时进行验证。 以上就是elementui使用rules的详细介绍,根据不同的需求可自由选择对应的验证方式,使表单验证更加方便快捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bessssss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值