您的位置:首页 > 其它

任意文本日志配置远程Syslog采集

2016-06-06 10:33 465 查看
基本上所有的操作系统、应用程序产生的日志,都是记录在本地文件内,因此如果能解决任意文本的日志转syslog发送,几乎解决了所有常规和非常规的日志发送问题。

本文将指引你:如何对任意文本内的日志进行采集,并通过Syslog协议,自动实时的发送到远程的集中日志分析中心,便于集中式的日志存储和管理。

Linux环境

Windows环境

Linux环境下的配置

以下内容适用于在Linux环境下,对任意的文本日志内容进行读取,并实时发送到远程的Syslog服务器。

第一步:初始化日志采集环境

先确保系统中的/var/spool/rsyslog 目录已存在:

mkdir -v /var/spool/rsyslog

if [ "$(grep Ubuntu /etc/issue)" != "" ]; then

 chown -R syslog:adm /var/spool/rsyslog

fi

第二步:创建Apahce日志文件采集配置

新建Rsyslog的子配置文件,他通常在/etc/rsyslog.d下,需要/etc/rsyslog.conf去包含这个目录下的子配置文件:

vim /etc/rsyslog.d/file-biglog.conf

复制以下内容到apache-biglog.conf,注意注释部分的修改:

$ModLoad imfile

$InputFilePollInterval 10

$PrivDropToGroup adm

$WorkDirectory /var/spool/rsyslog

## 文本日志文件路径,根据实际情况修改:

$InputFileName /var/log/message.txt

$InputFileTag APPNAME1

$InputFileStateFile stat-APPNAME1 ##当有多个input时,该名称必需唯一

$InputFileSeverity info

$InputFilePersistStateInterval 25000

$InputRunFileMonitor

## 定义日志格式模板:

$template BiglogFormatFile,”%msg%\n”

## 注意syslog日志服务器接收地址,根据实际情况修改:

if $programname == ‘APPNAME1′ then @10.x.x.x:514;BiglogFormatFile

if $programname == ‘APPNAME1′ then ~

注:通过Rsyslog配置日志接收端的时候,如上示例@10.x.x.x:514,用于指定接收日志的服务器的协议、IP地址和端口号。使用@代表走UDP协议,使用@@代表走TCP协议,冒号后面的514代表接收端口。

第三步:重启Rsyslog服务,日志采集开始工作

service rsyslog restart

此时可以通过观察系统中的Rsyslog日志,确定是否正常工作。

cat /var/log/messages |grep rsyslog
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文本日志 syslog