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,比如分配多大的内存,内存中多少条日志的时候往硬盘写等等,另外,你还需要一个监控服务,来监控整套系统的正常运转,这些下次再说,就酱。
centos 如何用 rsyslog 搭建本地日志服务(续1: omprog模块与php deamon的配合使用)的更多相关文章
- centos 如何用 rsyslog 搭建本地日志服务
一.问题背景 最近项目遇到一个问题,服务器响应很慢,team中的两个有经验的工程师找了一台服务器分析了一下,发现问题出在磁盘写入过于频繁.这里大概介绍一下背景,我们的服务器上面主要是跑各种PHP接口, ...
- RHEL7通过Rsyslog搭建集中日志服务器
说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建rsyslog日志服务器的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要查看相 ...
- 基于Log4Net本地日志服务简单实现
背景 项目开发中,我们或多或少会使用诸如NLog,Log4Net,Kafka+ELK等等日志套件: 基于关注点分离原则,业务开发的时候不应该关注日志具体实现:并且后续能方便切换其他日志套件: 这里先实 ...
- 如何搭建本地web服务
IIS服务是windows自带的web服务,我们可以用来搭建本地网站,供局域网内的用户之前访问,比如办公室的同事之间,一个教室里的同学们. 先说明这是Windows10 x64位 家庭普通版的系统. ...
- 快速搭建本地Nuget服务
一 创建Nuget 服务项目 1.创建一个空白的asp.net web项目,需要.net 4.6以上 2.在Nuget中搜索 nuget.server ,可以看到是由 .Net 基金再维护的,几乎傻 ...
- 在CentOS 5.8上搭建PPTP VPN服务
在天朝上网,vpn已经是必备之物了,我也记录一下搭建vpn服务的方法. 1. 确认内核是否支持MPPE模块MPPE用来支持Microsoft Point to Point Encryption, 包括 ...
- 基于docker-compose搭建本地sentry服务
环境要求: centos 7 Docker 17.05.0+ Compose 1.19.0+ RAM 2400MB docker-compose 安装 ``$ curl -L https://get. ...
- Node.js搭建本地web服务(转)
http://www.cnblogs.com/wangfupeng1988/p/4143996.html https://github.com/finderL/webserver
- rsyslog日志服务的配置文件分析
基于rsyslog日志服务的日志 在不同的LINUX系统,实现的软件略有不同. syslog,rsyslog,syslog-ng,用于实现系统日志的管理. [root@asianux4 ~]# rpm ...
随机推荐
- ASP.NET Web API标准的“管道式”设计
详见:http://www.cnblogs.com/artech/p/asp-net-web-api-pipeline.html http://www.codeproject.com/Articles ...
- javascript的setTimeout以及setInterval休眠问题。
前端码农们在做项目中时候,必定不可少的需要做到轮播效果.但是有些特殊的需求,比如: 需要做到第一个容器内容轮播滚动之后,第二个容器内部再轮播滚动,再第三个容器内容轮播滚动. 这时候我的一开始的思路是: ...
- Spark Streaming揭秘 Day34 解析UI监听模式
Spark Streaming揭秘 Day34 解析UI监听模式 今天分享下SparkStreaming中的UI部分,和所有的UI系统一样,SparkStreaming中的UI系统使用的是监听器模式. ...
- numpy简单入门
声明:本文大量参考https://www.dataquest.io/mission/6/getting-started-with-numpy(建议阅读原文) 读取文件 有一个名为world_alc ...
- POJ 1001 解题报告 高精度大整数乘法模版
题目是POJ1001 Exponentiation 虽然是小数的幂 最终还是转化为大整数的乘法 这道题要考虑的边界情况比较多 做这道题的时候,我分析了 网上的两个解题报告,发现都有错误,说明OJ对于 ...
- web.xml中JSP配置及 EL表达式
web.xml 中JSP配置.servlet配置 及 EL表达式 [摘要] servlet 基本配置 <servlet> <servlet-name>LoginServlet& ...
- 详解Javascript中的Array对象
基础介绍 创建数组 和Object对象一样,创建Array也有2种方式:构造函数.字面量法. 构造函数创建 使用构造函数的方式可以通过new关键字来声明,如下所示: 12 var arr = new ...
- 【cheerio】nodejs的抓取页面模块
http://baike.baidu.com/link?url=8V1CZsEzNE05ujOzISquom_pvFj16sWu1rRb8js11pmd9HNq7ePW_aKfG9oyXj6Txuu5 ...
- js高级技巧笔记(一)
安全的类型检测 Js的类型检测机制并非完全可靠,发生错误否定及错误肯定的情况也不少: 在safari 在对正则表达式应用typeof操作符时返回"function",因此很难确定某 ...
- Nginx 的启动、停止、平滑重启、信号控制和平滑升级
Nginx 的启动 假设 nginx 安装在 /usr/local/nginx 目录中,那么启动 nginx 的命令就是: [root@localhost ~]# /usr/local ...