在 2011 年年底,我曾经连续写过四篇介绍 OMD 的文章。 继续阅读……
18 Mar 2013 Posted in linux
在一次包更新后,发现 Nginx 服务器的每晚日志切割不再进行了。找遍了各种地方,最后在一次偶然的ls -l
中发现:
继续阅读……
15 Mar 2013 Posted in devops
Puppet 默认提供了相当多的资源类型,不过我们还可以更进一步的扩展这个庞大的阵营。比如在 package
类型的资源里,我们看到 puppet 除了系统级别的yum
,apt
之类意外,还提供了 gem
,pip
来管理 ruby 和 python 的 package。那么很自然的,我们就可以进一步扩充 package
来管理 perl 的 package 。只需要新加一个 provider 就可以了。
继续阅读……
14 Mar 2013 Posted in monitor
之前已经陆续写过很多种告警的方式。今天再稍微试验一种更新潮一些的 —— 手机推送通知。原先我的想法是移植 HTML5 的 websocket + notification 页面到手机上。但是发现手机上的浏览器都还没有 notification 功能。即便是用 PhoneGap 包装 HTML5 应用,PhoneGap 的 notification API 也不是我想象中的状态栏通知,而是类似 js 的 alert 对话框。 继续阅读……
25 Feb 2013 Posted in testing
22 Feb 2013 Posted in perl
STF 更新到 2.0 版本,支持使用 redis 队列做任务分发,比原先的 Q4M 容易上手多了;新增了 cluster 概念,虽然目前看没什么用,不过估计以后肯定要在这方面做文章的。 继续阅读……
31 Jan 2013 Posted in devops
Puppet 除了原有 DSL 以外,还提供了不少接口方便大家开发插件来更简单的完成一些高级功能。 继续阅读……
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 文件了。 继续阅读……
10 Jan 2013 Posted in devops
今天把 puppet 从2.7 升级到了 3.0。同时放弃了之前通过 ENC 定义所有 top scope variable 的做法,改成只定义一个 role 变量,然后在各个 module 里根据 $role 加载不同的module::role ,把变量都写在 module::role 里。 继续阅读……
10 Jan 2013 Posted in devops
上文提到 github 给 puppet 开发的几个附件。其中有扩展 rspec 的 rubygems 模块叫做 rspec-puppet。官网见:http://rspec-puppet.com 继续阅读……
06 Jan 2013 Posted in linux
限制带宽简直就是系统管理员的永恒话题之一。当然我这里就不讨论端口限速什么的了,百度一下一大把。但如果要的是限制某个特定进程的带宽,事情就有趣多了。 继续阅读……
30 Dec 2012 Posted in perl
Perl 社区并不是所有的东西都发布在 CPAN 上。甚至专门有一个 Module::ThirdParty
模块记录这些非 CPAN 的 perl 项目列表。其中最有名的应该就属写博客的 Movable Type
和做监控的 SmokePing
了。
继续阅读……
22 Dec 2012 Posted in perl
一年一度的 advent 集合中,除了 perl 的部分,还有 sysadmin 的也很吸引我等运维的眼球。不过 sysadmin 的一直是发表在blogspot 上,光荣的被 GFW 认证了。虽然说翻墙应该是这年头越来越普及的技能,但是能提供免墙的办法,想来那真真是极好的。 继续阅读……
22 Dec 2012 Posted in dancer
Dancer 活跃的社区和强大又方便的插件开发导致出现了太多好玩的插件,有位新同学在刚上手的这两周内就已经往 CPAN 提交了四个插件了。 继续阅读……
22 Dec 2012 Posted in logstash
之前有一篇从 ElasticSearch 官网摘下来的博客《【翻译】用ElasticSearch和Protovis实现数据可视化》。不过一来 Protovis 已经过时,二来 不管是 Protovis 的进化品 D3 还是 Highchart 什么的,我觉得在多图方面都还不如 amcharts 好用。所以在最后依然选择了老牌的 amcharts 完成。 继续阅读……
21 Dec 2012 Posted in dancer
首先介绍一下 Dancer::Plugin::Auth::Extensible
模块。这是一个认证验证的框架,之前 Dancer 里这方面的框架是 RBAC ,不过 RBAC 是实现的 auth 对象,然后提供 ->asa
,->can
,->roles
等方法。在使用的时候,需要自己在每个 route 里写 if 或者 switch 代码,显得比较繁琐。而 Extensible 模块提供了另一个(或者说是两个)思路。同时借此深入了解 Dancer::Plugin
和 Dancer::Hook
的用法,外加熟悉 perl 的一些不常见的对象使用。收获良多,不可不记。
继续阅读……
19 Dec 2012 Posted in dancer
Dancer 框架自带有一个 Simple 模版,不过推荐使用 Template
模块作为替代品。不过从性能上来说,TT2 比之前博客里陆续介绍过的 HTML::Template
和 Text::MicroTemplate
都要差。而这方面最好的,就是 Text::XSlate
模块了。今天尝试将一个 Dancer 应用迁移到 Text::XSlate
上。踩进两个坑,特此记录。
继续阅读……
16 Dec 2012 Posted in perl
之所以写这么个内容,是今天突然发现之前有个脚本的效果完全不对。这个脚本是用 Furl 模块发 HTTP 请求。看 POD 的说明,以为这样写是生效的: 继续阅读……
11 Dec 2012 Posted in logstash
在今天以前,我一直认为perl的ElasticSearch.pm是除了原生java库以外封装最好的。不过今天踩进一个硕大的坑里,多亏 dancer-user 邮件列表里外国友人的帮助,才算爬了出来…… 继续阅读……
01 Dec 2012 Posted in
有些Word文档想搬到博客上来,而博客用的是markdown的格式。最简单的办法是在Word里转成html格式另存为,因为markdown和html是兼容的。不过word直接另存为的html里面带有“海量”的无聊样式,实在不方便之后我们再用vim的工具编辑。所以还是想办法整整。 继续阅读……
22 Nov 2012 Posted in logstash
Tatsumaki是Plack作者的一个小框架,亮点是很好的利用了psgi.streaming的接口可以async的完成响应。不过因为缺少周边支持,所以除了几个webchat的example,似乎没看到什么应用。笔者之前纯为练手,却用tatsumaki写了个sync响应的小demo,算是展示一下用tatsuamki做普通web应用的基础步骤吧: 继续阅读……
22 Nov 2012 Posted in monitor
以前已经提过多次gnuplot的简便快捷了。不过大多是最基本的单图上画条线之类的。这次碰到需求,稍微help了一下在一个图上画多个区域。主要需要注意的就是set size的定位点到底从什么角度算,说实话蛮麻烦的。 继续阅读……