linux 服务启动日志文件,Linux系统服务日志管理

日志管理

一. rsyslog

1. rsyslog处理日志的进程

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

(1). 常见日志

(2). 网站日志管理

3. rsyslogd配置

(1). 相关程序

(2). 启动程序

(3). 相关文件

4. 主配置文件

(1). vim /etc/rsyslog.conf

(2). 程序类型示例

二. logrotate

1. 工作原理

(1). 配置文件种类

(2). 观察主文件和子文件

2. 主配置文件

3. yum日志轮转

(1). 配置轮转规则

(2). 测试

rsyslog:系统日志管理

rsyslog可以收集来自其他设施的日志信息

rsyslog可以将其内部的日志信息传输到远程的syslog服务器

logrotate:日志轮换

logrotate对生成大量日志文件的系统的管理。 它允许自动旋转,压缩,删除和邮寄日志文件。 每个日志文件可以每天,每周,每月或当它变得太大时处理。将大量的日志,分割管理,删除旧日志。

一. rsyslog

1. rsyslog处理日志的进程

第一类

系统专职日志程序,处理绝大部分日志记录。包含系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息等。

第二类

httpd /nginx /mysql: 各类应用程序,可以以自己的方式记录日志.

讲解对应程序时会逐步介绍

[root@localhost ~]# ps aux |grep rsyslogd

root 717 0.0 0.0 219752 3880 ? Ssl 09:05 0:00 /usr/sbin/rsyslogd -n

观察rsyslog

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

(1). 常见日志

[root@localhost ~]# tail -10 /var/log/messages //系统主日志文件

[root@localhost ~]# tail -f /var/log/messages //动态查看日志文件的尾部

[root@localhost ~]# tailf /var/log/secure //认证、安全

[root@localhost ~]# tail /var/log/yum.log //yum

[root@localhost ~]# tail /var/log/maillog //跟邮件postfix相关

[root@localhost ~]# tail /var/log/cron //crond、at进程产生的日志

[root@localhost ~]# tail /var/log/dmesg //和系统启动相关

[root@localhost ~]# tail /var/log/audit/audit.log //系统审计日志

[root@localhost ~]# tail /var/log/mysqld.log //MySQL

[root@localhost ~]# tail /var/log/xferlog //和访问FTP服务器相关

[root@localhost ~]# tail /var/log/wtmp //当前登录的用户(命令:w)

[root@localhost ~]# tail /var/log/btmp //最近登录的用户(命令last)

[root@localhost ~]# tail /var/log/lastlog //所有用户的登录情况(命令lastlog )

(2). 网站日志管理

安装

[root@localhost~]# yum install -y httpd 安装httpd

[root@localhost~]# systemctl start httpd 打开httpd

[root@localhost~]# systemctl stop firewalld 关闭防火墙

调整网络

7f3ca523030dd8a4d277503c84b226b9.png

[root@localhost~]# systemctl restart network 重新启动网络

[root@localhost~]# ip a 查找自己的ip

c764f2b9b8ba2611012e7cda39e0cd4c.png

打开浏览其,输入你的服务器IP进行浏览

观察日志

[root@localhost~]# tailf /var/log/httpd/access_log

看有哪些人浏览了你的服务器

3. rsyslogd配置

(1). 相关程序

[root@localhost~]# yum install rsyslog logrotate

默认已安装

(2). 启动程序

[root@localhost~]# systemctl start rsyslog.service

(3). 相关文件

[root@localhost~]# rpm -qc rsyslog

查看日志程序文件

[root@localhost~]# rpm -ql rsyslog

列出与程序文件相关的文件

[root@localhost~]# /etc/rsyslog.conf

rsyslogd的主配置文件

[root@localhost~]# /etc/sysconfig/rsyslog

rsyslogd相关文件,定义级别

[root@localhost~]# /etc/logrotate.d/syslog

和日志轮转(切割)相关

4. 主配置文件

(1). vim /etc/rsyslog.conf

PULES

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

RULES即规则,有三部分组成(由设备+级别+存放位置)

RULES由FACILITY+LEVEL+FILE组成。

authpriv.* /var/log/secure(SSH信息)

mail.* -/var/log/maillog(发邮件)

cron.* /var/log/cron(创建任务)

这里有一个"-"符号, 表示是使用异步的方式记录, 因为日志一般会比较大

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

系统日志排除了邮件,认证,计划日志。

FACILITY&LEVEL

facility

