系统日志基础及rsyslog配置

简介

    Linux在日常运作中大量服务处理的事务信息需要记录下来,以便于对服务进行监控及排错。CentOS 6 专门提供了一个日志处理服务——rsyslog,它可以将程序产生的日志信息进行过滤、处理并存储到指定 文件/服务器 中,通过编辑其配置文件 /etc/rsyslog.conf 进行一些全局或者日志记录规则的定义。
日志记录格式:

时间 主机 进程[pid]:事件内容


rsyslog基本配置

/etc/rsyslog.conf 配置内容主要分为三部分:

#### MODULES ####     定义装载的模块信息
#### GLOBAL DIRECTIVES ####     定义全局配置
#### RULES ####     日志过滤及存储规则定义

    日志记录并非是将所有程序的所有日志信息全部记录于某一 文件/服务器 中,而是通过日志收集器(facility)对不同的程序的日志进行分类管理,进而过滤并记录。日志定义规则如下:

facility.priority	target
字段说明:
    facility:程序日志类型,在具体服务的配置文件中定义,
    	     如ssh服务定义日志类别为 /etc/ssh/sshd_config 文件中:
    	     /*
    	     SyslogFacility AUTHPRIV
    	     */
    	    可用类型有:
    	auth:认证相关
    	authpriv:授权相关
    	cron:针对于cron服务
    	daemon:针对于守护进程
    	kern:内核相关
    	lpr:打印系统
    	mail:邮件相关
    	mark:标记
    	news:新闻
    	security:安全相关
    	user:用户相关
    	uucp:Unix到Unix的一种复制协议
    	syslog:系统相关
    	local0-local7:自定义类型
    priority:日志级别,虽然在各服务的配置文件也有定义,但最终仅会记录该字段定义的级别以上的信息,
    	      比如某服务定义的日志级别为 notice,但此处定义该类服务的日志级别--为warn,最终记录为warn级别。
    	      priority从低到高级别分别为:
	debug,info,notice,warn,err,crit,alert,emerg,none
    target:存储对象,可用类型有:
    	/FILE_PATH:具体的某个文件
    	@HOST:某日志服务器
    	|COMMAND:通过管道将原有日志条目送给某命令进行处理后存储
    	USER:发送给指定用户的终端窗口,*表示所有用户
    	:ommysql:HOST,DB_NAME,DB_USER,USER_PASSWD	存储于某mysql数据库服务器上

例子:

例1: 将ssh服务的日志自定义级别为local1,日志级别为info,并存储与另一日志服务器。

日志服务器端配置:CentOS 7  IP:172.27.200.1

# vim /etc/rsyslog.conf
/*
	$ModLoad imudp
	$UDPServerRun 514	#开启服务器端功能并监听在UDP/514,也可以选择开启TCP/514
*/
# systemctl restart rsyslog.service


客户端配置:CentOS 6  IP:172.27.100.1

# vim /etc/ssh/sshd_config
/*
	SyslogFacility LOCAL1
	LogLevel INFO
*/

# vim /etc/rsyslog.conf
/*
	local1.info @172.27.200.1
*/
# service rsyslog restart
# service sshd restart

然后再登录CentOS 6时就会产生登录日志在CentOS 7的/var/log/messages文件中

例2:
1、将ssh服务的日志自定义级别为local1,日志级别为info,存储于零另一MySQL数据库服务器中。
2、该MySQL服务器提供HTTP服务,并使用LogAnalyzer工具进行日志分析。

1、服务端安装配置数据库  CentOS 7  IP:172.27.200.1

# yum install mariadb mariadb-server	#确保已安装好服务
# systemctl start mariadb
# mysql_secuer_installation	#MariaDB服务基本安全配置
# mysql -u root -p
MariaDB [(none)]> CREATE USER syslog@'172.27.%.%' IDENTIFIED BY 'syslogpasswd';	#创建访问Syslog数据库的用户
MariaDB [(none)]> GRANT ALL ON Syslog.* TO [email protected];	#授予该用户Syslog数据库所有权限,该数据库在客户端配置详细说明
MariaDB [(none)]> FLUSH PRIVILEGES;	#重读授权表
MariaDB [(none)]> exit
# vim /etc/my.cnf
/*
	[mysqld]
	...
	//添加以下两行,不使用名称解析
	skip_name_resolve = on
	innodb_file_per_table = on
*/
# systemctl restart mariadb


2、客户端完善数据库配置并安装相应模块  CentOS 6  IP:172.27.100.1

# yum install mysql rsyslog-mysql	#客户端安装mysql以及rsyslog连接远端mysql数据库的程序包
# mysql -usyslog -h172.27.200.1 -p 

你可能感兴趣的:(Linux笔记)