linux rsyslog配置远程,rsyslog常用配置

本文详细解读了rsyslog在Linux系统中的日志类型、级别设置,以及如何配置本地存储、远程转发和高级过滤技巧。还介绍了如何利用rsyslog实现日志轮转和服务器间数据传输,是日志监控和管理的好帮手。
摘要由CSDN通过智能技术生成

近期在思考一种简单的系统日志统一分析监控方案。在开始后面的内容之间先说下rsyslog,rsyslog目前是redhat、Ubuntu等常见linux发行版上自带的日志管理软件,其配置也比较简单。其主配置文件是/etc/rsyslog.conf 。

一、日志类型和级别

1、日志设备(可以理解为日志类型)auth –pam产生的日志

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

cron –时间任务相关

kern –内核

lpr –打印

mail –邮件

mark(syslog)–rsyslog服务内部的信息,时间标识

news –新闻组

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

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

local 1~7 –自定义的日志设备

2、日志级别debug –有调式信息的,日志信息最多

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

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

warning –警告级别

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

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

alert –需要立刻修改的信息

emerg –内核崩溃等严重信息

none –什么都不记录

从上到下,级别从低到高,记录的信息越来越少

3、日志连接

日志设备(类型).(连接符号)日志级别,构成日志处理方式(action)。.xxx: 表示大于等于xxx级别的信息

.=xxx:表示等于xxx级别的信息

.!xxx:表示在xxx之外的等级的信息

二、日志存储和发送

1、本地保存kern.*;*.warn /var/log/kern.log

*.info;mail.none;authpriv.none;cron.none /var/log/messages

authpriv.* /var/log/secure

mail.* /var/log/maillog

cron.* /var/log/cron

2、远程转发*.* @192.168.0.1 # 使用UDP协议转发到192.168.0.1的514(默认)端口

*.* @@192.168.0.1:10514 # 使用TCP协议转发到192.168.0.1的10514(默认)端口

3、发送本地用户*.* root

*.* root,kiosk,zabbix # 使用,号分隔多个用户

*.* * # *号表示所有在线用户

三、高级用法

1、忽略、丢弃local3.* ~ # 忽略所有local3类型的所有级别的日志

local3.* ^/tmp/a.sh # ^号后跟可执行脚本或程序的绝对路径

2、过滤日志

过滤特定的日志到文件, 忽略(丢弃)包含某个字符串的日志:# 过滤日志, 由:号开头

:msg, contains, “error” /var/log/error.log

:msg, contains, “error” ~ # 忽略包含error的日志

:msg, contains, “user nagios” ~

local3.* ~

四、远程传输

1、配置服务端(接收)vi /etc/rsyslog.conf #在文件开始加上,同时确保514端口能够被客户端用tcp访问

$ModLoad imtcp.so # needs to be done just once #使用tcp方式

$InputTCPMaxSessions 500 # tcp接收连接数为500个

$InputTCPServerRun 514 # tcp接收信息的端口

$template logformat,”%TIMESTAMP:::date-mysql% %FROMHOST-IP%%msg%\n” # 定义一个名为logformat模板, 为信息加上日志时间

$template DynFile,”/var/log/tlog%$year%%$month%%$day%.log” # 定义日志文件的名称,按照年月日

:rawmsg, contains, “sdns_log” ?DynFile;logformat # 把rawmsg(也可以使用msg)日志中包含sdns_log标志的信息写到DynFile定义的日志文件里

:rawmsg, contains, “sdns_log” ~ # 这个表示丢弃包含sdns_log标志的信息, 一般都加上它, 以免多个日志文件记录重复的日志

如果要把不同服务器发送过来的日志保存到不同的文件, 可以这样操作::fromhost-ip, isequal, “192.168.0.160″ /var/log/host160.log

:FROMHOST-IP, isequal, “192.168.0.161″ /var/log/host161.log

:FROMHOST-IP, startswith, “192.168.1.” /var/log/network1.log

:FROMHOST-IP, startswith, “192.168.2.” /var/log/network2.log

2、配置客户端(发送)vi /etc/rsyslog.conf #在文件开始加上

#把包含sdns_log的信息通过tcp发到192.168.1.2 @@表示tcp @表示udp

:rawmsg, contains, “sdns_log” @@192.168.1.2 # 默认514端口

#这个表示丢弃包含sdns_log标志的信息,防止这个信息写到本机的/var/log/message

:rawmsg, contains, “sdns_log” ~

可以使用如下方法进行测试:在客户端上执行

logger -p user.info “sdns_log 34334″

在服务端的/var/log/目录里是否有tlog*日志产生

需要日志轮转的,可以使用logrotate进行配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值