centos5系列系统自带为syslog1.4.1

centos6系列自带rsyslog版本为5.8.10

centos7系列自带rsyslog版本为7.4.7

目前最新版rsyslog为8.27.0,rsyslog从8.5.0后对imfile模块进行重构,文件名中可以支持通配符。

rsyslog官网:http://www.rsyslog.com/

升级rsyslog需要配置yum源,centos默认的升级不到最新的版本。

1、配置yum

为了能够使用RPM存储库,您需要一个.repo文件。使用您的webbrowser,请访问http://rpms.adiscon.com。在这里,可以下载rsyslogall.repo文件,或者转到所需版本的子文件夹(例如v8-stable),然后从中下载rsyslog.repo文件。(google翻译来的)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@localhost yum.repos.d]# pwd
/etc/yum.repos.d
[root@localhost yum.repos.d]# ls
dvd.repo  packagekit-media.repo  rhel-source.repo  rsyslog.repo
[root@localhost yum.repos.d]# cat rsyslog.repo 
[rsyslog_v8]
name=Adiscon CentOS-$releasever - local packages for $basearch
baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
gpgkey=http://rpms.adiscon.com/RPM-GPG-KEY-Adiscon
protect=1
[root@localhost yum.repos.d]# rpm -qa|grep -i rsyslog
rsyslog-5.8.10-10.el6_6.x86_64
[root@localhost yum.repos.d]# yum -y install rsyslog
[root@localhost yum.repos.d]# rpm -qa|grep -i rsyslog
rsyslog-8.27.0-2.el6.x86_64
[root@localhost yum.repos.d]#

根据官方网文档如果复制以上配置可能解析变量不正确导致安装不成功,此时需要替换第三行中的变量“$ releasever”,$releasever的值表示当前系统的发行版本,可以通过rpm -qi centos-release命令查看,其中的Version:6就是我们系统的版本号;$basearch是我们的系统硬件架构(CPU指令集),使用命令arch得到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost yum.repos.d]# rpm -qi centos-release
Name        : centos-release               Relocations: (not relocatable)
Version     : 6                                 Vendor: CentOS
Release     : 5.el6.centos.11.1             Build Date: Wed 27 Nov 2013 07:53:33 PM CST
Install Date: Thu 27 Apr 2017 06:39:55 PM CST      Build Host: c6b9.bsys.dev.centos.org
Group       : System Environment/Base       Source RPM: centos-release-6-5.el6.centos.11.1.src.rpm
Size        : 32670                            License: GPLv2
Signature   : RSA/SHA1, Wed 27 Nov 2013 09:26:58 PM CST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Summary     : CentOS release file
Description :
CentOS release files
[root@localhost yum.repos.d]# arch
x86_64
[root@localhost yum.repos.d]#

2、配置rsyslog

rsyslog默认只可以传送系统的日志,比如DHCP,cron、kern等,现在要传送一个服务的日志到远端的rsyslog服务器,要使用rsyslog的imfile模块。该模块提供将任何标准文本文件转换为syslog消息的功能。该文件逐行读取,任何读取的行都传递给rsyslog的规则引擎。

官方文档:

http://www.rsyslog.com/doc/v8-stable/configuration/modules/imfile.html

上图为配置样例,各参数可以参考文中的对应模块参数说明,module参考文中Module Parameters说明;input参考文中Input Parameters说明。

1
2
3
4
5
6
[root@localhost yum.repos.d]# cp /etc/rsyslog.conf{,.20170613bak}
[root@localhost yum.repos.d]# vim /etc/rsyslog.conf
module(load="imfile" PollingInterval="10")
input(type="imfile" File="/opt/CalculationUnit/java/sh/logs/bigada.log" Tag="CalculationUnit" Severity="info" Facility="local0" freshStartTail="on" deleteStateOnFileDelete="on")
local0.* @10.10.15.175:514
[root@localhost yum.repos.d]# /etc/init.d/rsyslog restart

module

load="imfile"    加载imfile模块

PollingInterval="10"     轮询文件的频率,单位秒,默认10秒,

input

type="imfile"

File="/opt/CalculationUnit/java/sh/logs/bigada.log"    发送到syslog的文件绝对路径

Tag="CalculationUnit"

Severity="info"

Facility="local0"

freshStartTail="on"    设置为on每次重启rsyslog时只读取最新的数据丢弃旧日志,默认关

deleteStateOnFileDelete="on" 如此文件会重新生成需要开启次参数,例如bigdata.log每天凌晨会重命名为bigdata%YYYY%mm%dd%.log,然后重新生成bigdata.log

local0.* @10.10.15.175:514   定义syslog服务器地址

错误:Permission denied

