一、查看配置文件/var/log下面的文件解释
messages 系统日志
boot.log 系统启动日志
dmesg 核心日志
maillog 邮件日志
cron 周期性的计划任务日志
secure 安全相关的日志(网络连接登录系统信息)
btmp 二进制文件,记录远程登录失败日志
wtmp 二进制文件 记录所有登入和登出的信息
二、日志文件由rsyslog服务管理
日志格式分为:文本格式、二进制日志、数据库日志
1、查看软件是否安装
# rpm -ql rsyslog
rsyslog-5.8.10-8.el6.x86_64
2、查看软件带来的文件列表
# rpm -ql rsyslog
/etc/logrotate.d/syslog 日志轮转
/etc/rc.d/init.d/rsyslog 服务启动脚本
/etc/rsyslog.conf 主配置文件
/etc/rsyslog.d 该服务的主目录
/sbin/rsyslogd 二进制的命令
3、确认服务是否运行
#service rsyslog status
rsyslogd (pid 1785) is running...
4、了解主配置文件
# cat /etc/rsyslog.conf |grep -v ^#|grep -v ^$
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog 邮件的日志
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log 启动日志
* 代表任何服务或者任何日志级别
. 用来分割服务和日志级别 cron.err
, 用来分割不同的服务 cron,mail.err
; 用来分割服务,日志组合 cron.err ; mail.info
! 排除操作,前面的有相同的服务才有意义
= 代表等于某个日志级别
- 指定目标文件时,代表同步写入
日志消息的级别
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
0 紧急 会导致主机系统的不可用
1 警告 非常严重 必须马上采取措施的问题
2 严重 比较严重的情况
3 错误 运行出现错误
4 警告 可能会影响系统功能的事件
5 不会影响系统但需要关注
6 一般信息
7 调试信息 (开发人员)
本地日志管理:
demo1: 开启所有大于等于debug 级别的日志记录到/var/log/debug
1、修改配置文件
/etc/rsyslog.conf
*.debug /var/log/debug
2、重新加载或者重新启动服务
service rsyslog restart
3、测试验证
# cat /var/log/debug
demo2:
mail服务的等于info级别的日志记录到/tmp/mail-log
1、配置文件 /etc/rsyslog.conf
mail.=info /tmp/mail-log
2、重新启动rsyslog服务
service rsyslog restart
3、测试验证:
# tail -f /tmp/mail-log
demo3:将ssh日志文件单独记录到/var/log/ssh
1、通过修改ssh服务的配置文件来指定记录ssh服务的载体(设备)local0
# vim /etc/ssh/sshd_config
SyslogFacility local0
2、重新启动ssh服务 service sshd restart
3、将来自于local0设备的日志存放到/var/log/ssh——>修改/etc/rsyslog.conf
vim /etc/rsyslog.conf
local0.* /var/log/ssh
4、重启服务
service rsyslog restart
5、测试验证 有显示代表成功
# tail -f /var/log/ssh
五、远程日志管理
首先查看server端和client端是否安装
1、# rpm -q rsrlog
# rsyslog-5.8.10-8.el6.x86_64
2、启动服务
service rsyslog restart
配置service机端
1、 vim /etc/rsrlog.conf
# Provides UDP syslog reception UDP的速度较快 ,视频等选择
# Provides TCP syslog reception TCP的速率较慢,数据要求较高的
$ModLoad imudp
$UDPServerRun 514
以两项是看你选择的TCP或UDP打开
2、重启服务
service rsyslog restart
4、查看端口是否在监听
#losf -i :514 514TCP的端口号
#netstat -nltp | grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 3280/rsyslogd
tcp 0 0 :::514 :::* LISTEN 3280/rsyslogd
-n 以数字显示
-p 显示进程名称
-u udp协议
-t tcp协议
-a 所有的链接
-l 监听状态
client端
1、指定记录ssh服务日志的载体
/etc/ssh/sshd_conf
locla0.* @@10.1.1.254:514 @@代表tcp协议 @代表UDP协议 ip地址选择serner的IPD地址
2、重启服务
service rsyslog restart
server端
1、10.1.1.254将来自local0设备上的日志保存到/var/log/ssh-server
/etc/rsyslog.conf
local0.* /var/log/ssh-server ssh-server这个文件在配置文件可以自己可以定义,启动服务在/var/log/中就会生成
2、重启服务
service rsyslog restart
测试:能与客服的相通的主机,ssh链接client端
server端查看日志 tai -f /var/log/ssh-server
六、日志论转 logrotate
1、避免日志过大造成/var/log/ 下文件系统爆满
2、方面管理查看
# rpm -q logrotate 查看软件是否安装
logrotate-3.7.8-17.el6.x86_64
# rpm -ql logrotate
/etc/cron.daily/logrotate 每天轮转的文件
/etc/logrotate.conf 主配置文件
/etc/logrotate.d 主目录(子配置文件)
/usr/sbin/logrotate 二进制命令
logrotate配置文件
/etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
以7天为一个周期(单位),每周轮转
# keep 4 weeks worth of backlogs
rotate 4
每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 加载外部目录
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly 每月为一个周期轮转
create 0664 root utmp 创建一个新的空文件,权限是0664 属主root 属组utmp
minsize 1M 文件大于1M,并且到了轮转周期才会轮转
#size 1M 只要文件大于1M就轮转,不管有没有到轮转周期
rotate 1 保留1个月的日志
}
/var/log/btmp {
missingok 当日志文件不存在时不会报错 logrotate -f /etc/logrotate.conf
error: stat of 在执行以上条命令时不会报错但是相关的功能是完成列的
monthly
create 0600 root utmp
rotate 1
}
子配置文件 /etc/logrotate.d/syslog
sharedscripts
表示日志文件轮转时需要执行prerotate和endscript或者postrotate和endscript之间的shell脚本
postrotate 表示在轮转之后执行
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
sharedscripts
postrotate 表示在轮转之后执行
shell 脚本
endscript
sharedscripts
prerotate 表示在轮转之前执行
shell 脚本
endscript
demo1:删掉所有的日志文件,强制轮转
# find /var/log -type f -exec rm -f {} \;
# logrotate -f /etc/logrotate.conf
error: stat of /var/log/wtmp failed: No such file or director 这个报错表示成功的
demo2:
配置ssh服务轮转:
方法1:vim /etc/logrotate.conf
/var/log/ssh {
missingok
size 1M
create
monthly
rotate 1
}
重启下服务:service rsyslog restart
方法二:
vim /etc/logrotate.d/ssh
/var/log/ssh {
missingok
size 1M
create
monthly
rotate 1
}
重启下服务:service rsyslog restart
转载于:https://blog.51cto.com/11457124/1856106