facility是系统对某种类型APP事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。用来收集同类程序日志。

设备类型

LOG_SYSLOG syslogd自身产生的日志

LOG_AUTHPRIV 安全认证

LOG_CRON 调度程序(cron and at)

LOG_MAIL 邮件系统mail subsystem

LOG_USER (default) 用户相关

LOG_DAEMON 后台进程

LOG_FTP 文件服务器ftp daemon

LOG_KERN 内核设备kernel messages

LOG_LPR 打印机设备 printer subsystem

LOG_LOCAL0 through LOG_LOCAL7 用户自定义设备

level级别

LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失

LOG_ALERT 报警,需要立即处理,如磁盘空使用95%

LOG_CRIT 致命行为

LOG_ERR 错误行为

LOG_WARNING 警告信息

LOG_NOTICE 普通,重要的标准信息

LOG_INFO 标准信息

LOG_DEBUG 调试信息,排错所需,一般不建议使用

从下到上,级别从低到高,记录的信息越来越少

规则示意图

通过绘图形式来理解日志工作机制。

4895ba99ae2fd2fda6143f2441399255.png

(2). 程序类型示例

关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备。

如SSH程序会选择安全类设备。这一点由开发者定义。

[root@localhost~]# vim /etc/ssh/sshd_config

#SyslogFacility AUTHPRIV

SyslogFacility LOCAL5

修改ssh程序的设备类型

[root@localhost~]#vim /etc/rsyslog.conf

local5.* /var/log/serverzz

修改rsyslog程序的规则

[root@localhost~]# systemctl restart rsyslog.service sshd

重启rsyslog程序和ssh程序

最后使用其他终端,登录服务器,观察新日志文件。

二. logrotate

日志 记录了程序运行时各种信息。

通过日志可以分析用户行为,记录运行轨迹,查找程序问题。

可惜磁盘的空间是有限的

日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。

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

1. 工作原理

(1). 配置文件种类

主配置文件

/etc/logrotate.conf

决定每个日志文件如何轮转

子配置文件

/etc/logrotate.d/*

自定义配置,便于管理

(2). 观察主文件和子文件

[root@localhost ~]# ls /etc/logrotate.conf /etc/logrotate.d/

/etc/logrotate.conf

/etc/logrotate.d/:

acpid cups iscsiuiolog ppp rpm subscription-manager up2date wpa_supplicant

conman httpd mgetty psacct setroubleshoot syslog vsftpd.log yum

2. 主配置文件

[root@localhost ~]# vim /etc/logrotate.conf

=========全局设置==========

weekly //轮转的周期,一周轮转

rotate 4 //保留4份

create //轮转后创建新文件

dateext //使用日期作为后缀

#compress //是否压缩

include /etc/logrotate.d//包含该目录下的子配置文件

/var/log/wtmp { //对某日志文件设置轮转的方法

monthly //一月轮转一次

minsize 1M //最小达到1M才轮转,monthly and minsize(同时达到两个条件)

create 0664 root utmp //轮转后创建新文件,并设置权限

rotate 1 //保留一份

/var/log/btmp {

missingok //丢失不提示

monthly //每月轮转一次

create 0600 root utmp //轮转后创建新文件,并设置权限

rotate 1 //保留一份

}

3. yum日志轮转

轮转的目标文件 /var/log/yum.log

(1). 配置轮转规则

[root@localhost ~]# vim /etc/logrotate.d/yum

/var/log/yum.log {

missingok//丢失不执行

# notifempty//空文件不论转

# maxsize 30k//达到30k轮转, daily or size

# yearly//或者一年一轮转

daily//缩小周期到1天

rotate 3//轮转保留3次

create 0777 root root

}

(2). 测试

错误示范

[root@localhost ~]# /usr/sbin/logrotate /etc/logrotate.conf //手动轮转

[root@localhost ~]# ls /var/log/yum*

/var/log/yum.log

文件只有一个 因为日期没变

正确示范

[root@localhost ~]# date 04011000

修改时间 手动触发轮转

date 月日时分

把时间往后推迟 不然不会显示

[root@localhost ~]# /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

[root@localhost ~]# ls /var/log/yum*

文件已经出来多个 说明成功

关于时间

[root@localhost~] # /var/lib/logrotate/logrotate.status

# grep 'yum' 记录所有日志文件最近轮转的时间

[root@localhost~]# "/var/log/yum.log" 2019-3-31-10:0:23

如果没有轮转过,第一次只有记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值