上一篇说到了如何用 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,比如分配多大的内存,内存中多少条日志的时候往硬盘写等等,另外,你还需要一个监控服务,来监控整套系统的正常运转,这些下次再说,就酱。

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

  1. centos 如何用 rsyslog 搭建本地日志服务

    一.问题背景 最近项目遇到一个问题,服务器响应很慢,team中的两个有经验的工程师找了一台服务器分析了一下,发现问题出在磁盘写入过于频繁.这里大概介绍一下背景,我们的服务器上面主要是跑各种PHP接口, ...

  2. RHEL7通过Rsyslog搭建集中日志服务器

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建rsyslog日志服务器的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要查看相 ...

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

    背景 项目开发中,我们或多或少会使用诸如NLog,Log4Net,Kafka+ELK等等日志套件: 基于关注点分离原则,业务开发的时候不应该关注日志具体实现:并且后续能方便切换其他日志套件: 这里先实 ...

  4. 如何搭建本地web服务

    IIS服务是windows自带的web服务,我们可以用来搭建本地网站,供局域网内的用户之前访问,比如办公室的同事之间,一个教室里的同学们. 先说明这是Windows10 x64位 家庭普通版的系统. ...

  5. 快速搭建本地Nuget服务

    一  创建Nuget 服务项目 1.创建一个空白的asp.net web项目,需要.net 4.6以上 2.在Nuget中搜索 nuget.server ,可以看到是由 .Net 基金再维护的,几乎傻 ...

  6. 在CentOS 5.8上搭建PPTP VPN服务

    在天朝上网,vpn已经是必备之物了,我也记录一下搭建vpn服务的方法. 1. 确认内核是否支持MPPE模块MPPE用来支持Microsoft Point to Point Encryption, 包括 ...

  7. 基于docker-compose搭建本地sentry服务

    环境要求: centos 7 Docker 17.05.0+ Compose 1.19.0+ RAM 2400MB docker-compose 安装 ``$ curl -L https://get. ...

  8. Node.js搭建本地web服务(转)

    http://www.cnblogs.com/wangfupeng1988/p/4143996.html https://github.com/finderL/webserver

  9. rsyslog日志服务的配置文件分析

    基于rsyslog日志服务的日志 在不同的LINUX系统,实现的软件略有不同. syslog,rsyslog,syslog-ng,用于实现系统日志的管理. [root@asianux4 ~]# rpm ...

随机推荐

  1. 【转】 c++拷贝构造函数(深拷贝,浅拷贝)详解

     c++拷贝构造函数(深拷贝,浅拷贝)详解 2013-11-05 20:30:29 分类: C/C++ 原文地址:http://blog.chinaunix.net/uid-28977986-id-3 ...

  2. CentOS平台下为Python添加MongoDB支持PyMongo

    下载PyMongo [root@leezhen ~]# wget https://pypi.python.org/packages/source/p/pymongo/pymongo-2.6.3.tar ...

  3. phpstorm配置取消掉63342

    http://ask.csdn.net/questions/171665

  4. CentOS安装libpcap

    1.安装GCC:  yum -y install gcc-c++ 2.安装flex:   yum -y install flex   没有flex,直接安装libpcap会提示"Your o ...

  5. @Html.TextBox 的使用

    @Html.TextBox( }); //限制 text 的最大输入字符数为 10个 @Html.TextBox("users","",new {@class= ...

  6. Kakfa揭秘 Day7 Producer源码解密

    Kakfa揭秘 Day7 Producer源码解密 今天我们来研究下Producer.Producer的主要作用就是向Kafka的brokers发送数据.从思考角度,为了简化思考过程,可以简化为一个单 ...

  7. 支持异步通知的globalfifo平台设备驱动程序及其测试代码

    驱动: #include <linux/module.h> #include <linux/types.h> #include <linux/fs.h> #incl ...

  8. C++ 关联容器详解——从内部结构到应用

    关联容器不同于顺序容器的是:顺序容器底层用数组实现,为线性结构:关联容器在实现中,用到的非线性存储方式: 顺序容器是通过元素在容器中的位置顺序存储和访问元素,而关联容器是通过键(key)存储和读取元素 ...

  9. u3d 2d序列动画代码

    using UnityEngine; using System.Collections; public class AniSprite : MonoBehaviour { private float ...

  10. jQuery uploadify-v3.1 批量上传

    引用: <link href="/UI.Web.CRM.Main/jQuery.Uploadify/uploadify.css" rel="stylesheet&q ...