应用程序的日志通过rsyslog推送到syslog服务器

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翻译来的)

[[email protected] yum.repos.d]# pwd
/etc/yum.repos.d
[[email protected] yum.repos.d]# ls
dvd.repo  packagekit-media.repo  rhel-source.repo  rsyslog.repo
[[email protected] 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
[[email protected] yum.repos.d]# rpm -qa|grep -i rsyslog
rsyslog-5.8.10-10.el6_6.x86_64
[[email protected] yum.repos.d]# yum -y install rsyslog
[[email protected] yum.repos.d]# rpm -qa|grep -i rsyslog
rsyslog-8.27.0-2.el6.x86_64
[[email protected] yum.repos.d]#

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

[[email protected] 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
[[email protected] yum.repos.d]# arch
x86_64
[[email protected] 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说明。

[[email protected] yum.repos.d]# cp /etc/rsyslog.conf{,.20170613bak}
[[email protected] 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
[[email protected] 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服务器地址

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

时间: 2024-10-23 04:17:50

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

制作苹果推送通知APNS服务器证书文件

1.准备证书申请文件 打开苹果电脑实用工具里的钥匙串访问程序 选择钥匙串访问—>证书助理—>从证书颁发机构申请证书 输入邮件地址,常用名词随便命名,在这里命名为APNS 选择存储到磁盘,将生成的APNS.certSigningRequest文件保存到本地磁盘 此时,在钥匙串访问程序的密钥(Keys)分类里应该可以找到APNS的专用密钥,右键点击导出“APNS”将专用密钥导出为p12文件,保存时会提示输入口令,输入后生成APNS.p12文件 2.准备App ID和SSL证书 登陆苹果开发者门户,

将播控(播发)的流媒体推送到流媒体服务器平台的设置案例:

将播控的流媒体推送到流媒体服务器的设置案例: 1.登陆Wowza媒体服务器的管理地址:http://172.22.8.240:8088/enginemanager/login.htm  用户:admin 密码:admin 2.进入Server目录-->点击Stream Files-->Add Stream File-->输入流的名字及被推送到的流媒体服务的IP地址,添加返回: 3.返回后点击这个流的按键(connect to this stream)进入设置,选择Application

使用inotify和rsync进行nfs服务器共享目录实时推送到backup服务器

1.1 查看环境 1.1.1 backup服务端的环境 [[email protected] nfsbackup]# uname -a Linux backup 2.6.32-696.el6.x86_64 #1 SMP Tue Mar21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux iptables的状态 [[email protected] nfsbackup]# /etc/init.d/iptables status iptables:

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

扩展安装 要想sftp服务端发送文件,就需要php脚本具有作为ssh客户端的能力,所以需先为php安装如下扩展 openssl openssl-dev libssh php ssh 扩展 按照下面的命令进行安装 1 rpm -qa | grep openssl 2 wget http://www.libssh2.org/download/libssh2-1.6.0.tar.gz 3 tar zxvf llibssh2-1.6.0.tar.gz 4 cd libssh2-1.6.0 5 ./con

Gradle打包后自动推送到FTP服务器

gradle打包后自动推送到FTP服务器 1.使用Gradle生成APK Android Studio项目的根目录下有一个gradle.properties文件,专门用来配置全局键值对数据:在该文件中添加如下内容: KEY_PATH = D:/KeyStorePath/keystore/keystore.jks KEY_PASS = pwdkeystore ALIAS_NAME = keyAlias ALIAS_PASS = pwdkeyAlias 编辑app/build.gradle文件,在a

已经有一个项目的源码如何将其推送到远程服务器

---恢复内容开始--- 1.首先在远程服务器上创建一个仓库 2.在本地创建一个文件夹用于存放项目的源代码. 3.打开git bash环境 执行git init命令 4. 使用 git rmote add origin +项目的ssh地址例如: git remote add origin [email protected]:pongxshop/admin-fe.git 将本地的文件夹与远程服务器的仓库对应上 5.将要提交的代码复制到当前文件夹6.使用git add . 和git commit -

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

开发设置中,启用并设置消息推送配置后,用户发给小程序的消息以及开发者需要的事件推送,都将被微信转发至该服务器地址中. 不过照着说明去操作,即使按照最简单的明文方式去设置,还是提示Token验证失败.仔细研究说明,其实服务器验证过程很简单,用Get发来一个连接,然后在自己的页面中去检验,不想做也可以先不做,直接返回echostr即可.关键在,怎么返回,开始我还以为必须要按照xml或者json返回,试了半天,其实很简单,清空所有其他输出,直接返回echostr即可. Response.Clear()

ios (推送之远程推送)升级成ios8系统之后有些程序接收不到远程推送

维护一个程序,当手机升级到ios8之后就不能接收到远程推送,显示注册失败,查了下资料,原来是没有获取用户许可,加了个方法试了下,ok if ([[[UIDevice currentDevice]systemVersion ]integerValue] >= 8) { UIUserNotificationSettings*setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUser

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

起因:公司以前小程序推送架构为:小程序->接口->后台->socket->机顶盒client->socket->后台->接口->小程序,一系列接口才得到推送成功或者失败,推送周期时间长,受网速影响较大,有时候各省份组播网.dns.网络抖动之类的还会导致推送失败. 解决思路:小程序最近出的udpSocket(只能IDE调试,真机调试需上线),通过小程序和机顶盒client建立局域网通讯,不受外部因素影响,推送效率极大提高,不过不知道机顶盒的IP,需要通过mdn