在os x上安装smokeping
Toc
  1. 安装rrdtool
  2. 安装smokeping
  3. 安装mod_fastcgi(apache modules)
  4. 修改apache配置

安装rrdtool

在mac上我使用port来安装第三方软件,为了方便,还是使用port来安装rrdtool。

sudo port install rrdtool

macport会安装相应的依赖,比如一些perl的模块RRD等。
但smokeping改为编译源代码来安装。
因为port会额外安装一个apache2,版本还是跟系统自带的apache一样,太不智能了,不想维护2个apache。


安装smokeping

下载smokeping的tar包,解压,编译、安装到/usr/local/smokeping

./configure --prefix=/usr/local/smokeping
// 根据configure执行结果,会提示执行脚本`build-perl-modules.sh`来下载需要perl模块
./build-perl-modules.sh /usr/local/smokeping/thirdparty
make
sudo make install

把smokeping目录设置为apache可读可写:

sudo chown -R _www:_www /usr/local/smokeping/

测试配置文件,根据报错来修改配置config文件

/usr/local/smokeping/bin/smokeping --check


安装mod_fastcgi(apache modules)

参考: FastCGI的安装(Mac)与简单示例

tar zxvf mod_fastcgi-2.4.6.tar.gz  
cd mod_fastcgi-2.4.6  
cp Makefile.AP2 Makefile  
  //修改Makefile中,不同的系统不一样,换成你apache库的所在目录  
  top_dir = /usr/share/httpd  
  //在Makefile中增加一项:  
  CFLAGS = -arch x86_64  
//运行  
make  
make install

其中编译出错,找不到cc:

popozhu ~/Downloads/mod_fastcgi-2.4.6$ make
/usr/share/apr-1/build-1/libtool --silent --mode=compile /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc -I/usr/local/include    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK    -I/usr/include/apache2 -I. -I/usr/include/apr-1  -c mod_fastcgi.c && touch mod_fastcgi.slo
env: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc: No such file or directory
make: *** [mod_fastcgi.slo] Error 1

做一个链接,搞定:

$ sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/  
/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain

这就把mod_fastcgi.so安装到/usr/libexec/apache2目录下.


修改apache配置

在配置文件/private/etc/apache2/httpd.conf中,增加对fastcgi模块的加载:

LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so

添加smokeping的根目录,在目录中启用fcgi,同时做一个alias:

<Directory "/usr/local/smokeping/htdocs/">
    Allow from all
    AllowOverride None
    AddHandler cgi-script cgi 
    AddHandler fastcgi-script .fcgi
    Options ExecCGI
</Directory>
Alias /smokeping "/usr/local/smokeping/htdocs/"
Alias /cache "/usr/local/smokeping/cache/"

重启apache:

popozhu /private/etc/apache2$ sudo apachectl restart
popozhu /private/etc/apache2$ ps -ef | grep httpd
    0 30702     1   0  2:32下午 ??         0:00.18 /usr/sbin/httpd -D FOREGROUND
   70 30704 30702   0  2:32下午 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND
  501 30706 42154   0  2:32下午 ttys001    0:00.00 grep httpd

使用smokeping的fcgi:

sudo cp /usr/local/smokeping/htdocs/smokeping.fcgi.dist /usr/local/smokeping/htdocs/smokeping.fcgi

在浏览器中查看smokeping的前端:

http://127.0.0.1/smokeping/smokeping.fcgi

启动后台fping程序:

sudo /usr/local/smokeping/bin/smokeping



– EOF –

Categories: in_lib
Tags: smokeping