Joomla-开源天空

首页 本站开源 开源SQL日志监控服务器以及PHP扩展发布


开源SQL日志监控服务器以及PHP扩展发布

E-mail


我们有时会遇到这样的尴尬:

1、发现我们的数据库被更新了,却很难很快定位,是那个页面中那个程序执行了这条语句,尤其是大部分sql语句是很多变量组织起来的,根本无法用grep查找。

2、我们发现某一页面被频繁调用,却无法迅速确定属于DNS轮询中的那个服务器

正因为如此,这次整理了一个几年前写的php mysql扩展的补丁,这个补丁在mysql_query函数内部,发送一条信息给接收服务器,这样所有服务器的数据查询和操作语句都可以发送到统一的服务器上,跟这个日志我们可以迅速解决以上的问题。

但是由于是一个补丁,每次升级php都要改写一遍,所以这次将这部分直接改为一个PHP扩展 dbMonitor ,现在我们大多时候采用的各种PHP框架,都对数据库做了封装,我们就可以在php 框架的合适部分加上这个函数,把sql语句发送出去。

特点:信息发送采用UDP协议

一、信息接收服务器 EventDbMonitor 的安装。

1、安装libevent

wget http://www.monkey.org/~provos/libevent-1.4.4-stable.tar.gz
tar -xvzf libevent-1.4.4-stable.tar.gz
cd libevent-1.4.4-stable
./configure
make&&make install


2、安装log4c

下载 log4c-1.2.1,解压缩
./configure
make&&make install


3、安装 EventDbMonitor

tar -xvzf EventDbMonitor.tgz
cd EventDbMonitor
./configure --prefix=/usr/local/eventdbmonitor
make&&make install


二、运行服务器

要运行Eventdbmonitor ,先要设置 /etc/ld.so.conf 将刚才安装 libevent , log4c的 路径 /usr/local/lib加入,然后运行ldconfig

然后我们到 cd /usr/local/eventdbmonitor/bin目录下

./eventdbmonitor -D 就可以了,这时候可以用pstree看到启动了一个进程

程序参数如下:

  --help 打印帮助信息
  -I, --ip          set listion ip (default:0.0.0.0).
  -D, --daemon      Run as daemon on background.
  -l, --log-level   set the loglevel (0,1,2,3,4,5,6,7: emergency ... debug.
  -L, --log-path    set the path of log file (default:stdout).
  -p, --port        bind the server on this port (default: 8088).
  -v, --version     Show the version.
  -h, --help        Show this page.

注意--log-path 要指定全路径以及日志文件名称,如果不指定这项参数,则会输出在当前目录event.log 文件中。


三、安装PHP扩展 dbMonitor

下载dbMonitor扩展,并解压缩

cd dbMonitor
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make&&make install
编辑php.ini文件,启动扩展

这时候你会看到phpinfo中有dbMonitor的输出信息。


四、使用PHP扩展

<?
dbmonitor_send("127.0.0.1",8088,"sssssssssssssssssssss");
?>

目前只有这个函数,分别是服务器IP地址,端口,你发送的信息。

运行一次试试。

去看看event.log日志文件

Wed Jun 25 13:47:14 2008 [info] 127.0.0.1:57983 [dbmonitor_send]-[/root/xieyingwu/dbmonitor_php5/tests/001.phpt]-[24]-[sssssssssssssssssssss]

格式为

时间 level IP:port [函数]-[文件]-[行数]-[信息]

如果你用awk分析这个日志能很快得到你需要得到的信息。

 开源项目地址:http://code.google.com/p/sqlmonitor/
下载地址:http://code.google.com/p/sqlmonitor/downloads/list

 
User Reviews(2)
 站长太牛了!这个正是我需要的!
作者:LAMP 2008-07-19 10:34
我已经把这个加到我的zend中,并把执行时间和错误代码都写入了,真是太有用了!
 回复:[文章评论]--开源SQL日志监控服务器以及PHP扩展发布
作者:矿泉水 2008-07-22 21:49
试了一下,我的安装有点问题,can\'t load libevent , why ?

发表您的文章评论

您的姓名 (昵称)
标题:
评分: 很差一般较好很好
评论:
验证码:
请输入验证码

» » 登录 »   -   -