1
2
3
Jun 27 18:33:46 localhost rsyslogd: imfile warning: directory '/opt/CalculationUnit/java/sh/logs': Permission denied [v8.27.0 try http://www.rsyslog.com/e/2046 ]
Jun 27 18:33:46 localhost rsyslogd:  [origin software="rsyslogd" swVersion="8.27.0" x-pid="19409" x-info="http://www.rsyslog.com"] start
Jun 27 18:33:46 localhost rsyslogd: imfile: error with inotify API, ignoring file '/opt/CalculationUnit/java/sh/logs/bigada.log': Permission denied  [v8.27.0]

检查selinux

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@localhost ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted
[root@localhost ~]# getenforce 
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce 
Permissive
[root@localhost ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted
[root@localhost ~]# vim /etc/sysconfig/selinux 
[root@localhost ~]# /etc/init.d/rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
[root@localhost ~]#

现在可以在syslog服务端数据库里查看到信息

©著作权归作者所有:来自51CTO博客作者justin_peng的原创作品,如需转载,请注明出处,否则将追究法律责任

应用程序的日志通过rsyslog推送到syslog服务器的更多相关文章

  1. 【Nginx】如何格式化日志并推送到远程服务器?看完原来很简单!!

    写在前面 Nginx作为最常用的反向代理和负载均衡服务器,被广泛的应用在众多互联网项目的前置服务中,很多互联网项目直接将Nginx服务器作为整个项目的流量入口.这就使得我们可以通过对Nginx服务器日 ...

  2. JavaCV 采集摄像头和麦克风数据推送到流媒体服务器

    越来越觉得放弃JavaCV FFmpeg native API,直接使用JavaCV二次封装的API开发是很明智的选择,使用JavaCV二次封装的API开发避免了各种内存操作不当引起的crash. 上 ...

  3. 上传文件到服务器端后进一步推送到sftp服务器

    扩展安装 要想sftp服务端发送文件,就需要php脚本具有作为ssh客户端的能力,所以需先为php安装如下扩展 openssl openssl-dev libssh php ssh 扩展 按照下面的命 ...

  4. javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  5. windows环境下,spring boot服务使用docker打包成镜像并推送到云服务器私有仓库

    最近在淘宝上学习springcloud教程,其中有几节课是讲解讲本地springboot服务打包成镜像并推送到云服务器私有仓库,但是教程里面用的事Mac环境,我的是Windows环境,而且课程里面没有 ...

  6. Git push将本地版本库的分支推送到远程服务器上对应的分支

    在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,git 仓库的基本结构. g ...

  7. 将HG版本库推送到Git服务器

    如何将HG版本库推送到Git服务器? 目的 习惯使用HG来进行版本管理,但是GitHub代码统计比Bitbucket要丰富,所以准备主力仓库选用Bitbucket,GitHub作为备用仓库. GitH ...

  8. 微信小程序开发:设置消息推送

    开发设置中,启用并设置消息推送配置后,用户发给小程序的消息以及开发者需要的事件推送,都将被微信转发至该服务器地址中. 不过照着说明去操作,即使按照最简单的明文方式去设置,还是提示Token验证失败.仔 ...

  9. 小程序mdns+udpSocket实现电视推送

    起因:公司以前小程序推送架构为:小程序->接口->后台->socket->机顶盒client->socket->后台->接口->小程序,一系列接口才得到 ...

随机推荐

  1. 一起来做Chrome Extension《一些问题》

    目录 Unchecked runtime.lastError: The message port closed before a response wa received. 使用 eval Conte ...

  2. itchat个人练习 语音与文本图灵测试例程

    背景介绍 itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人. 官方文档参考https://itchat ...

  3. Eclipse 无法编译 或 提示“错误: 找不到或无法加载主类”

    project显示一个红色叹号,通常是.jar文件缺失,在下面找到配置 在libraries中添加add External JARs添加.jar文件

  4. 减少Java垃圾的产生,降低内存使用量

    1.尽量少使用静态的变量,因为它会一直占用内存, 2.尽量少使用String字符串去做拼接,相加.因为String是定长的每次相加都会产生新的临时对象,生成垃圾对象,尽量使用StringBuffer, ...

  5. 【RL系列】从蒙特卡罗方法步入真正的强化学习

    蒙特卡罗方法给我的感觉是和Reinforcement Learning: An Introduction的第二章中Bandit问题的解法比较相似,两者皆是通过大量的实验然后估计每个状态动作的平均收益. ...

  6. Paper Reading - Sequence to Sequence Learning with Neural Networks ( NIPS 2014 )

    Link of the Paper: https://arxiv.org/pdf/1409.3215.pdf Main Points: Encoder-Decoder Model: Input seq ...

  7. 微软职位内部推荐-Principal Development Lead - SharePoint

    微软近期Open的职位: SharePoint is a multi-billion dollar enterprise business that has grown from an on-prem ...

  8. 阿里与ShopRunner达成协议 联手在国内推出服务

    阿里巴巴集团与美国在线零售商 ShopRunner 达成协议,将帮助后者在中国大陆销售商品和履行订单交付产品. ShopRunner 首席战略官菲奥娜·迪亚斯(Fiona Dias)周三接受媒体采访时 ...

  9. 数据时代的的企业管理 记SAP商业同略会

    [PConline 资讯]在2012 SAP中国商业同略会城市论坛深圳站上,自SAP中国的萧洁云总裁和张志琦先生,对SAP中国的战略.SAP的技术战略,以及SAP对于行业趋势分析与媒体进行了沟通,对数 ...

  10. 微信小程序---scroll-view在苹果手机上触底或触顶页面闪动问题

    在项目开发中遇到一个关于scroll-view的的问题,具体如下: 项目要求是横向滚动,由于直接在scroll-view组件设置display:flex不生效,因此考虑直接在scroll-view下增 ...