当前位置: 首页 > 工具软件 > Rsyslog > 使用案例 >

rsyslog如何在linux系统安装,rsyslog安装配置

马淇
2023-12-01

1,准备

master:10.1.5.241

slave01:10.1.5.242

在服务器端和客户端分别安装rsyslog

[root@master ~]# yum -y rsyslog

[root@master ~]# rsyslogd -version

rsyslogd 5.8.10, compiled with:

FEATURE_REGEXP:                Yes

FEATURE_LARGEFILE:            No

GSSAPI Kerberos 5 support:        Yes

FEATURE_DEBUG (debug build, slow code):    No

32bit Atomic operations supported:    Yes

64bit Atomic operations supported:    Yes

Runtime Instrumentation (slow code):    No

See http://www.rsyslog.com for more information.

2,配置

配置文件如下:

[root@master ~]# egrep -v '^#|^$' /etc/rsyslog.conf

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)

$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

$ModLoad immark  # provides --MARK-- message capability

$ModLoad imudp                            打开ucp连接,通过ucp传日志

$UDPServerRun 514

$ModLoad imtcp                                        打开tcp连接,通过tcp传日志

$InputTCPServerRun 10514

$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

例子1,

简单配置:将所有系统log都放入服务器端下的/var/log/all.log下。

配置:

服务器:

/etc/rsyslog.conf文件最后添加

*.*                                    /var/log/all.log

[root@master ~]# /etc/init.d/rsyslog restart

客户端:

/etc/rsyslog.conf文件最后添加

*.*                                    @@10.1.5.241:10514    通过tcp传

[root@slave01 ~]# /etc/init.d/rsyslog restart

测试:

tail -f /var/log/all.log

例子2,

自定义测试,

配置:

服务器:

/etc/rsyslog.conf文件最后添加

:fromhost,isequal, “slave01″ /var/log/all.log            #过滤来自lave01的日志,放入/var/log/all.log

:fromhost,isequal, “slave01″ ~

[root@master ~]# /etc/init.d/rsyslog restart

客户端:

*.*                    @10.1.5.241:514                     #通过udp传

[root@slave01 ~]# /etc/init.d/rsyslog restart

测试:

[root@slave01 ~]# logger "hello world"

[root@master ~]# tail -f /var/log/all.log

例子3,

自定义测试,

配置:

服务器:

/etc/rsyslog.conf文件最后添加

local5.*        /var/log/all.log            #过滤local5级别的日志,放入/var/log/all.log

local5.*        ~

[root@master ~]# /etc/init.d/rsyslog restart

客户端:

local5.*                    @10.1.5.241:514                     #通过udp传

[root@slave01 ~]# /etc/init.d/rsyslog restart

测试:

[root@slave01 ~]# logger -p local5.info  "hello world"          # 这里必须指定local5级别

[root@master ~]# tail -f /var/log/all.log

例子4,

自定义测试,

配置:

服务器:

/etc/rsyslog.conf文件最后添加

$template logfile,    "/var/log/logfile_%$year%%$month%%$day%.log"

:msg,contains,        "muyushan"            ?logfile

[root@master ~]# /etc/init.d/rsyslog restart

客户端:

:msg,contains,        "muyushan"                @@10.1.5.241:10514                     #通过tdp传

[root@slave01 ~]# /etc/init.d/rsyslog restart

测试:

[root@slave01 ~]# logger -t muyushan  "hello world"          # 在日志正文每行记录加上“muyushan”标签

[root@master ~]# tail -f /var/log/all.log

例子5,

apache日志管理

配置:

服务器:

mkdir /data/apache/logs

chown apache:apache /data/apache/logs

/etc/rsyslog.conf文件最后添加

$template access_log, "%msg:2:$%\n"

$template error_log, "%msg%\n"

# web1-access-log

$template access_log_file_web1, "/data/apache/logs/%$NOW%/access-log/web1-access_log"

# web1-error-log

$template error_log_file_web1, "/data/apache/logs/%$NOW%/error-log/web1-error_log"

# web1-access-log

if $syslogfacility-text == 'local6' and $syslogtag == 'http-access:' and $fromhost-ip == '10.1.5.241' then -?access_log_file_web1;access_log

# web1-error-log

if $syslogfacility-text == 'local6' and $syslogtag == 'http-error:' and $fromhost-ip == '10.1.5.241' then -?error_log_file_web1;error_log

[root@master ~]# /etc/init.d/rsyslog restart

客户端:

vim /etc/http/conf/httpd.conf

找到以下选项并将此选项标注#

CustomLog logs/access_log combined

ErrorLog logs/error_log

分别在此2个选项下添加如下内容

CustomLog "|/usr/bin/logger -p local6.info -t http-access" combined

ErrorLog "| /usr/bin/logger -p local6.info -t http-error"

/etc/rsyslog.conf文件最后添加

local5.*        /var/log/all.log            #过滤local5级别的日志,放入/var/log/all.log

local5.*        ~

[root@slave01 ~]# /etc/init.d/rsyslog restart

测试:

[root@master ~]# tail -f /data/apache/logs/%$NOW%/access-log/web1-access_log

[root@master ~]# tail -f /data/apache/logs/%$NOW%/error-log/web1-error_log

附录:

日志设备(可以理解为日志类型)

日志设备/类型

说明

auth

–pam产生的日志

authpriv

–ssh,ftp等登录信息的验证信息

cron

–时间任务相关

kern

–内核

lpr

–打印

mail

–邮件

mark(syslog)

–rsyslog服务内部的信息,时间标识

news

–新闻组

user

–用户程序产生的相关信息

uucp

–unix to unix copy, unix主机之间相关的通讯

local 1~7

–自定义的日志设备

日志级别

从上到下,级别从低到高,记录的信息越来越少 详细的可以查看手册: man 3 syslog

级别

说明

级别值

debug

–有调式信息的,日志信息最多

7

info

–一般信息的日志,最常用

notice

–最具有重要性的普通条件的信息

warning

–警告级别

4

err

–错误级别,阻止某个功能或者模块不能正常工作的信息

crit

–严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert

–需要立刻修改的信息

emerg

–内核崩溃等严重信息

none

–什么都不记录

连接符号

连接符号

说明

.xxx

表示大于等于xxx级别的信息

.=xxx

表示等于xxx级别的信息

.!xxx

表示在xxx之外的等级的信息

示例:

:msg,contains,"error"        # 选择包含 error 的日志

:hostname,isequal, "host1"   # 选择主机名为 host1 的日志

:msg,!regex,"fatal .* error" # 选择不匹配指定正则表达式的日志

logger的使用

logger 是一个shell 命令接口,可以通过该接口使用Syslog的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

logger -it error  -p local5.info "hello world"

-i 在每行都记录进程ID

-t 日志中的每一行都加一个error标签

-p 指定自定义的日志设备,和配置文件的local5.*对应,配置文件里没有.info。

说明,如果是自己写的程序,在生成日志的代码中需要用logger命令转到系统的日志接口。

参考:

使用说明:http://w.gdu.me/wiki/Linux/rsyslog_logrotate.html

配置介绍:http://blog.clanzx.net/2013/12/31/rsyslog.html

http://www.cnblogs.com/blueswu/p/3564763.html

http://www.tuicool.com/articles/Jv2eUvn

 类似资料: