Rsyslog远程传输的几种方式

基本介绍

Rsyslog是一个syslogd的多线程增强版,rsyslog vs. syslog-ng 链接是rsyslog官方和syslog特性和性能上的一些对比,目前大部分Linux发行版本默认也是使用rsyslog记录日志。这里介绍rsyslog远程传输的几种方式,对远程日志传输可以有一个了解。

rsyslog提供三个远程日志传输方式:

  • UDP: 数据包传输可信度不高
  • TCP: 数据包传输可信度比较高
  • RELP: 数据包传输可信度最高,避免数据丢失,比较新的协议,目前应用较少

以下为man手册对RELP协议的一个介绍:

RELP can be used instead of UDP or plain TCP syslog to provide reliable delivery of syslog messages. Please note that plain TCP syslog does NOT provide truly reliable delivery, with it messages may be lost when there is a connection problem or the server shuts down. RELP prevents message loss in hose cases.

关于RELP的更进一步了解可以参考 Using TLS with RELP RELP Input Module RELP Output Module (omrelp)

相关配置

To forward messages to another host via UDP, prepend the hostname with the at sign (“@”). To forward it via plain tcp, prepend two at signs (“@@”). To forward via RELP, prepend the string “:omrelp:” in front of the hostname.

UDP传输

Server端配置

/etc/rsyslog.conf

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  1. # Provides UDP syslog reception
  2. $ModLoad imudp
  3. $UDPServerRun 514
  4. $AllowedSender UDP, 192.168.80.0/24
  5. # This one is the template to generate the log filename dynamically, depending on the client's IP address.
  6. # 根据客户端的IP单独存放主机日志在不同目录,syslog需要手动创建
  7. $template Remote,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
  8. # Log all messages to the dynamically formed file.
  9. :fromhost-ip, !isequal, "127.0.0.1" ?Remote
  10. # 排除本地主机IP日志记录,只记录远程主机日志
  11. # 注意此规则需要在其它规则之前,否则配置没有意义,远程主机的日志也会记录到Server的日志文件中
  12. & ~ # 忽略之前所有的日志,远程主机日志记录完之后不再继续往下记录

