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

简介:

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


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

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


1、配置yum

wKioL1k_Wr_SllGiAADgHZXOFX0716.png

wKiom1k_WsCRgf3NAACoKXgFAc4607.png

wKiom1k_WsGRZ3sAAAEJVShx23w513.png

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


wKioL1k_WsLTIbYAAAB_6q6JGmg596.png

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

wKiom1k_dv-TufZvAAELF2_2OiM310.png

wKiom1k_dwDQcPN7AAGvvvwCeT0307.png

wKioL1k_dwGQJKc2AAEk8V9HFzI944.png

wKioL1k_dwLyKFR7AAF1ddH4HRw147.png

wKiom1k_dwOxWL5aAACxV8l37FU693.png

上图为配置样例,各参数可以参考文中的对应模块参数说明,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服务端数据库里查看到信息

wKiom1k_eiiwKafvAADQrbYnfak416.png





本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1934910,如需转载请自行联系原作者


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
8月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
2287 98
|
8月前
|
运维 监控 安全
EventLog Analyzer:高效的Web服务器日志监控与审计解决方案
ManageEngine EventLog Analyzer是一款企业级Web服务器日志监控与审计工具,支持Apache、IIS、Nginx等主流服务器,实现日志集中管理、实时威胁检测、合规报表生成及可视化分析,助力企业应对安全攻击与合规挑战,提升运维效率。
396 1
|
8月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
943 2
|
8月前
|
JSON 缓存 测试技术
程序出错瞎找?教你写“会说话”的错误日志,秒定位原因
错误日志是排查问题的“导航地图”。本文详解错误三大来源:参数非法、交互故障、逻辑疏漏,并分享写好日志的6大原则——完整、具体、直接、集成经验、格式统一、突出关键字,助你快速定位问题,提升系统可维护性。
540 0
|
11月前
|
运维 监控 安全
Syslog 日志分析与异常检测技巧
系统日志蕴含设备运行关键信息,但分析提取颇具挑战。本文详解从命令行工具(如 Grep、Tail、Awk)到专业软件(如 EventLog Analyzer)的全流程日志分析技巧,助你高效挖掘 Syslog 价值,提升运维与安全响应能力。
615 4
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
339 22
|
11月前
|
监控 安全 Linux
AWK在网络安全中的高效应用:从日志分析到威胁狩猎
本文深入探讨AWK在网络安全中的高效应用,涵盖日志分析、威胁狩猎及应急响应等场景。通过实战技巧,助力安全工程师将日志分析效率提升3倍以上,构建轻量级监控方案。文章详解AWK核心语法与网络安全专用技巧,如时间范围分析、多条件过滤和数据脱敏,并提供性能优化与工具集成方案。掌握AWK,让安全工作事半功倍!
384 0
|
存储 运维 网络协议
【Syslog】Centos下的syslog服务器配置
通过本文的配置指导,您不仅学会了如何安装和配置 `rsyslog`,还掌握了如何在防火墙中开放必要的端口,并验证服务器的配置是否正确。希望这些知识能够帮助您更好地管理和维护您的Linux系统。
2623 15
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
335 3
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
2417 28