Linux日志
一、什么是日志/p>
在Linux中,一般情况下会记录系统进程(syslog)和内核事件(klogd)进程相关的日志。
二、rsyslog
rsyslog是CentOS6系列提供记录日志的工具,具有如下特点:
支持多线程模式
支持像TCP,SSL,TLS,RELP等协议
可以将日志信息记录到像MySQL, PGSQL, Oracle等多种关系型数据中
强大的过滤器,可实现过滤系统信息中的任意部分
自定义输出格式
适用于企业级别日志记录需求
三、facility
记录日志的设施,从功能或程序上对日志进行分类,并由专门的工具负责记录其日志 。简单的来说,就是记录日志的“主人”。常见的有如下:
auth
认证相关的
authpriv
认证授权相关的
cron
周期性计划任务相关的
daemon
守护进程相关的
kern
内核相关的
lpr
打印相关的
邮件相关的
mark
防火墙标记相关的
news
新闻组相关的(较早)
security
安全相关的,同auth
syslog
记录日志工具自己的日志
user
用户相关的
uucp
unix to unix copy,unix之间共享文件的协议(较早)
local0-local7
用户自定义的
*
表示所有
!
表示取反
四、priority
称之为级别,来定义日志的紧急程度。常见的有:
debug
调试信息,最详细的信息
info
基本信息
notice
通知信息
warn warnning
警告信息
err error
错误信息
crit
蓝色警戒信息
alert
橙色警戒信息
emerg panic
红色警戒信息
这里的级别从上到下表示级别越高,危险程度也越高,像emer级别是系统可能已经挂掉了。这里也可使用 *来表示所有级别,none: 没有任何级别 。
五、Target
target指的是日志存储的位置,常见的有:
本地文件路径:例如/var/log/messages
用户: *
日志服务器:@SERVER_IP(使用UDP协议) @@SERVER_IP(使用TCP协议)
管道:|COMMAND
关系型数据库: 例如: ommysql:localhost:Syslog:log:log(下面详细介绍)
六、rsyslog的配置
rsyslog的主配置文件:/etc/rsyslog.conf,在这个配置文件中主要有三方面的定义,如下:
1、MODULES模块,在这里主要定义加载的模块等信息
#### MODULES ####
# 例如:作为日志服务器,使用udp/514作为监听端口
$ModLoad imudp
$UDPServerRun 514
2、GLOBAL DIRECTIVES模块,全局配置模块,在这里定义一些全局生效的属性
#### GLOBAL DIRECTIVES ####
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
3、定义日志规则
#### RULES ####
# 其定义格式 :
# facility.priority Target
mail.info /var/log/maillog # 比指定级别更高的所有级别,包括指定的级别本身;
mail.=info -/var/log/maillog # 明确指定级别,这里的 – 表示异步写入磁盘,不加默认同步写入磁盘
mail.!info * # 除了指定级别,通知所有的用户
*.info @172.16.10.88 # 所有facility的info级别,将日志以udp通信方式记录到172.16.10.88的日志服务器上
mail.*: :ommysql:localhost:Syslog:ftp:ftppass # mail的所有级别,记录到mysql数据库中,登陆账 是:ftp@localhost -u ftp -p ftppass。数据库名称是Syslog
mail,news.info: # mail,news的info和更高的级别
日志信息格式:
# 时间 主机 进程(PID):事件
Aug 7 02:32:14 server abrtd: Init complete, entering main loop
Aug 7 02:32:26 server kernel: readahead-collector: starting delayed service auditd
七、日志配置示例
1、日志服务器的功能
实验原理拓扑图:
# 配置如下:
###########################################在172.16.10.9上##############################################
1、安装rsyslog和mysql交互的软件
yum install rsyslog-mysql -y
2、搭建好lamp平台(这里不再详细介绍)
yum install httpd mysql php mysql-server php-gd -y
3、导入rsyslog所用到的数据库和表
# 具体通过 rpm -ql rsyslog-mysql 查看
mysql -u root -p
### createDB.sql内容如下:
CREATE DATABASE Syslog;
USE Syslog;
CREATE TABLE SystemEvents
(
ID int unsigned not null auto_increment primary key,
CustomerID bigint,
ReceivedAt datetime NULL,
DeviceReportedTime datetime NULL,
Facility smallint NULL,
Priority smallint NULL,
FromHost varchar(60) NULL,
Message text,
NTSeverity int NULL,
Importance int NULL,
EventSource varchar(60),
EventUser varchar(60) NULL,
EventCategory int NULL,
EventID int NULL,
EventBinaryData text NULL,
MaxAvailable int NULL,
CurrUsage int NULL,
MinUsage int NULL,
MaxUsage int NULL,
InfoUnitID int NULL ,
SysLogTag varchar(60),
EventLogType varchar(60),
GenericFileName VarChar(60),
SystemID int NULL
);
CREATE TABLE SystemEventsProperties
(
ID int unsigned not null auto_increment primary key,
SystemEventID int NULL ,
ParamName varchar(255) NULL ,
ParamValue text NULL
);
授权登陆用户:
mysql> grant all on Syslog.* to log@’localhost’ identified by ‘logpass’;
mysql> flush privileges;
# vim /etc/rsyslog.conf
$ModLoad ommysql
*.info;mail.none;authpriv.none;cron.none :ommysql:localhost,Syslog,log,logpass
5、重启服务
service rsyslog restart
#################################################################################################################################
测试结果:记录的结果如下,这样看起来比较费劲。
loganalyzer:功能展示,可以形象的展示日志信息。

其他的功能在这里不再一一介绍,只能自己摸索。
OVER.
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24721 人正在系统学习中 相关资源:丝柏人像美肤处理软件CPAC Imaging Pro 3绿化汉化破解版
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!