或者把以上配置单独存放在/etc/rsyslog.d/中的xxx.conf配置文件中,尽量避免修改主配置文件,当然如果要独立文件主配置文件中必须含有以下配置

  1. 1
  2. 2
  3. 3
  1. # grep 'rsyslog.d' /etc/rsyslog.conf
  2. # Include all config files in /etc/rsyslog.d/
  3. $IncludeConfig /etc/rsyslog.d/*.conf
Client端配置

/etc/rsyslog.conf

  1. 1
  1. *.* @192.168.80.130

以上配置完成之后/etc/init.d/rsyslog restart

TCP传输

TCP配置和UDP类似,如下

Server端配置

/etc/rsyslog.conf

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  1. # Provides TCP syslog reception
  2. $ModLoad imtcp
  3. $InputTCPServerRun 514
  4. $AllowedSender TCP, 192.168.80.0/24
  5. # This one is the template to generate the log filename dynamically, depending on the client's IP address.
  6. $template Remote,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
  7. # Log all messages to the dynamically formed file.
  8. :fromhost-ip, !isequal, "127.0.0.1" ?Remote
  9. & ~
Client端配置

/etc/rsyslog.conf

  1. 1
  1. *.* @@192.168.80.130

客户端和服务端重启相关服务即可

关于TCP和UDP的传输方式,rsyslog官方推荐使用TCP传输方式

In general, we suggest to use TCP syslog. It is way more reliable than UDP syslog and still pretty fast. The main reason is, that UDP might suffer of message loss. This happens when the syslog server must receive large bursts of messages. If the system buffer for UDP is full, all other messages will be dropped. With TCP, this will not happen. But sometimes it might be good to have a UDP server configured as well. That is, because some devices (like routers) are not able to send TCP syslog by design. In that case, you would need both syslog server types to have everything covered. If you need both syslog server types configured, please make sure they run on proper ports. By default UDP syslog is received on port 514. TCP syslog needs a different port because often the RPC service is using this port as well.

RELP传输

RELP需要安装rsyslog-relp相应模块

  1. 1
  1. # yum install rsyslog-relp -y
Server端配置

/etc/rsyslog.conf

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  1. $ModLoad imrelp # 加载相应模块
  2. $InputRELPServerRun 20514 # 监听端口
  3. # This one is the template to generate the log filename dynamically, depending on the client's IP address.
  4. $template Remote,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
  5. # Log all messages to the dynamically formed file.
  6. :fromhost-ip, !isequal, "127.0.0.1" ?Remote
Client端配置

/etc/rsyslog.conf

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  1. $ActionQueueType LinkedList # use asynchronous processing
  2. $ActionQueueFileName srvrfwd # set file name, also enables disk mode
  3. $ActionResumeRetryCount -1 # infinite retries on insert failure
  4. $ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down
  5. *.* :omrelp:192.168.80.130:20514

客户端和服务端重启相关服务即可

参考和拓展资料

–EOF–

rsyslog传输type的更多相关文章

  1. rsyslog 传输mysql 日志

    在另外一种环境中,让我们假定你已经在机器上安装了一个名为"foobar"的应用程序,它会在/var/log下生成foobar.log日志文件.现在,你想要将它的日志定向到rsysl ...

  2. rsyslog 传输日志

    nginx 服务器: front-end:/usr/local/nginx/logs# cat /etc/rsyslog.conf | grep -v "^$" | grep -v ...

  3. <二>ELK-6.5.3学习笔记–使用rsyslog传输管理nginx日志

    http://www.eryajf.net/2362.html 转载于 本文预计阅读时间 28 分钟 文章目录[隐藏] 1,nginx日志json化. 2,发送端配置. 3,接收端配置. 4,配置lo ...

  4. rsyslog传输指定目录下的全部日志数据

    准备: 两台Linux电脑 server(A):10.1.75.177 client(B):10.1.75.229 目的: 将B上的/usr/local/record目录下的所有日志数据传输到A的/v ...

  5. Rsyslog日志服务搭建

    rsyslog是比syslog功能更强大的日志记录系统,可以将日志输出到文件,数据库和其它程序.Centos 6.x默认的rsyslog版本是5.x. 网上关于rsyslog的安装配置文档倒是不少,但 ...

  6. 003-centos7:rsyslog简单配置客户端和服务器端

    实现把一个主机作为客户端,把日志发送到指定的服务器端: [服务器端] 开放tcp端口,udp端口: vim /etc/rsyslog.conf: # Provides UDP syslog recep ...

  7. 日志收集之rsyslog to kafka

    项目需要将日志收集起来做存储分析,数据的流向为rsyslog(收集) -> kafka(消息队列) -> logstash(清理) -> es.hdfs: 今天我们先将如何利用rsy ...

  8. 用ElasticSearch存储日志

    介绍 如果你使用elasticsearch来存储你的日志,本文给你提供一些做法和建议. 如果你想从多台主机向elasticsearch汇集日志,你有以下多种选择: Graylog2 安装在一台中心机上 ...

  9. jsignature 中文开发手册

    2017年5月9日21:23:17,最近比较忙,没时间写博客,真的是越来越懒来了 github:https://github.com/brinley/jSignature http://www.unb ...

随机推荐

  1. HDU 数位dp

    模板http://www.cnblogs.com/jffifa/archive/2012/08/17/2644847.html 完全理解以后,我发现这种写法实在是太厉害了,简洁,优美,可以回避很多细节 ...

  2. Android 编程 AMapLocationClientOption 类中的 setMockEnable (高德地图 com.amap.api.location.AMapLocationClientOption 中的类)

    setMockEnable 高德地图中 AMapLocationClientOption 中有一个方法是设置APP是否接受模拟定位的设置,就是方法 setMockEnable //设置是否允许模拟位置 ...

  3. python 怎么画图

    1 安装matplotlib: 安装方法:http://www.2cto.com/os/201309/246928.html(其中,安装过程中,tar解压怎么解都有问题.然后就删掉再下载一遍) 2 使 ...

  4. python3.4 使用BeautifulSoup问题

    事情 记得昨儿还是什么时候,反正是以前,肯定安装过BeautifulSoup,只不过当初可能用的是python setup.py install,这是Python2的安装.然而用Python3运行Be ...

  5. iOS中scrollview自动滚动的实现

    http://bbs.csdn.net/topics/390347330 原问题是,我要展现给用户的内容放在scrollview中,让内容从上到底自动滚动,我最开始用的是DDAutoscrollvie ...

  6. Linux下Eclipse配置安装 PyDev(Pydev插件一直不能成功,安装这个插件失败的问题)

    pydev插件安装方式如果采取从网络上下载,然后解压到eclipse中文件夹到方式,运行到时候可能会导致重启eclipse后根本看不到这个插件! 原因以及解决方式,看下面!  转自:http://ww ...

  7. Epub格式的电子书——文件组成

    epub格式电子书遵循IDPF推出的OCF规范,OCF规范遵循ZIP压缩技术,即epub电子书本身就是一个ZIP文件,我们将epub格式电子书的后缀.epub修改为.zip后,可以通过解压缩软件(例如 ...

  8. jenkins api 使用

    1.  java <dependency> <groupId>com.offbytwo.jenkins</groupId> <artifactId>je ...

  9. Docker生态会重蹈Hadoop的覆辙吗?

    从网上找到了这篇2016年中旬刷爆朋友圈的文章,没有找到作者和首发出处.两年多过去了,文中分析的很多不确定性都有了结论,里面不少分析思路.观点还是很不错的. Docker的兴起和Hadoop何其相似 ...

  10. BZOJ2384:[CEOI2014]Match

    浅谈\(KMP\):https://www.cnblogs.com/AKMer/p/10438148.html 题目传送门:https://lydsy.com/JudgeOnline/problem. ...