用 Mod_Gearman 实现 Nagios 分布式

27 Mar 2013 Posted in  monitor

在 2011 年年底,我曾经连续写过四篇介绍 OMD 的文章。 继续阅读……


logrotate 配置文件强制为 0644 属性

18 Mar 2013 Posted in  linux

在一次包更新后,发现 Nginx 服务器的每晚日志切割不再进行了。找遍了各种地方,最后在一次偶然的ls -l中发现: 继续阅读……


Puppet 自定义 Provider

15 Mar 2013 Posted in  devops

Puppet 默认提供了相当多的资源类型,不过我们还可以更进一步的扩展这个庞大的阵营。比如在 package 类型的资源里,我们看到 puppet 除了系统级别的yum,apt之类意外,还提供了 gem,pip 来管理 ruby 和 python 的 package。那么很自然的,我们就可以进一步扩充 package 来管理 perl 的 package 。只需要新加一个 provider 就可以了。 继续阅读……


极光推送demo

14 Mar 2013 Posted in  monitor

之前已经陆续写过很多种告警的方式。今天再稍微试验一种更新潮一些的 —— 手机推送通知。原先我的想法是移植 HTML5 的 websocket + notification 页面到手机上。但是发现手机上的浏览器都还没有 notification 功能。即便是用 PhoneGap 包装 HTML5 应用,PhoneGap 的 notification API 也不是我想象中的状态栏通知,而是类似 js 的 alert 对话框。 继续阅读……



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应该是大家最常用的,也基本可以说是最重要的服务器监控信息来源了。 继续阅读……