centos 如何用 rsyslog 搭建本地日志服务
一、问题背景
最近项目遇到一个问题,服务器响应很慢,team中的两个有经验的工程师找了一台服务器分析了一下,发现问题出在磁盘写入过于频繁。这里大概介绍一下背景,我们的服务器上面主要是跑各种PHP接口,每个接口都有独立的日志,由于磁盘只有一个磁头(这显然谁都知道,ORZ...),而日志又是独立的,即一次请求过来就需要写一次日志,由于日志保存的位置不同,也就是一次请求磁头就需要移动一个位置,机械硬盘大家懂得,这样显然就会导致了日志写入的速度很慢,从而拖慢了服务器的响应时间。
二、解决思路
显然问题就出在日志的频繁写入上,试想如果能有一个专门的日志服务来接收日志,而不是每次都直接往硬盘中写入。在此基础上再加入一些缓存机制,写日志的问题肯定会好很多。OK,问题的思路有了,但是如何来搭这套服务呢?有没有一些直接可用的解决方案呢?显然是有的,毕竟我肯定不是第一个遇到这个问题的人。team中的老司机们说 rsyslog 应该能够满足这个要求,而且团队目前也有在用这个服务,可以了解一下。
三、解决问题的步骤
1、什么是rsyslog,它能干什么:
上面说到了 rsyslog 这个工具, rsyslog 是什么呢?简单说 rsyslog 其实是一个集中日志服务器,它可以支持 tcp、udp或者本地文件等当时的输入,然后支持把日志写入到 本地、数据库等等,如下图所示:

什么?要再具体的说下,请参考官网: http://www.rsyslog.com/
2、如何安装 rsyslog
centos下安装rsyslog灰常简单,如你所见:
$ yum install rsyslog
3、配置 rsyslog,官网有配置的向导,链接: http://www.rsyslog.com/rsyslog-configuration-builder/,这个做得非常人性化。上面说到 rsyslog 可以支持 TCP、UDP等方式的接收日志,这里不妨先用TCP的方式测试一下,然后把日志写到本地一个tmp 目录。生成的配置如下,然后把这个配置放到 /etc/rsyslog.conf 下面。
# 加载tcp模块
module(load="imtcp")
# tcp方式接收日志,端口号为 514
input(type="imtcp"
port="514")
# 接收日志后,写入到本地/data1/tmp/testlog 中
action(type="omfile"
File="/data1/tmp/testlog")
怎么样,看上去是不是非常简洁,是的,就是这么简单!
4、启动rsyslog服务,这一步也灰常简单,如下:
$ service rsyslog start
然后你可以用 ps 命令看下服务是否启动了,如下:
$ ps -aux | grep rsyslog
如果看到类似下图所示的情况,那么服务就起来了:

5、测试一下服务
写一个简单的php代码,如下:
<?php $errno = '';
$errstr = '';
$fp = stream_socket_client("tcp://xx.xx.xx.xx:514", $errno, $errstr, 30); // 这里需要替换成你的ip地址或者域名
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fwrite($fp, "test message !\n");
fclose($fp);
}
然后运行一下这段代码,可以在 /data1/tmp/testlog (上面指定的接收文件)日志中找到如下一条记录,那么服务就正式搭好了。
aaarticlea/png;base64,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" alt="" />
今天暂时就写到这里,未完待续!
centos 如何用 rsyslog 搭建本地日志服务的更多相关文章
- centos 如何用 rsyslog 搭建本地日志服务(续1: omprog模块与php deamon的配合使用)
上一篇说到了如何用 rsyslog 搭建本地的日志服务,地址在这里,没有看的童鞋可以先瞅一眼 : http://www.cnblogs.com/smallrookie/p/5677004.html 显 ...
- 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 ...
随机推荐
- flex 弹性盒子模型一些案例.html
Flexbox是布局模块,而不是一个简单的属性,它包含父元素和子元素的属性. Flex元素是可以让你的布局根据浏览器的大小变化进行自动伸缩. 自适应导航 <ul class="navi ...
- mac下安装pcntl
Now you need to find out what version of PHP is installed on OSX $ php -vPHP 5.3.10 with Suhosin-Pa ...
- 在windows服务器中,将MongoDB服务化。
将mongodb在windows中服务化,就是将其注册成一个服务组件,并可以设置成,手动/自动 启动. 一般的我们都会在command窗口运行如下: d:\mongodb\bin>mongod ...
- mysql中limit的用法实例解析
mysql中limit的用法解析. 在mysql中,select * from table limit m,n.其中m是指记录开始的index,从0开始,n是指从第m条开始,取n条. 例如: mysq ...
- 处理部分WordPress核心代码或功能,让你的网站更快
处理部分WordPress核心代码或功能,让你的网站更快 http://www.wpdaxue.com/speed-up-wordpress.html
- Linux学习系列之Linux入门(一)linux安装与入门
第一篇:安装并配置Linux开发环境 一.安装linux: 主要安装Linux的发行版,到目前为之,主要的发行版有: 比较常用的是Ubuntu.redhat和centOS,主要的安装方法详细: Ubu ...
- ISBN
问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位 ...
- (转)Qt Model/View 学习笔记 (二)——Qt Model/View模式举例
Qt Model/View模式举例 Qt提供了两个标准的models:QStandardItemModel和QDirModel.QStandardItemModel是一个多用途的model,可用于表示 ...
- 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR)
1 HDR基本概念 高动态范围光照(High Dynamic Range Imaging,简称HDRI或HDR),是一种表达超过了显示器所能表现的亮度范围的图像映射技术,已成为目前游戏应用不可或缺的 ...
- poj 1094 Sorting It All Out (拓扑排序)
http://poj.org/problem?id=1094 Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Su ...