Rsyslog-legacy(旧版本语法)配置说明及举例

1、 RULES-书写规则

格式:日志设备(类型).日志级别             日志处理方式

(1)日志类型分类


auth


pam产生的日志


authpriv


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


cron


时间任务相关


kern


内核


lpr


打印


mail


邮件


mark(syslog)


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


news


新闻组


user


用户程序产生的相关信息


uucp


unix主机之间相关的通讯


local 1~7


自定义的日志设备(类型)

(2)日志级别分类


debug


有调试信息的,日志信息最多


info


一般信息的日志,最常用


notice


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


warning


警告级别


err


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


crit


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


alert


需要立即修改的信息


emerg


内核崩溃等严重信息


none


什么都不记录

备注:从上到小,级别由低到高,记录的信息也越来越少。

(3)连接符号


.xxx


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


.=xxx


表示等于xxx级别的信息


.!xxx


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

(4)演示


记录到普通文件或设备文件


*.*   /var/log/file.log                                #绝对路径

*.*   /dev/pts/0


转发到远程


*.*   @192.168.0.1                                   #UDP

*.*   @@192.168.0.1:10514                   #TCP


发送给用户(在线用户才生效)


*.*    root

*.*    root,test                                            #多个用户使用英文逗号分开

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


忽略,丢弃


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


执行脚本


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

#日志内容可作为脚本的第一个参数


触发报警


.. note::

备注:日志记录的顺序有先后关系

2、实例

(1)过滤日志,由:号开头


:msg,contains,       "error"     /var/log/error.log


:msg,contains,        "error"    ~


:msg,contains,        "user vicky"     ~


:msg, contains,       "module-alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write"    ~


local3.*                   ~


&                             ~                  #忽略所有日志

(2)使用模板来定义日志格式

  • 默认模板格式:
$template myFormat, "%rawmsg%\n"
  • 定义模板格式:

  详见文档rsyslog的模板

  • 为规则使用模板:
cron.*          /var/log/cron;myFormat          #分号后面添加模板名

(3)远程发送和接收

*.*   @192.168.0.1                          #UDP

*.*   @@192.168.0.1:10514                   #TCP

client端:配置发送到哪里,有无端口,使用什么协议发送

server端:配置使用什么协议监听哪个端口,收到的日志保存到哪里

(4)作为server端,将不同client端发送过来的日志保存到不同的文件

:FROMHOST-IP,isequal,          "192.168.0.3"                   /var/log/host3.log

:FROMHOST-IP,isequal,          "192.168.0.133"               /var/log/host133.log

:FROMHOST-IP,startwith,      "192.168.1."                      /var/log/network1.log

:FROMHOST-IP,startwith,      "192.168.2."                      /var/log/network2.log
时间: 2024-11-05 13:30:20

Rsyslog-legacy(旧版本语法)配置说明及举例的相关文章

日志收集二:使用rsyslog (v5版本)进行日志汇总

rsyslog相关: 一般系统默认安装的都是旧版本,如果不升级,使用v5版本的配置语法v5配置参照:https://www.rsyslog.com/doc/v5-stable/监听端口:514(使用UDP协议,减少系统负载)自定义设备号使用约定:local0 ~ local7  local0:代码直接发送syslog  local1:nginx使用  local6:文本收集使用 Nginx日志处理: nginx支持将日志直接发送给rsyslog,文档链接:http://nginx.org/en/

ActiveReports 6:如何升级旧版本的项目

如果现在的项目使用的是ActiveReports for .NET 3.0,那么有两种升级方式: 一是使用ActiveReports 6.0附带的转换工具(参见下面"升级ActiveReports for .NET 1.0 或2.0项目"): 二是在Visual Studio中打开工程,用新版本的DLL替换掉旧版本的DLL引用,并且修改代码的编译错误. 替换工程的DLL引用 在Visual Studio中打开需要升级的报表工程. 在解决方案资源管理器中,点击"显示所有文件&q

