STF 2.0 安装测试

22 Feb 2013 Posted in  perl

STF 更新到 2.0 版本,支持使用 redis 队列做任务分发,比原先的 Q4M 容易上手多了;新增了 cluster 概念,虽然目前看没什么用,不过估计以后肯定要在这方面做文章的。 继续阅读……


Puppet 自定义 type 和 function

31 Jan 2013 Posted in  devops

Puppet 除了原有 DSL 以外,还提供了不少接口方便大家开发插件来更简单的完成一些高级功能。 继续阅读……


用 systemtap 调试 kmsg dump

11 Jan 2013 Posted in  monitor

google 之前推出了一个 netoops 的 patch,可以让 linux kernel 在崩溃的时候通过 udp 协议把信息发送到远端主机上。我之前在 CentOS6.2 的内核上做过测试,详细做法可以参见淘宝内核组 wiki 的编译使用淘宝内核netoops 使用指南。唯一有区别的地方就是淘宝使用的 RedHat6 的内核在 CentOS6 上有签名问题,需要自己从 CentOS 官网 ftp 下载 src.rpm 来用 —— 当然如果要自己搞定编译那步,少不了就要自己修改 config-genaric 和 kernel.spc 文件了。 继续阅读……


升级 Puppet 到 3.0 及其他附件简介

10 Jan 2013 Posted in  devops

今天把 puppet 从2.7 升级到了 3.0。同时放弃了之前通过 ENC 定义所有 top scope variable 的做法,改成只定义一个 role 变量,然后在各个 module 里根据 $role 加载不同的module::role ,把变量都写在 module::role 里。 继续阅读……


给 puppet 写 Rspec 测试用例

10 Jan 2013 Posted in  devops

上文提到 github 给 puppet 开发的几个附件。其中有扩展 rspec 的 rubygems 模块叫做 rspec-puppet。官网见:http://rspec-puppet.com 继续阅读……


限制单个进程的带宽

06 Jan 2013 Posted in  linux

限制带宽简直就是系统管理员的永恒话题之一。当然我这里就不讨论端口限速什么的了,百度一下一大把。但如果要的是限制某个特定进程的带宽,事情就有趣多了。 继续阅读……


2012 年个人总结

30 Dec 2012 Posted in 

2012 年还剩下最后 30 个小时。总结一下这一年。 继续阅读……


perl 模块打包加入外部依赖程序

30 Dec 2012 Posted in  perl

Perl 社区并不是所有的东西都发布在 CPAN 上。甚至专门有一个 Module::ThirdParty 模块记录这些非 CPAN 的 perl 项目列表。其中最有名的应该就属写博客的 Movable Type 和做监控的 SmokePing 了。 继续阅读……


给 Sysadmin Advent 快速搭建本地浏览网站

22 Dec 2012 Posted in  perl

一年一度的 advent 集合中,除了 perl 的部分,还有 sysadmin 的也很吸引我等运维的眼球。不过 sysadmin 的一直是发表在blogspot 上,光荣的被 GFW 认证了。虽然说翻墙应该是这年头越来越普及的技能,但是能提供免墙的办法,想来那真真是极好的。 继续阅读……


Dancer::Plugin::Adapter 模块介绍

22 Dec 2012 Posted in  dancer

Dancer 活跃的社区和强大又方便的插件开发导致出现了太多好玩的插件,有位新同学在刚上手的这两周内就已经往 CPAN 提交了四个插件了。 继续阅读……


用 Amcharts 和 ElasticSearch 做日志分析

22 Dec 2012 Posted in  logstash

之前有一篇从 ElasticSearch 官网摘下来的博客《【翻译】用ElasticSearch和Protovis实现数据可视化》。不过一来 Protovis 已经过时,二来 不管是 Protovis 的进化品 D3 还是 Highchart 什么的,我觉得在多图方面都还不如 amcharts 好用。所以在最后依然选择了老牌的 amcharts 完成。 继续阅读……


学习 Dancer::Plugin::Auth::Extensible 模块

21 Dec 2012 Posted in  dancer

首先介绍一下 Dancer::Plugin::Auth::Extensible 模块。这是一个认证验证的框架,之前 Dancer 里这方面的框架是 RBAC ,不过 RBAC 是实现的 auth 对象,然后提供 ->asa->can->roles 等方法。在使用的时候,需要自己在每个 route 里写 if 或者 switch 代码,显得比较繁琐。而 Extensible 模块提供了另一个(或者说是两个)思路。同时借此深入了解 Dancer::PluginDancer::Hook 的用法,外加熟悉 perl 的一些不常见的对象使用。收获良多,不可不记。 继续阅读……


