**环境说明**
系统:ubuntu 14.04
(CentOS可以参考http://www.cnblogs.com/hanyifeng/p/5463338.html)
rsyslog版本 :8.16.0-1ubuntu3
目标log位置 /data/mysqldata/mysql-audit.log
**日志服务端配置**
1、打开/etc/default/rsyslog
# 修改RSYSLOGD_OPTIONS=””
RSYSLOGD_OPTIONS=”-r”
# 参数解释
# -r: 允许接受外来日志消息,启动监听端口514;
# -x: 表示禁止中央日志服务器解析远程主机的FQDN(fully qualified domain name,完整域名)。默认情况下,当有其他机器向自己发送日志消息时,中央日志服务器将尝试解析该机器的FQDN。如果syslog守护进程无法解析出那个地址,它将继续尝试,这种毫无必要的额外负担将大幅降低日志记录工作的效率,应该禁止。
# -m: 表示给日志添加-- MARK --标记,0表示关闭标记。日志文件里的“--MARK--”消息可以让你知道中央日志服务器上的rsyslog守护进程没有停工偷懒。
2、配置远程服务器日志存放在日志服务器的本地位置以及日志格式
在/etc/rsyslog.d/50-default.conf中添加以下内容
# add: define logfiles
$template Remote,"/var/log/remote_log/%fromhost%_%fromhost-ip%/log_%app-name%_%$YEAR%-%$MONTH%-%$DAY%.log"
eg:
/var/log/remote_log/salt-minion_192.168.217.133/log_mysql-audit_2017-08-02.log
#/var/log/remote_log/:远程服务器中相关日志存放到本地的主路径
#%fromhost%_%fromhost-ip%:z主路径下对应远程服务器的主机名和ip
#%app-name%:远程服务器的(client端)中配置的tag
#$YEAR%-%$MONTH%-%$DAY%:日期
# Log all messages to the dynamically formed file.
:fromhost-ip, !isequal, "127.0.0.1" ?Remote
& ~
**配置完成,重启日志服务器**
/etc/init.d/rsyslog restart
**客户端配置**
1、创建配置文件 /etc/rsyslog.d/mysql-audit.conf
vim mysql-audit.log
module(load="imfile" PollingInterval="10") #加载模块
input(type="imfile" File="/data/mysqldata/mysql_audit.log" #定义文件位置
Tag="mysql-audit" #打tag
StateFile="/var/spool/rsyslog/mysql-audit.state" #inotify 状态
Severity="error" #log级别
Facility="local7") #rsyslog 级别
local7.* @192.168.0.5:514 #传送log服务器
**或者直接清空/etc/rsyslog.conf中的内容(清空前记得备份),然后写入下面内容**
module(load="imfile" PollingInterval="10") #加载模块
input(type="imfile" File="/data/mysqldata/mysql_audit.log" #指定日志文件位置
Tag="mysql-audit" #打tag
StateFile="/var/spool/rsyslog/mysql-audit.state" #inotify 状态
Severity="error" #log级别
Facility="local7") #rsyslog 级别
local7.* @192.168.0.5:514 #传送log服务器
**重启rsyslog以及设定文件权限**
touch /var/spool/rsyslog/mysql-audit.state
chown syslog.adm /var/spool/rsyslog/mysql-audit.state
chmod 755 /data/mysqldata/mysql-audit.log
/etc/init.d/rsyslog restart