Advanced Installer 安装前卸载旧版本的办法

原文:Advanced Installer 安装前卸载旧版本的办法 Advanced Installer这个工具百度出来的资料太少了. 在我们平常打包的工作中,经常遇到的一个问题是,如何能在安装新版本的时候友好的提示/卸载之前的旧版本,而不是粗暴的直接让用户自行去卸载呢?今天就这个问题给出下面一个具体的解决办法,话不多说,直接开始: 方案一:安装时自动卸载旧版本 第一步:找到并记录下上一个版本的Upgrade Code,此Code在上一个工程中的如下位置: 第二步:在新版本中的Upgrade C

MySQL新旧版本ORDER BY 处理方法

MySQL 的order by 涉及到三个参数:A. sort_buffer_size 排序缓存.B. read_rnd_buffer_size 第二次排序缓存.C. max_length_for_sort_data 带普通列的最大排序约束. 我来简单说下MySQL的排序规则.假设查询语句select * from tb1 where 1 order by  a ; 字段a没有建立索引:以上三个参数都足够大.MySQL内部有两种排序规则:第一种,是普通的排序.这种排序的特点是节省内存,但是最终会

ASP.NET 5 DNX SDK删除旧版本

ASP.NET 5各种升级后旧版本的DNX不会删除,想删除旧版本的DNX,可以通过以下命令完成 首先打开CMD或者Powershell 1.先输入dnvm看看命令中是否有uninstall 2.如果没有的话先升级dnvm dnvm update-self 3.如果有uninstall的话可以执行以下命令 dnvm list 结果大致如下: Active Version Runtime Architecture OperatingSystem Alias ------ ------- ------

apicloud安卓更新,新版本不能覆盖旧版本的问题及解决方案

原因:apicloud安卓打包前代码用小乌龟提交,在当前项目的文件夹目录下,都看得到已经提交成功,全部打绿色勾.而在apicloud IDE中部分文件仍旧带星号. 在这种情况下打包,用apicloud更新版本时,就会出现新版本不能覆盖旧版本的问题. 解决方案:备份项目代码,删除项目内代码文件,用小乌龟提交空的项目文件夹,然后更新该项目文件夹,判断服务器svn上代码是否为空,不为空,继续清空提交,更新,直到为空.然后将备份的代码拷贝到空的项目文件夹里面,提交上去.到apicloud IDE中就可以

Azure 国际篇_新旧版本迁移(二)_迁移VHD文件

如果要使用新版本ARM上的资源,例如虚拟网络,存储,网关等等,我们就要把旧版本的Classic 迁移到ARM上.迁移的办法非常简单. 现在RAM的"虚拟机(经典)"上找到旧版本的虚拟机DC01,接下来我们要把这台VM迁移到"虚拟机"这里. 新版本RAM上发虚拟机为空. 在RAM上新建资源组markleong 下载安装Azure Explore:http://storageexplorer.com/,安装完毕后,输入帐号登录,找到旧版本的虚拟机VHD文件.关闭虚拟机后

IE下判断IE版本语法使用

先摆一下判断IE版本语法 <!--[if lte IE 6]> <![endif]--> IE6及其以下版本可见 <!--[if lte IE 7]> <![endif]--> IE7及其以下版本可见 <!--[if IE 6]> <![endif]--> 只有IE6版本可见 <![if !IE]> <![endif]> 除了IE以外的版本 <!--[if lt IE 8]> <![endif

浅谈 angular新旧版本问题

一直在学习angularJs,之前用的版本比较老,前些天更新了一下angularJs的版本,然后发现了一些问题,希望和大家分享一下. 在老的版本里控制器直接用函数定义就可以 比如: 在angularJs1.3.0中controller 直接写成函数就可以  但是在新版本里写控制器需要这样: 新版本里 我用的 1.3.9版本,必须定义angular.module,直接写成函数的形式angularJs不识别了. 然后今天我用angular-1.3.9写了一个route,一直在报错.我就想是不是版本的