centos 如何用 rsyslog 搭建本地日志服务(续1: omprog模块与php deamon的配合使用)

  上一篇说到了如何用 rsyslog 搭建本地的日志服务,地址在这里,没有看的童鞋可以先瞅一眼 :

  http://www.cnblogs.com/smallrookie/p/5677004.html

  显然这个是比较简单粗暴的,如果没有做过什么特殊的输出配置,所有的输出都会写到一个文件里面,当然 rsyslog 是支持关键词匹配,然后把日志定向的写到你想写的文件里面的,如果你只有数量比较小的接口并且一段时间内,接口的数量不会发生变更,那么使用这种方式是OK的。不过实际情况是,我们通常要处理的是大量的接口(几十,上百),如果每个接口都需要去单独写一个配置的话就非常不爽了,这也会一定程度上影响 rsyslog 的执行效率。另外,新增一个接口,你就需要同步的去变更 rsyslog 的配置,如果忘记了就悲催了,日志可能就没有记上。

  那么,如果来解决多接口日志单独归档的问题呢? rsyslog 还提供了一种更加灵活的处理日志的方式,也就是我们今天要说的 rsyslog 的 omprog 模块,该模块提供了一个功能为可以把输出已unix标准输入的形式给到外部应用程序,从而提供更好的灵活性以及更高的处理效率。关于模块更加详细的介绍,请参考:

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

  接下来,介绍一下如何利用php的后台处理程序和 omprog 模块实现日志的归档。

  •   rsyslog.conf 的配置的变更

    如上图所示,你需要加载 omprog 模块,然后再 aciton 中将输出 type 配置为 omprog ,Binary是你需要执行的二进制程序,这里以PHP为例,其它语言比如python等程序也是支持的。

    配置完成后需要重启 rsyslog 服务如下:

    service  rsyslog  restart
    
  • php后台处理程序
    上面说到,omprog 模块会把输出以标准输入的形式给到应用程序,已php为例,可以按照如下方式写:

    <?php
    
    while ( !feof(STDIN)) ) {
        // ...
    }
    
    ?>
    

    逻辑写完后,启动php 后台处理程序,在php程序中根据一定的格式实现日志归档,这样一个日志自动归档服务就基本搭建起来了。不过要让这套系统正常的运转,到这里还是不够的,你还需要更加详细的配置rsyslog.conf,比如分配多大的内存,内存中多少条日志的时候往硬盘写等等,另外,你还需要一个监控服务,来监控整套系统的正常运转,这些下次再说,就酱。

时间: 2024-10-07 00:29:41

centos 如何用 rsyslog 搭建本地日志服务(续1: omprog模块与php deamon的配合使用)的相关文章

Linux通过Rsyslog搭建集中日志服务器

(一)Rsyslog简介ryslog 是一个快速处理收集系统日志的程序,提供了高性能.安全功能和模块化设计.rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地.rsyslog是一个开源工具,被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息.rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器.rsyslog的另外一个用法,就是可以配

基于Log4Net本地日志服务简单实现

背景 项目开发中,我们或多或少会使用诸如NLog,Log4Net,Kafka+ELK等等日志套件: 基于关注点分离原则,业务开发的时候不应该关注日志具体实现:并且后续能方便切换其他日志套件: 这里先实现基于文件的日志服务,在下一篇将实现基于Kafka+ELK: 具体源码:MasterChief Nuget:Install-Package MasterChief.DotNet.Core.Log 欢迎Star,欢迎Issues: 日志接口定义 /// <summary> /// 日志记录接口 //

使用openssl和nodejs搭建本地https服务

本地开发有时会遇到必须使用https服务的情况,这里介绍一下使用openssl自签名证书,并使用nodejs开启https服务. 1. 安装openssl 在http://slproweb.com/products/Win32OpenSSL.html可以找到openssl安装包,可以根据介绍下载对应版本安装,安装完成后将安装位置bin目录的文件路径添加到系统环境变量,此时就可以在全局使用openssl指令,打开命令行输入`openssl -version`查看openssl是否正确安装.安装完成

Centos 7.3 简便搭建EFK日志分析

EFK 不是一个软件,而是一套解决方案.EFK 是三个开源软件的缩写,Elasticsearch,FileBeat,Kibana.其中 ELasticsearch 负责日志分析和存储,FileBeat 负责日志收集,Kibana 负责界面展示.它们之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志分析系统解决方案.EFK 和 ELK 只有一个区别, 收集日志的组件由 Logstash 替换成了 FileBeat,因为 Filebeat 相对于 Logstash 来说有2

在CentOS 5.8上搭建PPTP VPN服务

在天朝上网,vpn已经是必备之物了,我也记录一下搭建vpn服务的方法. 1. 确认内核是否支持MPPE模块MPPE用来支持Microsoft Point to Point Encryption, 包括微软和Linux桌面都支持MPPE modprobe ppp-compress-18 && echo ok 2. 安装ppp软件包pptp是使用ppp协议对数据进行封装的,然后将ppp数据帧封装在ip数据报文中. yum install ppp 3. 安装pptp软件包下载32位rpm包: w

搭建本地node服务

1,安装好nodejs 2,运行npm install anywhere -g 安装anywhere 3,从命令终端进入你的项目目录,运行anywhere youpoint  例如:anywhere 8860 至此,你的服务已运行起来,不要关掉命令窗口,关掉命令窗口,就等于关掉了你的服务 在浏览器输入 http:yourip:yourpoint/yourhtml.html,运行你的项目,例如:http:111.11.1.11:9000/index.html

RHEL6.4 搭建 rsyslog 日志服务 rsyslog+mysql+loganalyzer

软件提供的功能: 1.rsyslog是RHEL或centos系统6.x版本的日志服务,代替以前系统的syslog服务.在这个架构中rsyslog服务主要是收集日志的功能,把日志归类,写入数据库. 2.mysql是简单的数据库,在这个架构中主要任务是存放收集过来的日志信息,以便提供给loganalyzer软件来显示出来. 3.loganalyzer是一个日志分析工具,比较简单.在这个架构中主要是从mysql数据库中提取数据依条形和图形直观的显示出来,提供筛选.搜索.归类.统计等功能. 4.evts

搭建中央日志服务器

--远程日志--将本机的日志,保留在其他的远程服务器上 实验环境: logserver :192.168.1.249 logclient : 192.168.1.20 实验过程: logserver的配置: [[email protected] ~]# cp /etc/rsyslog.conf /etc/rsyslog.conf.bak [[email protected] ~]# vim /etc/rsyslog.conf    --修改配置 $UDPServerRun 514        

教你phpstudy如何搭建本地多站点

经常做多个网站同时开发,如何才能在本地能使部署多个站点,今天就来分享一下如何用PHPstudy搭建本地多站点. 点击上图中的 其它选项菜单 ,就会弹出下面的对话框,然后点击 站点域名管理 然后在 网站域名的编辑框里填写你想要的任意域名, 这里我就填写为www.test.com (注意这个域名一定不要填写你经常上网要用到的域名,不然到时当你想访 问时,会访问到你本地搭建的网站,谨记), 网站目录编辑框你可以选择自己电脑任意一个目录,不过路径里不要包含汉字,我这里为 D:\php\www\testf