2006年January月 发布的文章

lighttpd 升级了,顺便跟一下

最新的是 1.4.9

比较好的一个事情是 1.4.8 带来的 mod_dirlisting 的中文乱码问题又修正了,省得我打 patch 了,赞一个。

另外一个比较不错的功能是 mod_evasive, 可以限制同一 IP 的连接数,当然本站暂时不需要它。hehe

被Squid的统计数据骗了。。

这年头真是连胡萝卜都不可以相信。

前一段时间用了很多很多的时间和精力奋斗 squid,  当时无论怎么调整参数,  Linux 下面的 squid 性能就是比不上 FreeBSD 系统的。同样的硬件配置,DNS Round Robin 轮转均衡,Linux 的 squid 无论 hit rate 还是 traffic 都比 FreeBSD 的低一些,随着流量增加,差别还越来越明显。今天差距居然达到 33% 了,Linux 报告 traffic 在 3MB 左右,同时 FreeBSD 报告已经上 4MB 了。本来就打算得出结论,FreeBSD 作 Squid 确实有天然优势,没有想到,这只是一场骗局。。

zsg 今天察看了一下这些 squid 对应交换机网口的流量,结果发现基本是一样的,而且 Linux 那个比 FreeBSD 的还稍微高一点点。和 Squid 自己的 SNMP 数据比较,确定 Linux 的数据基本是准确的,而 FreeBSD 虚报了 33% 还多!真是!·#¥%……

造成这个现象的原因猜测是 FreeBSD 和 Linux 两者之一的计时时钟不够精确,导致计算不准确,但是为什么 Hit rate 也能高呢?这就不清楚了,确实比较奇怪,不过交换机数据和 FreeBSD 报告的差别很大也是铁板钉钉的事实,所以只能自己认为,时钟不准确,导致其他逻辑都混乱了罢。。。再怎么说,交换机出现单个口统计结果不准的可能性,也要远小于不同机器上面 Squid 报告不准的可能性吧。

总的来说,以后不能太相信程序自己报告的结果,如果有手段,还是多参考一些更公正的数据来源更有意义。
感谢 zsg 灵感去看交换机数据,解决了这个多天来的悬案。

Fight against cacti, net-snmp and squid

一天多来都在折腾这三个东西,作点笔记好了。

首先简单介绍一下:

cacti 是一个用 rrdtool 来画图的网络监控系统,  通常一说到网络管理, 大家首先想到的经常是 mrtg, 但是 mrtg 画的图简单且难看, rrdtool 虽然画图本领一流, 画出来的图也漂亮, 但是他也就是一个画图工具, 不像 mrtg 那样本身还集成了数据收集功能. cacti 则是集成了各种数据收集功能,然后用 rrdtool 画出监控图形. 其本身界面比起同类系统要漂亮不少. 推荐所有有监控需求的人都去研究一下.

cacti 和 nagios 是不同功用的系统, nagios 适合监视大量服务器上面的大批服务是否正常, 重点并不在图形化的监控, 其集成的很多功能例如报警,都是 cacti 没有或者很弱的. cacti 主要用途还是用来收集历史数据和画图, 所以界面比 nagios 漂亮很多.
net-snmp 是一套广泛使用在类 unix 系统上的 snmp 软件, 包含一套 snmp agent 框架 ,一个 snmpd 和 一堆 snmp 工具 , 其前身为 ucd-snmp. 关于 snmp 是什么, 以及如何配置的文章,网上搜一下有一堆一堆的. 在这里就不重复了.

squid 是一个 web  缓存加速程序, 本来跟监控没有太大关系, 只是因为他支持 snmp 查询,而我要用 cacti 监控他, 然后遇到了他的缺陷被折腾了一阵子,所以也拉进今天的讨论.

我跟这三个东西斗争的过程如下…

首先先把 cacti 架起来,  在架的过程中我没有遇到问题,但是把 czz 搞了一下, 因为 cacti 要调用外部程序, 不能开 safe_mode, 如果开了就会出奇怪问题.

接下来配置 squid 的查询, squid 的查询数据比较多且复杂,自己做模版的话很麻烦,于是 google 了一下,找了一个 SquidStats (见附件) 的模版, 按照他的 readme 一步一步来, 就可以正常安装. 于是我就遇到了第一个坎…

设置完成以后执行 poller 的时候总是无法产生 rrd 数据, 给 php 里面加 log 也没有看出来什么, google 换了很多关键词, 总算发现了原因:  cacti 在进行 snmp 查询之前会先确定对方是否在运行, 他用的方法是查询 .1.3.6.1.2.1.1.3.0 这个 oid, 但是 squid 不支持这个 oid , 于是 cacti 就以为 squid down 了,不去真正查询. 临时解决方法是在 cacti 的 settings 里面, poller 页的 Downed Host Detection 选择 Ping, 不要选择带有 snmp 字样的.

然后在弄 64 位机的时候遇到了第二个坎,  发现 64 位 linux 机器的流量图总是不正确. 大部分时候没有结果,有时候又特大, 其实这个应该很容易想到是 counter 回绕不正确的问题, 但是我第一次 google 出来的结果是一个说和 tunnel 设备有关的 bug, 这两台  x64 机器上面确实有 tunnel ,于是我就一直以为是 tunnel 的问题. 折腾了好久. 最后才发现原来就是简单的  counter 回绕不正确的问题. 从 Fedora Core 5 的开发目录里面下一个 net-snmp 5.3 的 srpm 在  centos 4.2 上 build 一下, 就搞定了. 注意 FC4 里面的 net-snmp 5.2.x 也是有 bug 的,一定要 5.3 的.

最后推荐所有研究 cacti 的人,一定不要放过 cacti 的官方论坛扩展脚本版面 . 里面有很多的第三方的模版和脚本, 支持很多的网络设备.

最近评论

时光机

其他