查看日志文件是否起来:systemctl status rsyslog
#vim /etc/rsyslog.conf
-----> 日志的主配置文件 include 包含
*.info;mail.none;authpriv.none;cron.none /var/log/messages 日志定义
.之前叫做日志对象,要给谁记录日志
.之后日志级别:级别越低,信息越多
日志文件:存储日志的文件
日志级别(越低包含的级别信息越丰富——)
The priority is one of the following keywords, in ascending order: debug, info, notice,
warning, warn (same as warning), err, error (same as err), crit, alert, emerg, panic (same as
emerg). The keywords error, warn and panic are deprecated and should not be used anymore. The
priority defines the severity of the message. 前的级别低,越详细,低的包含高的日志级别
debug:最低的,一般不用
info:安装信息,警告信息,错误信息
notice:相当与提示
warn/warning:警告,错误
error/err:错误,严重错误
alert:告警,表示已经出现问题
emerg:恐慌级别
eg:将内核日志文件自定义到/var/log/kern.log
touch /var/log/kern.log
vim /etc/rsyslog.conf --→ kern.info /var/log/kern.log
查看都有哪些日志对象和日志级别
man 5 rsyslog.conf
local0 through local7:自己定义的日志文件
local0-local7日志设备的使用:
ssh的配置文件:/etc/ssh/sshd_config
例:定义sshd日志:
1.修改sshd服务主配置文件:
vim /etc/ssh/sshd_config
SyslogFacility AUTHPRIV改为 SyslogFacility local2
#SyslogFacility local2 //设置ssh的日志定义由local2设备来记录
2.在rsyslog的主配置文件里加上
local2.info /var/log/ssh
3.重启服务
远程日志:
两台机器
一台接收日志
一台发送日志
1.所有机器关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0 (临时关闭selinux)
vim /etc/selinux/config (永久关闭selinux)
SELINUX=disabled
第二种方法永久关闭selinux
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
2.产生日志服务器(发送端)
vim /etc/rsyslog.conf
*.* @@10.11.59.91 //注意@:使用udp @@:使用tcp
3.日志收集服务器(接收端)
vim /etc/rsyslog.conf (修改配置文件打开接收功能)
$ModLoad imtcp
$InputTCPServerRun514 (开启tcp修改系统配置文件时,远程地址用@@,开启udp用@)
4.两台机器重新启动日志服务
systemctl restart rsyslog
5.验证
在产生日志服务器安装一个软件,产生一条日志.
在接收的服务器的messages的日志文件中查看
扩展:
查看端口信息—— lsof -i:3306
修改主机名:
hostnamectl set-hostname xingdian
关掉终端重新打开一个终端就可以立刻生效
注:针对任何日志文件
logrotate (轮转,日志切割)
- 如果没有日志轮转,日志文件会越来越大,最后导致日志打不开或者是打开时间过长
- 将丢弃系统中最旧的日志文件,以节省空间
- logrotate本身不是系统进程,即日志的轮转不会自动执行,它是通过写到相应的配置文件中使用计划任务crond每天执行
4.对日志的切割,你只需要给他定义一个规则
rpm -qa |grep logrotate
logrotate-3.7.8-16.el6.x86_64
logrotate 配置文件:
/etc/logrotate.conf (决定每个日志文件如何轮转)
/etc/logrotate.d/*
主配置文件
vim /etc/logrotate.conf
=========全局设置==========
weekly //轮转的周期,一周轮转
rotate 4 //保留4份
create //轮转后创建新文件
dateext //使用日期作为后缀
#compress //是否压缩
RPM packages drop log rotation information into this directory
#rpm安装的程序,按照下面目录规则进行轮转
include /etc/logrotate.d //包含该目录下的文件
no packages own wtmp and btmp -- we'll rotate them here
对于wtmp和btmp这样无主的日志,按照下面配置进行轮转
/var/log/wtmp { //对该日志文件设置轮转的方法
monthly //一月轮转一次
minsize 1M //最小达到1M才轮转,即到了规定的时间未达到大小不会轮转
create 0664 root utmp //轮转后创建新文件,并设置权限属主和属组
rotate 1 //保留一份
}
/var/log/btmp {
missingok //丢失不提示
monthly //每月轮转一次
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
vim /etc/logrotate.d/yum //.d是子配置文件,原有的设置,没有说保存几份,看上面的全局设置
/var/log/yum.log { //yum日志文件
missingok //丢失不提示
notifempty //如果为空,不轮转
size 30k //达到30k就轮转
yearly //达到一年就轮转一次,两者满足一个就轮转
create 0600 root root //创建新文件
}
ls /etc/logrotate.d/
chrony ppp wpa_supplicant syslog yum
日志的轮转规则文件是在安装rpm包时就自动提供的,无需人为手动编写
只有自己创建的日志文件才需要自己编写日志轮转规则文件
yum -y install httpd
ls /etc/logrotate.d/
chrony ppp wpa_supplicant syslog yum httpd
yum -y install vsftpd
ls
chrony httpd ppp syslog vsftpd wpa_supplicant yum
说明:
当切割之后创建新文件,新文件有新的inode number
如果希望进程如rsyslog、nginx进程会把新的日志写入新日志文件中,应该在日志切割后,告诉一下rsyslog、nginx进程reload 或 信号(1 or HUP)