【Logstash系列】使用Redis并自定义Grok匹配

13 Jun 2012 Posted in  logstash

之前提到,用RabbitMQ作为消息队列。但是这个东西实在太过高精尖,不懂erlang不会调优的情况下,很容易挂掉——基本上我这里试验结果跑不了半小时日志传输就断了。所以改用简单易行的redis来干这个活。 继续阅读……


MogileFS安装

10 Jun 2012 Posted in  perl

纯属凑数的更新,写写安装过程而已。没有调优,没有测评,嗯…… 继续阅读……


淘宝TrafficServer的SSD分支测试与介绍

08 Jun 2012 Posted in  CDN

同事介绍说淘宝有关于trafficserver的一个分支支持SSD的。下来试试。下载地址 继续阅读……


用ganglia监控trafficserver

08 Jun 2012 Posted in  monitor

trafficserver提供了几种很不错的性能监控方式。首先是一个模仿cisco的shell工具./bin/traffic_shell——这个工具可以set变量,也可以show变量,另一个是类似squidclient的./bin/traffic_line工具——这个工具同样可以set和show变量,不过这里变量更接近源代码函数名的样子,相当于调用API了。此外还有Perl和Web的其他方式…… 继续阅读……


【Logstash系列】用rabbitmq和elasticsearch搭建分布式日志收集存储系统

01 Jun 2012 Posted in  logstash

上上篇讲到怎样用MRI的ruby在客户端收集日志。今天主要注意服务器端,考虑grok、elastic、web这几个功能在JRuby上才好。所以服务器端可以再开一个JRuby的进程。 继续阅读……


用Spork和Template::Toolkit生成slides胶片展示

01 Jun 2012 Posted in  perl

在不少技术集会上,大家都不再采用ppt而是使用pdf,甚至浏览器,编辑器来显示内容。利用js和css完成slide效果已经越来越花哨。另一个用vim的流派也让人很是惊叹~
那不会css的童鞋怎么办呢?这里有个笨办法。用Spork工具生成html页——反正slide一般内容不多,html代码重复一点也不浪费啥事儿~用template技术刚刚好。 Spork是一个在Sporx基础上构成的工具,可以直接cpan安装,不过默认情况下没有plugin。所以比较好的办法是上git找个带plugin的代码clone。这样页面样式好看点。
比方我用的这个就是Spork作者用的:Spork-pm 继续阅读……


【Logstash系列】使用原版Ruby1.8运行logstash的客户端程序

31 May 2012 Posted in  logstash

在一般情况下,我们实验logstash都是直接用官网上下载的jar包,然后java运行即可。但如果在大规模场景下,这样其实并不是运维的最佳实践: 继续阅读……


用perl和lua在nginx中验证url

25 May 2012 Posted in  nginx

和三年前的博客一样,还是时间加密钥加路径的加密方式。不过这次改用nginx,这样不用重新缓存后面的squid文件了。 先用ngx_lua做: 继续阅读……


【puppet系列】网页展示puppet的客户端报告

22 May 2012 Posted in  devops

上篇说到怎样使用ENC脚本控制puppet的客户端配置,这篇说如何监控和展示客户端运行状态报告。 继续阅读……


【puppet系列】puppet使用ENC定义节点

18 May 2012 Posted in  devops

今天研究puppet dashboard。主要有ENC和reports两个功能。其中ENC功能相当扯淡,因为你在web上点击添加的class/node/group,是没有任何依赖性检查(比如node命名是否符合fqdn,class是否存在)的,随便咋填绝无报错和拒绝!而且也没有提供类似report的导入工具,一旦启用就要完全重新手工输入所有配置……所以无论是从导入角度还是管理角度,自己实现一个靠谱点的ENC都是有必要的。 继续阅读……


【puppet系列】puppet安装/Facter插件和puppet模板编写

10 May 2012 Posted in  devops

使用puppet管理集群配置是个很靠谱的做法。跟其他同类产品相比,第一他的DSL语法很丰富够灵活,第二围绕他的生态圈活跃,资料比较多。 继续阅读……


通过lua统计nginx内部变量数据

08 May 2012 Posted in  nginx

统计nginx的请求数据,一般有几个办法,一个是logrotate,通过access.log计算,这个很详细,但是实时性差一些;一个是Tengine提供的pipe,这个实时性更好,但是管道如果出现堵塞,麻烦就多了~这两种办法,归根结底都是把日志记录在本地(pipe方式如果要长期保留依然要记磁盘)然后由脚本完成计算。今天这里说另一种方法:在nginx内部,随着每次请求完成一些基础的数据统计,然后输出到存储里供长期调用。
代码如下: 继续阅读……


Linux系统调优读书笔记

30 Apr 2012 Posted in  linux

今天在图书馆看书,摘抄一些有意思的细节。 继续阅读……


51CTO博客自动发布脚本

21 Apr 2012 Posted in  perl

#!/bin/env perl
use warnings;
use strict;
use File::Util;
use YAML::Syck;
use Perl6::Say;
use XMLRPC::Lite;
use Data::Dumper;

my $f = File::Util->new;
my @blogs = grep {/\.markdown$/} $f->list_dir('../_posts', '--recurse');
foreach (@blogs) {
    my $yaml = LoadFile($_);
    my $title = $yaml->{'title'};
    my $text = $f->load_file("$_");
    upload($title, $text);
};

