日志管理
学习目标
- 清楚日志在系统中的作用
- 能够看懂rsyslog基本配置项的含义
- 知道系统保存日志的位置
- 能够自己动手配置日志服务器
一、日志介绍
1. 日志概念
日志是系统用来记录系统运行时候的一些相关信息文本文件
2. 日志作用
日志是为了保存相关程序的运行状态、错误信息等,为了对系统进行分析、保存历史记录以及在出现错误的时候发现分析错误使用
3. linux系统日志类型
内核信息
服务信息
应用程序信息
二、rsyslog
1. rsyslog介绍
-
rsyslog是linux系统中用来实现日志功能的服务,在CentOS5及更早版本中使用的是syslog,rsyslog是syslog的增强版本。rsyslog默认已经安装,并且是自启动的。
-
可以通过下面的命令控制rsyslog
[root@itcast ~]# systemctl status|start|stop|restart rsyslog
-
rsyslog的配置文件为
/etc/rsyslog.conf
-
日志消息一般保存在
/var/log
-
查看日志命令一般使用
tail -f logfile # 实时查看日志 tail -n logfile # 查看最新n行
2. rsyslog概念
2.1 facility
设施,用来定义日志消息的来源,方便对日志进行分类。
kern 内核消息
user 用户级消息
mail 邮件系统消息
daemom 系统服务消息
auth 认证系统消息
syslog 日志系统自身消息
lpr 打印
authpriv 权限系统消息
cron 定时任务消息
news 新闻系统消息
uucp uucp系统消息
ftp ftp服务消息
local0 ~ local7 自定义消息
2.2 priority
日志级别,定义不同消息的级别
Emergency 系统已经不可用
alert 必须立即进行处理
critical 严重错误
error 错误
warning 警告
notice 正常信息,但是较为重要
informational 正常信息
debug debug信息
3. rsyslog配置
3.1 rsyslog.conf组成
MODULES
GLOBAL DRICTIVES
RULES
3.2 RULES配置规则
facility.priority target
target (保存位置):
文件、用户、日志服务器
# 比如:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
mail.* -/var/log/maillog@
# 如果是日志服务器格式是:
*.* @192.168.100.1 (使用UDP协议发送)
*.* @@192.168.100.1 (使用TCP协议发送)
4. rsyslog实践
4.1 查看sshd的日志位置
[root@itcast ~]# vim /etc/ssh/sshd_config
...省略...
# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
...省略...
[root@itcast ~]# vim /etc/rsyslog.conf
....省略...
# The authpriv file has restricted access.
authpriv.* /var/log/secure
...省略...
4.2 配置日志服务器
日志服务器原理图
配置具体步骤:
日志服务器配置
# 在日志服务器中开启tcp或者udp监听
[root@itcast ~]# vim /etc/rsyslog.conf
...省略...
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
...省略...
[root@itcast ~]# systemctl restart rsyslog
日志客户端配置
[root@itcast ~]# vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none @@172.16.99.215 # 以TCP方式发送
[root@itcast ~]# systemctl restart rsyslog
# 测试效果
[root@itcast(日志客户端) ~]# yum -y install samba //在日志客户端安装一个软件
[root@itcast(日志客户端) ~]# tail /var/log/messages //查看没有生成日志
[root@itcast2(日志服务器) ~]# tail /var/log/messages //在服务器端查看生成了日志