Linux——日志管理

常见的日志文件

系统的日志文件通常存储在var/log目录下。

	`tail -f 日志名` 或 `tailf 日志名` 可以锁定日志文件尾部并且动态查看日志内容 
  • 系统主日志文件:/var/log/messages
[root@localhost log]# tail -1 /var/log/messages
Feb 12 11:20:44 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: start running ordered scripts...

Feb 12 11:20:44:日志时间
localhost:日志主机
nm-dispatcher: req:1...日志信息

  • 系统安全日志文件:/var/log/secure
    切换用户等权限信息的日志存储在这里。

  • yum仓库管理日志文件:/var/log/yum.log

  • 邮件相关日志:/var/log/maillog

  • 任务计划日志:/var/log/cron

  • 系统启动相关日志:/var/log/dmesg

日志进程

管理日志的进程常见的有两类:rsyslog应用程序的日志

rsyslog

rsyslog是操作系统自带的专职日志程序,是产生日志的软件,是用于处理绝大部分日志记录,系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息。

查看rsyslog进程

查看rsyslog进程的明令:

  • systemctl status rsyslog
  • ps aux | grep rsyslogd
[root@localhost ~]# ps aux | grep rsyslogd
root       1385  0.0  0.2 216400  4536 ?        Ssl  210   0:00 /usr/sbin/rsyslogd -n
root      75330  0.0  0.0 112828   980 pts/0    R+   00:36   0:00 grep --color=auto rsyslogd

/usr/sbin/rsyslogd就是日志程序所在的位置。

rsyslog的配置

  1. 安装程序(默认已经安装)
    yum install rsyslog logrotate
  2. 启动程序
    systemctl start rsyslog.service
    重启程序systemctl restart rsyslog.service
  3. 查看相关文件
    rpm -qc rsyslog:查询rsyslog软件包的配置文件
    -q是查询
    -c是配置文件
[root@localhost ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog

配置文件:

  • /etc/rsyslog.conf: rsyslogd的主配置文件
  • /etc/sysconfig/rsyslog: rsyslogd相关文件,定义级别
  • /etc/logrotate.d/syslog: 和日志轮转相关

etc是配置文件所在的文件夹

  1. 编辑主配置文件/etc/rsyslog.conf进行配置:
    vim /etc/rsyslog.conf
    rsyslog.conf配置文件中的#### RULES ####下面的内容表示的是日志文件的输出目录。
    RULES即规则,是一套生成日志以及存储日志的策略。RULES的配置由三个部分组成(设备+日志级别+存放位置),表示什么设备的什么日志放置在什么地方

设备:
程序不等于设备,设备相当于程序的一个分类。设备是同种应用程序的集合。
程序属于什么设备,是程序一开始设计的时候由设计师决定的。

  • authpriv.*:安全设备,认证设备。常见的安全设备就是远程连接的程序,如SSH、Telenet。切换用户也属于安全设备。
  • syslog:syslogd自身产生的日志
  • cron:调度程序
  • mail:系统邮件
  • user:用户相关
  • FTP:文件服务器
  • KERN:内核设备
[root@localhost ~]# grep Facility /etc/ssh/sshd_config
#SyslogFacility AUTH
SyslogFacility AUTHPRIV

可以看出ssh就是认证设备。

日志的级别分为

  • emerg:紧急级别 —— 日志中的最高级别
  • alert:报警,需要立即处理,如磁盘空间使用95%
  • crit:致命行为
  • err:错误行为
  • warning:警告行为
  • notie:普通,重要的标准信息
  • info:标准信息
  • debug:调试信息,排错信息

从上到下优先级依次变低
存储位置
将日志文件存储在特定的位置。
如:/var/log/maillog
前面如果添加-表示异步存储日志:
如:-/var/log/maillog

案例

# Log cron stuff
cron.*                    /var/log/cron
  • cron: 表示cron程序
  • *:表示所有级别的日志
  • /var/log/cron:表示放置在/var/log/cron文件中

所以表示的是cron程序的所有日志都输出在/var/log/cron文件中

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

表示所有设备的所有info信息存储在/var/log/messages文件中,但是mail,authpriv,cron程序除外。

  1. 使修改后的/etc/rsyslog.conf配置文件生效
    /etc/rsyslog.conf配置文件只有在rsyslog程序启动的时候才会重新加载(原理是启动的时候会将文件从硬盘拷贝到内存中):
  • 所以修改配置文件后需要重启服务器才能生效
  • 或者只重启rsyslog程序(利用kill命令)
[root@localhost ~]# ps aux | grep rsyslog
root       1385  0.0  0.2 216400  5432 ?        Ssl  12:00   0:03 /usr/sbin/rsyslogd -n
root      76387  0.0  0.0 112828   980 pts/0    R+   18:19   0:00 grep --color=auto rsyslog
[root@localhost ~]# kill -1 1385
  • 或者使用systemctl restart rsyslog重启服务

应用程序日志

各类应用程序可以自己的方式记录日志。
如nginx,mysql等都有自己的日志记录。

日志轮转logrotate

将大量的日志分割管理,删除旧日志,节省磁盘空间。

日志轮转是什么

日志记录了程序运行时各种信息。日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的。
日志轮转实现的效果是:记录的信息再重要也只能记录最近一段时间的日志。日志文件经常需要按时间或大小等维度分成多份,删除时间久远的日志文件。

手动轮转

手动轮转的命令

/usr/sbin/logrotate /etc/logrotate.conf 

工作原理

按配置进行轮转,配置文件分为主配置文件和子配置文件。

主配置文件

/etc/logrotate.conf:决定每个日志文件如何轮转。

/etc/logrotate.conf:

# 运行 "man logrotate" 查看logrotate命令的更多使用规则
# 按周轮转,每周清理一次 —— 轮转的周期
weekly

# rotate 4,保留四份信息
# 保留4份的意思是只保留最近四条日志备份信息,如:
# yum.log(今天)
# yum.log-20240211
# yum.log-20240210
# yum.log-20240209
# yum.log-20240208
# 那么再过一天就会删除yum.log-20240208日志,新建yum.log-20240212日志

rotate 4

# 轮转之后创建新文件,轮转之后将老的日志文件改名,创建新的日志文件
create

# 以时间日期作为日志文件的扩展名进行备份
dateext

# 日志文件轮转之后在压缩一下(默认关闭)
#compress

# 所包含的子配置文件夹的路径
include /etc/logrotate.d

# 在配置文件中书写日志的名字和大括号就可以独立地设定该日志的轮转规则
# 配置格式是 日志名{配置信息}
/var/log/wtmp {
	#  轮转有时间和大小两大维度,只有两者都达到了,才进行轮转
    #  按月轮转
    monthly
    # 创建日志文件, 0664是文件权限, root是属主,utmp是属组
    create 0664 root utmp
    #  文件必须达到1M才进行轮转
        minsize 1M
    # 保留1份
    rotate 1
}
/var/log/btmp {
	# 丢失不提示
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

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


子配置文件

/etc/logrotate.d/*:日志轮转的子配置文件夹,里面存储子配置文件。自定义的轮转配置通常写在子配置文件中。

自配置文件夹需要在自配置文件家中使用include 进行配置。

配置实例

vim /etc/logrotate.d/yum

/var/log/yum.log {
    missingok
    # 空文件不轮转
    notifempty
    # 最大体积是30kb,只要文件超过30kb就进行轮转,和日期是·或·的关系,只要满足一个条件就进行轮转
    maxsize 30k
    yearly
    create 0600 root root
}

补充:man命令

作用:查询一个命令是干嘛的。
格式:man 命令
eg:

man rpm
  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值