sub upload {
    my ($title, $text) = @_;
    my $username = 'username';
    my $password = 'password';
    my $blogid   = '123456';
    my $proxyurl = 'http://blogname.blog.51cto.com/xmlrpc.php';
    my $res = XMLRPC::Lite->proxy($proxyurl)->call('metaWeblog.newPost', $blogid, $username, $password, { title => "$title", description => "$text", categories => ['【创作类型:原创】','IT管理', ]}, 1)->result;
    say "newPost id -- " . $res if $res;
};

目前还有几个问题: 继续阅读……


获取造价百强公司的真实位置

18 Apr 2012 Posted in  perl

很久没更新,没用技术,今天稍微geek一下下。给老婆搜索她行业百强公司的具体地点,看看如果换单位的话是否方便出行~代码如下: 继续阅读……


弹性集群监控中的配置自动生效问题研究

16 Apr 2012 Posted in  monitor

最近跟@画圈圈的星星 聊天,说到nagios在大规模集群运用中一个比较严重的瓶颈:修改配置需要重启进程。
听起来似乎不是什么问题,我个人之前对nagios的追求,也都放在怎么样提供一个及时高效的监控和数据展示上面—-这两个问题在 mod_gearmanpnp4nagios 的协助下已经很给力了。 继续阅读……


PostgreSQL中国用户会DBA2000培训计划北京第二课笔记

18 Mar 2012 Posted in  database

运行维护

vacuum命令

pgsql是multi-version concurrency control的,update和delete的操作并不会真正的修改原版本的内容,而只是做一个标记,最后需要用vacuum命令回收失效版本的位置。
vacuum的主要作用: 继续阅读……


PostgreSQL中国用户会DBA2000培训计划北京第一课笔记

17 Mar 2012 Posted in  database

PostgreSQL及中国用户会简介

主讲人 李元佳 galy 继续阅读……


加强了解nginx的几个问题

10 Mar 2012 Posted in  nginx

被问到一些关于nginx或者说nginx运维相关的问题,记录下来几个值得思考的。这里面有些是自己曾经想到过但是浅浅的了解下就不放在心上的,有些是根本没想过这会成为一个”有意思”的问题的…… 继续阅读……


perl函数返回值引起的误会

04 Mar 2012 Posted in  perl

在微博上偶然看到有位@南唐古韵童鞋发了一条关于perl的: 继续阅读……


ZenLoadBalancer试用(一)

29 Feb 2012 Posted in 

在微博上看到一款叫做Zen LoadBalancer的负载均衡软件更新新闻。于是决定下载来看看,其官网地址是:http://www.zenloadbalancer.com/web/。具体的说,是基于Debian构建的TCP/UDP负载均衡,通过perl的CGI页面完成对负载均衡的管理和监控,包括cluster功能(类似keepalived双机)。对后端real server的监控通过的是nagios-plugins里提供的check_http/check_smtp/check_ftp等一系列脚本完成的。监控通过SNMP完成,展示图像是rrd和GD::Graph。唯一没法知道的就是做负载均衡核心功能的pen这个东东,因为提供的是iso镜像,安装完后就直接有二进制文件在了,不知道这个pen到底是怎么做的…… 继续阅读……


从wordpress博客迁移到github记录

14 Feb 2012 Posted in  perl

因为原先托管wordpress博客的阿里云主机被通管局要求备案,加上通管局早令夕改的浪费我来回的快递费,于是决定搬迁到国外,github page的免费托管就此进入我的视界。 继续阅读……


dotcloud试用

13 Feb 2012 Posted in  cloud

dotcloud是日本的一个PAAS厂商。一年多前因为plack作者的加入推出了对perl的支持。我这几个月没事做,今天想起来试试看。用起来确实蛮舒服的。(注:大部分内容是网上已经有了的,我这只是记录一下自己的步骤) 继续阅读……


OMD系列(四)mod_gearman配置与运行

27 Dec 2011 Posted in  monitor

上一篇提到了shinken,这是一个完全重写过的nagios-like系统,如果想尽可能的在原有nagios知识基础上进行高性能的分布式扩展,那么可以使用mod_gearman模块。这个模块可以从github.com上直接获取使用,地址是: https://github.com/sni/mod_gearman 当然,我们这里依然是直接采用了OMD分发的方式,事实上github上也是建议直接采用omd部署,包括升级也可以直接omd update~~(因为从源代码编译的话,在nagios3.2.2版本之前还需要打个patch才能支持eventhandler,既然都得重编译,直接搞新的得了) 在github的“How it works”和“Common Scenarios”两章节里,详细的用图例说明了mod_gearman的工作原理和各种配置情形。我这里就不重复贴了。大概的说,就是可以把nagios配置检测项中的hosts/services/eventhandlers/hostgroups/servicegroups都单独成队列,然后启动多个worker有针对性的完成队列里的任务,最后也是用单独的result队列回收检测结果。 嗯,从原理上来讲,hosts/services/eventhandlers的队列,属于load balance范围,而hostgroups/servicegroups的队列,属于distribute范围。 (mod_gearman还有send_gearman程序用来load balance接收NSCA分布式监控程序的数据,这里就不说了) 继续阅读……


OMD系列(三)shinken的discovery配置与运行

20 Dec 2011 Posted in  monitor

上篇说到OMD的可以通过omd config选择core,有nagios和shinken两个选项。shinken是一个完全重写的监控系统,但是在外部接口上,又是nagios-like的,甚至可以单纯的只用shinken的WebUI给nagios使。所以OMD作为nagios周边的项目,也就把shinken加入到core选项里了。 不过经过试验发现,虽然omd的rpm是针对centos5.5的,代码中调用的有些命令版本却比较高,比如nmap命令使用了–traceroute选项,查ChangeLog发现是4.76版才加上的,而centos5上面的还是4.11版,所以要重新安装: 继续阅读……