Dancer 框架使用 Text::XSlate 模版的注意事项

19 Dec 2012 Posted in  dancer

Dancer 框架自带有一个 Simple 模版,不过推荐使用 Template 模块作为替代品。不过从性能上来说,TT2 比之前博客里陆续介绍过的 HTML::TemplateText::MicroTemplate 都要差。而这方面最好的,就是 Text::XSlate 模块了。今天尝试将一个 Dancer 应用迁移到 Text::XSlate 上。踩进两个坑,特此记录。 继续阅读……


perl发起HTTP请求时如何设置Host头

16 Dec 2012 Posted in  perl

之所以写这么个内容,是今天突然发现之前有个脚本的效果完全不对。这个脚本是用 Furl 模块发 HTTP 请求。看 POD 的说明,以为这样写是生效的: 继续阅读……


不小心踩进ElasticSearch.pm模块的坑里了

11 Dec 2012 Posted in  logstash

在今天以前,我一直认为perl的ElasticSearch.pm是除了原生java库以外封装最好的。不过今天踩进一个硕大的坑里,多亏 dancer-user 邮件列表里外国友人的帮助,才算爬了出来…… 继续阅读……


用gnuplot绘制直方图

10 Dec 2012 Posted in  monitor

越来越喜欢用 gnuplot 画图了,因为有时候发现自己实在是不会用 Excel…… 继续阅读……


把docx文档转换成markdown格式发布

01 Dec 2012 Posted in 

有些Word文档想搬到博客上来,而博客用的是markdown的格式。最简单的办法是在Word里转成html格式另存为,因为markdown和html是兼容的。不过word直接另存为的html里面带有“海量”的无聊样式,实在不方便之后我们再用vim的工具编辑。所以还是想办法整整。 继续阅读……


用 Tatsumaki 框架写 elasticsearch 界面

22 Nov 2012 Posted in  logstash

Tatsumaki是Plack作者的一个小框架,亮点是很好的利用了psgi.streaming的接口可以async的完成响应。不过因为缺少周边支持,所以除了几个webchat的example,似乎没看到什么应用。笔者之前纯为练手,却用tatsumaki写了个sync响应的小demo,算是展示一下用tatsuamki做普通web应用的基础步骤吧: 继续阅读……


用gnuplot绘制多图

22 Nov 2012 Posted in  monitor

以前已经提过多次gnuplot的简便快捷了。不过大多是最基本的单图上画条线之类的。这次碰到需求,稍微help了一下在一个图上画多个区域。主要需要注意的就是set size的定位点到底从什么角度算,说实话蛮麻烦的。 继续阅读……


syslog实时报警"说出来"

19 Nov 2012 Posted in  monitor

syslog应该是大家最常用的,也基本可以说是最重要的服务器监控信息来源了。 继续阅读……


【翻译】用ElasticSearch和Protovis实现数据可视化

18 Nov 2012 Posted in  logstash

搜索引擎最重要的目的,嗯,不出意料就是搜索。你传给它一个请求,然后它依照相关性返回你一串匹配的结果。我们可以根据自己的内容创造各种请求结构,试验各种不同的分析器,搜索引擎都会努力尝试提供最好的结果。 继续阅读……


【翻译】Coro模块文档

18 Nov 2012 Posted in  perl

名称

Coro —— perl唯一真正的线程 继续阅读……


Chrome的APP简单用法

09 Nov 2012 Posted in  web

学习一下简单的chrome app写法。首先,chrome的ext和web app和packaged app就要分清楚。简单说,ext就是可以出现在地址栏右侧的,app是可以出现在任务栏右侧的。而web app其实就是用json描述了一个url地址,packaged app则是最接近普通桌面程序的,需要完整的带有html/css/js等内容。但同时,因为packaged app可以在关闭chrome浏览器后运行,所以有些浏览器上的API它也用不了。 继续阅读……


【Logstash系列】Outputs::ElasticsearchHTTP自动获取随机node

30 Oct 2012 Posted in  logstash

今天在ES群中和medcl请教了一下index的性能问题。基本上在bulk的基础上,还有几点是可以做的。当然medcl说的是正常的全文索引的场景: 继续阅读……


用systemtap调试文件描述符限制

26 Oct 2012 Posted in  linux

在运行一些非root用户进程的时候,我们都习惯要在前面加上一个ulimit -HSn 65535的命令。而且我们还知道关于文件描述符的限制,不止这一个地方,还有limits.conf,sysctl -w fs.file-max等等。但是到底这些是什么个关系呢?而且,如果是一个已经在运行的程序,有没有可能在更改他的文件描述符限制呢? 继续阅读……