Linux(Centos7)日志管理

日志管理
处理日志的进程
rsyslogd:系统的专职日志程序,将绝大部分操作系统相关的日志记录。(安全、认证、计划任务..)

应用程序日志:各类应用程序以自己的方式记录的日志。

常见日志文件
# tail /var/log/messages        //系统主日志文件
# tail -20 /var/log/messages
# tail -f /var/log/messages         //动态查看日志文件的尾部
# tailf /var/log/secure          //认证、安全
# tail /var/log/maillog          //跟邮件postfix相关
# tail /var/log/cron            //crond、at进程产生的日志
# tail /var/log/dmesg            //和系统启动相关
# tail /var/log/audit/audit.log      //系统审计日志
# tail /var/log/yum.log          //yum
# tail /var/log/mysqld.log      //MySQL
# tail /var/log/xferlog             //和访问FTP服务器相关
# tail  /var/log/wtmp                   //当前登录的用户(命令:w)
# tail  /var/log/btmp               //最近登录的用户(命令last    )
# tail  /var/log/lastlog                //所有用户的登录情况(命令lastlog )

rsyslogd配置
相关程序
# yum install rsyslog logrotate  (默认已安装)
# systemctl  start  rsyslog.service   //启动

相关文件
# rpm -qc rsyslog   //查找相关文件
/etc/rsyslog.conf       //rsyslogd的主配置文件
/etc/sysconfig/rsyslog       //rsyslogd相关文件,定义级别
/etc/logrotate.d/syslog     //和日志办轮转(切割)相关

日志收集服务器
目的
集中日志管理,简化日志分析工作。
日志可存放于本地或(和)远程服务器
步骤
1.发送日志服务器

# vim /etc/ssh/sshd.config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5

# vim /etc/rsyslog.conf
local5.*        @192.168.2.131      <---此处填写另一台设备的IP地址。
另一台设备是集中日志服务器。
- 3
# systemctl restart sshd
# systemctl restart rsyslog
#systemctl stop firewalld

2.接受日志服务器
- 1
# vim /etc/rsyslog.conf 
$ModLoad imudp
$UDPServerRun 514
local5.*       /var/log/server152.log
- 2
# systemctl restart rsyslog
#systemctl stop firewalld
- 3
尝试ssh登录服务器1.
并观察本地日志
ll /var/log/server152.log

日志轮转logrotate
Linux系统默认安装logrotate工具

Logrotate是基于cron来运行的,其脚本是/etc/cron.daily/logrotate,日志轮转是系统自动完成的。 实际运行时,Logrotate会调用配置文件/etc/logrotate.conf。

作用:
日志记录了程序运行的各种信息,通过日志可以分析用户行为记录运行轨迹,查找程序问题,但磁盘是有限的,因此需要记录最后一段时间发生的记录。

logrotate本身不是系统守护进程,他是通过计划任务crond每天执行。

工作原理
被crond调动
# cat /etc/cron.daily/logrotate 

#!/bin/sh 
/usr/sbin/logrotate /etc/logrotate.conf     //日志轮转,按/etc/logrotate.conf 

按配置进行轮转
配置文件种类
logrotate 配置文件:
主文件:/etc/logrotate.conf (决定每个日志文件如何轮转)
子文件夹:/etc/logrotate.d/*

主配置文件
# vim /etc/logrotate.conf
全局设置
weekly    轮转周期
rotate    保留4份
create    轮转后创建新文件
dateext   使用日期作为后缀
#compress 是否压缩
include /etc/logrotate.d  包含该目录下的子配置文件

对某日志文件设置轮转的方法
/var/log/wtmp{
 monthly      一月轮转一次
 minsize 1M   最小达到1M才轮转,monthly and  minsize
create 0664 root utmp   最小达到1M才轮转,monthly and  minsize
rotate 1   保留一份    
}

/var/log/btmp {
missingok       //丢失不提示
monthly             //每月轮转一次
create 0600 root utmp   //轮转后创建新文件,并设置权限
rotate 1        //保留一份
}

子配置文件
# ls /etc/logrotate.d/*

/etc/logrotate.d/bootlog  /etc/logrotate.d/messages        /etc/logrotate.d/yum
/etc/logrotate.d/chrony   /etc/logrotate.d/wpa_supplicant

logrotate.conf 才主要的配置文件,logrotate.d 是一个目录,该目录里的所有文件都会被主动的读入/etc/logrotate.conf中执行 。

如果 /etc/logrotate.d/ 里面的文件中没有设定一些细节,则会以/etc/logrotate.conf这个文件的设定来作为默认值。

举个栗子messages
目的
设置系统日志轮转
为系统日志文件增加属性,用于保护日志文件
准备工作
# vim /etc/logrotate.d/syslog
# 删除 /var/log/messages(为了避免不同规则互相影响。)
1
2
设置轮转(脚本)
vim /etc/logrotate.d/messages
/var/log/messages {
prerotate
chattr -a /var/log/messages   #减去chattr
endscript

#notifempty
daily
create 0600 root root
missingok
rotate 5

postrotate
chattr +a /var/log/messages   #增加chattr
endscript
}

#修改时间重启rsyslog即可进行轮转测试

轮转后需重启
说明
轮转后原日志文件被改名,新日志文件是创建的应用程序根据inode找到日志文件进行书写,如果不重启,找寻的依旧是老的日志文件。
1
配置
# vim /etc/logrotate.d/syslog

{
    missingok
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
--------------------- 
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值