硬盘故障导致的Input/output error[原创]
[ 2008-11-2 15:55 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.02 转载请注明原文链接:http://blog.zyan.cc/post/378/]
早上,一台Linux服务器出故障,SSH连上去后,ls、reboot、shutdown等命令都无法执行。提示:
执行echo "test" > test.txt,显示磁盘不能写,我怀疑是磁盘坏了。
在Google上搜索了一下,发现有人遇到相同的问题,也有人怀疑“you most likely have a failing disc”。
让机房重启了一下服务器,服务器发出报警声,无法启动。打的到机房一看:这台服务器的一块磁盘闪黄灯报警,在RAID控制面板中显示为FAIL,而另一块硬盘显示的是READY正常状态。看来,果然是硬盘坏掉了。
早上,一台Linux服务器出故障,SSH连上去后,ls、reboot、shutdown等命令都无法执行。提示:
引用
/bin/bash: ls: Input/output error
执行echo "test" > test.txt,显示磁盘不能写,我怀疑是磁盘坏了。
在Google上搜索了一下,发现有人遇到相同的问题,也有人怀疑“you most likely have a failing disc”。
让机房重启了一下服务器,服务器发出报警声,无法启动。打的到机房一看:这台服务器的一块磁盘闪黄灯报警,在RAID控制面板中显示为FAIL,而另一块硬盘显示的是READY正常状态。看来,果然是硬盘坏掉了。
我的博客空间迁移到了美国的VPS上
[ 2008-10-26 16:02 | by 张宴 ]
这几天,我的博客所在的虚拟主机不稳定。今天下午,我购买了位于美国德克萨斯州达拉斯市的VPS(CentOS 5.2 操作系统),在上面配置了“Nginx 0.7.19 + PHP 5.2.6 + MySQL 5.1.26”环境,然后将博客内容迁移到了VPS上。
该VPS是从瑞豪开源(http://rashost.com/)购买的,电信、网通访问速度都不错,稳定性也非常好。
VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务。每个VPS都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立执行程序和独立系统配置等。
配置过程中的一些笔记:
一、VPS只有一个根分区,没有swap交换分区。VPS内存不大,于是,我为其增加了一个swap交换文件。
1、进入一个目录
2、获取256M的文件块:
3、创建swap文件
4、激活swap文件
5、查看一下swap是否正确:
6、加到fstab文件中让系统引导时自动启动
在末尾增加以下内容:
二、系统默认为美国东部时间,修改Linux时区为东八区
该VPS是从瑞豪开源(http://rashost.com/)购买的,电信、网通访问速度都不错,稳定性也非常好。
VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务。每个VPS都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立执行程序和独立系统配置等。
配置过程中的一些笔记:
一、VPS只有一个根分区,没有swap交换分区。VPS内存不大,于是,我为其增加了一个swap交换文件。
1、进入一个目录
cd /var/
2、获取256M的文件块:
dd if=/dev/zero of=swapfile bs=1024 count=262144
3、创建swap文件
/sbin/mkswap swapfile
4、激活swap文件
/sbin/swapon swapfile
5、查看一下swap是否正确:
/sbin/swapon -s
6、加到fstab文件中让系统引导时自动启动
vi /etc/fstab
在末尾增加以下内容:
引用
/var/swapfile swap swap defaults 0 0
二、系统默认为美国东部时间,修改Linux时区为东八区
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
PHPChina.com旗下的开源技术杂志《PHPer》第12期
[ 2008-10-9 08:37 | by 张宴 ]
我发表在《PHPer》杂志第12期上的这篇文章──《Nginx 0.7.x + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器》,可能很多朋友已经提前看过,不过该杂志的其他文章也是非常不错的,值得一看。
《PHPer》杂志主页:http://phper.phpchina.com/
《PHPer》第12期下载:http://phper.phpchina.com/12/dl12.php?i=12
《PHPer》杂志主页:http://phper.phpchina.com/
《PHPer》第12期下载:http://phper.phpchina.com/12/dl12.php?i=12
通过浏览器从SVN更新代码到Linux服务器的指定目录[原创]
[ 2008-10-6 19:06 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.10.06 转载请注明原文链接:http://blog.zyan.cc/read.php/371.htm]
今天花几分钟写的一个PHP小程序,用途是:无需给程序员开放服务器SSH帐号,只需通过Web浏览器即可从SVN版本库更新代码到Linux服务器的指定目录。如果有需要,可以给这段代码加个密码登录。
1、假设www、www是Apache或Nginx服务器的用户名和组,/data0/www/是网页文件存放根目录,执行以下shell命令:
2、创建文件svn_up.php:
今天花几分钟写的一个PHP小程序,用途是:无需给程序员开放服务器SSH帐号,只需通过Web浏览器即可从SVN版本库更新代码到Linux服务器的指定目录。如果有需要,可以给这段代码加个密码登录。
1、假设www、www是Apache或Nginx服务器的用户名和组,/data0/www/是网页文件存放根目录,执行以下shell命令:
sudo -s
/usr/sbin/groupadd www -g 48
/usr/sbin/useradd -u 48 -g www www
mkdir -p /data0/www/
chown -R www:www /data0/www/
su www
cd /data0/www/
/usr/local/bin/svn checkout --username zhangyan --password 123456 http://xxx.xxx.xxx.xxx:8080/svn/web/trunk/
/usr/sbin/groupadd www -g 48
/usr/sbin/useradd -u 48 -g www www
mkdir -p /data0/www/
chown -R www:www /data0/www/
su www
cd /data0/www/
/usr/local/bin/svn checkout --username zhangyan --password 123456 http://xxx.xxx.xxx.xxx:8080/svn/web/trunk/
2、创建文件svn_up.php:
UnixSNS──Linux/Unix技术工程师社交网络
[ 2008-9-24 23:52 | by 张宴 ]
Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现[原创]
[ 2008-6-25 08:10 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2008.06.25 转载请注明原文链接:http://blog.zyan.cc/read.php/354.htm]
最近,在我原有的“Linux服务器系统监控程序”基础上,完善了HTTP、TCP、MySQL主动监控与MSN、E-mail、手机短信报警。监控程序以shell和PHP程序编写,以下为主要框架与部分代码:
一、系统监控接口程序(interface.php)具有的报警方式
1、MSN实时报警
①、监控程序每次检测到故障存在、或者故障恢复,都会发送短消息到管理员的MSN。
最近,在我原有的“Linux服务器系统监控程序”基础上,完善了HTTP、TCP、MySQL主动监控与MSN、E-mail、手机短信报警。监控程序以shell和PHP程序编写,以下为主要框架与部分代码:
一、系统监控接口程序(interface.php)具有的报警方式
1、MSN实时报警
①、监控程序每次检测到故障存在、或者故障恢复,都会发送短消息到管理员的MSN。
一个分类搜集了众多开源软件官方网址的站点
[ 2008-2-23 22:36 | by 张宴 ]
Links Collection of OpenSource Software
http://www.designandcommunication.co.jp/Nakano/
一个日本的网站,上面分类搜集了众多开源软件的官方网站地址。
例如:
数据库类别:http://www.designandcommunication.co.jp/Nakano/Dev/Database.html
HTTP服务器类别:http://www.designandcommunication.co.jp/Nakano/Net/HTTP.html
http://www.designandcommunication.co.jp/Nakano/
一个日本的网站,上面分类搜集了众多开源软件的官方网站地址。
例如:
数据库类别:http://www.designandcommunication.co.jp/Nakano/Dev/Database.html
HTTP服务器类别:http://www.designandcommunication.co.jp/Nakano/Net/HTTP.html
又一个新浪UNIX开源软件项目──xbayDNS
[ 2008-1-21 21:52 | by 张宴 ]
xbayDNS
协议:New BSD License
作者:huangdong
团队:新浪研发中心──系统研发
网址:http://code.google.com/p/xbaydns/
xBayDNS是一个基于Web的BIND 9管理界面。与通常我们所知道的管理界面所不同的是,它尽可能的将DNS的管理简化,并帮助用户建立起一个容易管理、维护、扩展的DNS系统。
一个普通的DNS服器可以提供域名的解析、代理、缓存这样的服务。我们期望DNS不但是一个服务,它更应该承担起GSLB、用户访问加速这样的任务。而在现实的环境中,应用DNS已经能够很好的完成这样的工作。所以沿着从前的经历,我们启动了xBayDNS这个项目,它的目的是让DNS服务在承担着GSLB和访问加速这样的工作时更容易管理。做为xBayDNS附加的礼物,也可以从中学到如何形成一个基于DNS的GSLB和用户访问加速的原理。
xBayDNS的特性如下:
• 基于Web的BIND管理
• 非常容易的支持多种操作系统(现有我们考虑支持的就有FreeBSD、OpenBSD、MacOSX、Linux)
• 支持ACL、View、TSIG这样的BIND高级管理功能
什么时候使用xBayDNS?
• 你需要简单的管理一台BIND的DNS服务器
• 你需要多台DNS服务器来为你的用户提供解晰服务
• 一套基于DNS的GSLB系统
• 一套基于DNS的分布式GSLB系统
• 你需要维护多台分布式的服务器
安装:
协议:New BSD License
作者:huangdong
团队:新浪研发中心──系统研发
网址:http://code.google.com/p/xbaydns/
xBayDNS是一个基于Web的BIND 9管理界面。与通常我们所知道的管理界面所不同的是,它尽可能的将DNS的管理简化,并帮助用户建立起一个容易管理、维护、扩展的DNS系统。
一个普通的DNS服器可以提供域名的解析、代理、缓存这样的服务。我们期望DNS不但是一个服务,它更应该承担起GSLB、用户访问加速这样的任务。而在现实的环境中,应用DNS已经能够很好的完成这样的工作。所以沿着从前的经历,我们启动了xBayDNS这个项目,它的目的是让DNS服务在承担着GSLB和访问加速这样的工作时更容易管理。做为xBayDNS附加的礼物,也可以从中学到如何形成一个基于DNS的GSLB和用户访问加速的原理。
xBayDNS的特性如下:
• 基于Web的BIND管理
• 非常容易的支持多种操作系统(现有我们考虑支持的就有FreeBSD、OpenBSD、MacOSX、Linux)
• 支持ACL、View、TSIG这样的BIND高级管理功能
什么时候使用xBayDNS?
• 你需要简单的管理一台BIND的DNS服务器
• 你需要多台DNS服务器来为你的用户提供解晰服务
• 一套基于DNS的GSLB系统
• 一套基于DNS的分布式GSLB系统
• 你需要维护多台分布式的服务器
安装:
我所熟悉的网站负载均衡技术[原创]
[ 2007-11-1 22:29 | by 张宴 ]
DNS轮循
DNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。
F5 BIG-IP
简介:F5 Networks 公司的著名硬件负载均衡交换机。支持硬件四层、七层交换。不同的型号性能不同,BIG-IP 6400可以支持800万条并发连接,低一点型号的可以支持400万条以上的并发连接。性能极高,但价格也不菲。
价格:BIG-IP 6400的价格在16万元人民币左右。
网址:http://www.f5.com.cn/(中国) http://www.f5.com/(全球)
LVS(Linux Virtual Server)
简介:软件四层交换。LVS是在Linux内核中作四层交换,只花128个字节记录一个连接信息,不涉及到文件句柄操作,故没有65535最大文件句柄数的限制。LVS性能很高,可以支持100~400万条并发连接。
价格:免费、开源
网址:http://zh.linuxvirtualserver.org/
L7SW(Layer7 switching)
简介:软件七层交换。这是一款类似LVS的新负载均衡软件,我没有实际应用过,性能未知,因此不作评价。这是它的英文介绍:Layer7 switching is driving a low-level engine using networking design to speed-up forwarding of data stream. Implementation in this project is split into a userspace daemon and a low-level kernelspace forwarding engine. Userspace daemon is responsible for scheduling and switching decisions. Kernelspace forwarding engine is responsible for forwarding stream and using TCP-Splicing scheme. TCP-Splicing is the postponement of the connection between the client and the server in order to obtain sufficient information to make a routing decision. This project is close to Linux Virtual Server project since lot of discusions on this topics have been made online and offline LVS project.
价格:免费、开源
网址:http://www.linux-l7sw.org/
HAProxy
简介:软件七层交换,反向代理服务器。目前还不支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障,HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。另外,HAProxy还支持双机热备。我曾经用过一段时间,能支持2~3万条并发连接。现在我用它做普通的小并发负载均衡,主要用到的是它的服务器健康检查功能。
价格:免费、开源
网址:http://haproxy.1wt.eu/
Nginx
简介:软件七层交换,反向代理服务器。能够很好地支持虚拟主机,可配置性很强,可以按URL做负载均衡。我目前一直在用,大约能支持3~5万条并发连接。
价格:免费、开源
网址:http://wiki.codemongers.com/NginxChs(中文维基)
DNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。
F5 BIG-IP
简介:F5 Networks 公司的著名硬件负载均衡交换机。支持硬件四层、七层交换。不同的型号性能不同,BIG-IP 6400可以支持800万条并发连接,低一点型号的可以支持400万条以上的并发连接。性能极高,但价格也不菲。
价格:BIG-IP 6400的价格在16万元人民币左右。
网址:http://www.f5.com.cn/(中国) http://www.f5.com/(全球)
LVS(Linux Virtual Server)
简介:软件四层交换。LVS是在Linux内核中作四层交换,只花128个字节记录一个连接信息,不涉及到文件句柄操作,故没有65535最大文件句柄数的限制。LVS性能很高,可以支持100~400万条并发连接。
价格:免费、开源
网址:http://zh.linuxvirtualserver.org/
L7SW(Layer7 switching)
简介:软件七层交换。这是一款类似LVS的新负载均衡软件,我没有实际应用过,性能未知,因此不作评价。这是它的英文介绍:Layer7 switching is driving a low-level engine using networking design to speed-up forwarding of data stream. Implementation in this project is split into a userspace daemon and a low-level kernelspace forwarding engine. Userspace daemon is responsible for scheduling and switching decisions. Kernelspace forwarding engine is responsible for forwarding stream and using TCP-Splicing scheme. TCP-Splicing is the postponement of the connection between the client and the server in order to obtain sufficient information to make a routing decision. This project is close to Linux Virtual Server project since lot of discusions on this topics have been made online and offline LVS project.
价格:免费、开源
网址:http://www.linux-l7sw.org/
HAProxy
简介:软件七层交换,反向代理服务器。目前还不支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障,HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。另外,HAProxy还支持双机热备。我曾经用过一段时间,能支持2~3万条并发连接。现在我用它做普通的小并发负载均衡,主要用到的是它的服务器健康检查功能。
价格:免费、开源
网址:http://haproxy.1wt.eu/
Nginx
简介:软件七层交换,反向代理服务器。能够很好地支持虚拟主机,可配置性很强,可以按URL做负载均衡。我目前一直在用,大约能支持3~5万条并发连接。
价格:免费、开源
网址:http://wiki.codemongers.com/NginxChs(中文维基)
准备转化“故障转移群集解决方案”理论为实践
[ 2007-9-21 19:18 | by 张宴 ]
在微软的MSDN网站上看到一篇理论文章《Failover Cluster(故障转移群集) 》,文中的故障转移群集解决方案,有点类似两台 F5 BIG-IP 负载均衡交换机通过串口线进行心跳检测的互备模式,对我来说很有参考价值。
最近打算写一套基于Linux系统的实际应用方案,在两台Web服务器之间实现故障转移:用户实际访问的IP地址是“x.x.1.10”,两台服务器自动切换用Linux的IP别名来实现,当主服务器“x.x.1.1”正常时,主服务器的IP别名“x.x.1.10”对外提供服务,当两台服务器之间的心跳检测程序发现主服务器“x.x.1.1”发生故障或死机时,会停掉主服务器“x.x.1.1”的IP别名“x.x.1.10”(主服务器死机时该IP别名会自动消失),而由备用服务器“x.x.1.2”启用相同的IP别名“x.x.1.10”来接替主服务器提供服务;“信号”打算自己写一个心跳检测程序来实现;共享数据部分还没想好用什么方式来实现,NFS吗?不知道NFS在高负载读写下的性能如何?
附:故障转移群集解决方案
第一台服务器 (Database01) 是处理所有事务的活动服务器。 仅当 Database01 发生故障时,处于空闲状态的第二台服务器 (Database02) 才会处理事务。 群集将一个虚拟 IP 地址和主机名 (Database10) 在客户端和应用程序所使用的网络上公开。
注意:您可以将此设计扩展为包括多台活动服务器(除了所示的服务器外),要么使它们共享单个备用服务器,要么将每个活动服务器配置为另一个活动服务器的备用服务器。
最近打算写一套基于Linux系统的实际应用方案,在两台Web服务器之间实现故障转移:用户实际访问的IP地址是“x.x.1.10”,两台服务器自动切换用Linux的IP别名来实现,当主服务器“x.x.1.1”正常时,主服务器的IP别名“x.x.1.10”对外提供服务,当两台服务器之间的心跳检测程序发现主服务器“x.x.1.1”发生故障或死机时,会停掉主服务器“x.x.1.1”的IP别名“x.x.1.10”(主服务器死机时该IP别名会自动消失),而由备用服务器“x.x.1.2”启用相同的IP别名“x.x.1.10”来接替主服务器提供服务;“信号”打算自己写一个心跳检测程序来实现;共享数据部分还没想好用什么方式来实现,NFS吗?不知道NFS在高负载读写下的性能如何?
附:故障转移群集解决方案
第一台服务器 (Database01) 是处理所有事务的活动服务器。 仅当 Database01 发生故障时,处于空闲状态的第二台服务器 (Database02) 才会处理事务。 群集将一个虚拟 IP 地址和主机名 (Database10) 在客户端和应用程序所使用的网络上公开。
注意:您可以将此设计扩展为包括多台活动服务器(除了所示的服务器外),要么使它们共享单个备用服务器,要么将每个活动服务器配置为另一个活动服务器的备用服务器。
Linux索引节点(inode)用满导致的一次故障[原创]
[ 2007-9-12 18:50 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2007.09.12 转载请注明出处:http://blog.zyan.cc]
一、发现问题:
在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。
二、分析问题:
后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
而这台服务器的Block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足。
三、查找原因:
/data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。
四、解决方案:
1、删除/data/cache目录中的部分文件,释放出/data分区的一部分inode。
2、用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/data分区inode不足的问题:
ln -s /opt/newcache /data/cache
3、更换服务器,用高配置的服务器替换低配置的服务器。很多时候用钱去解决问题比用技术更有效,堆在我办公桌上5台全新的 DELL PowerEdge 1950 服务器即将运往IDC机房。
一、发现问题:
在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。
二、分析问题:
后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
而这台服务器的Block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足。
三、查找原因:
/data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。
四、解决方案:
1、删除/data/cache目录中的部分文件,释放出/data分区的一部分inode。
2、用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/data分区inode不足的问题:
ln -s /opt/newcache /data/cache
3、更换服务器,用高配置的服务器替换低配置的服务器。很多时候用钱去解决问题比用技术更有效,堆在我办公桌上5台全新的 DELL PowerEdge 1950 服务器即将运往IDC机房。
写完“Linux服务器监控系统 ServMon V1.1”[原创]
[ 2007-8-31 18:23 | by 张宴 ]
[文章作者:张宴 本文版本:v1.1 最后修改:2007.08.31 转载请注明出处:http://blog.zyan.cc]
8月3日,我写了“Linux服务器监控系统 ServMon V1.0”,今天,ServMon V1.1 版本亮相。
ServMon的原理是用shell脚本定时抓取被监控Linux服务器上的信息,再用curl POST到监控机的PHP接口程序上,由PHP接口程序对信息进行分析,如果存在异常,则发送报警邮件给管理员。报警邮件演示页面请见:http://blog.zyan.cc/read.php/276.htm
ServMon V1.1 在 1.0 的基础上,增加了对Linux系统负载的监控,并编写了客户端自动安装包:
1、被监控端服务器(Linux)
(1)、下载并安装ServMon Client
注:此处的password为interface.php程序中设置的数据传输验证密码。
客户端安装包源码:
│
├─install
├─[src]
│ ├─[bin]
│ │ ├─diskstat_send
│ │ ├─loadstat_send
│ │ └─swapstat_send
│ ├─[cron]
│ │ └─servmon
│ └─[data]
屏幕演示:
8月3日,我写了“Linux服务器监控系统 ServMon V1.0”,今天,ServMon V1.1 版本亮相。
ServMon的原理是用shell脚本定时抓取被监控Linux服务器上的信息,再用curl POST到监控机的PHP接口程序上,由PHP接口程序对信息进行分析,如果存在异常,则发送报警邮件给管理员。报警邮件演示页面请见:http://blog.zyan.cc/read.php/276.htm
ServMon V1.1 在 1.0 的基础上,增加了对Linux系统负载的监控,并编写了客户端自动安装包:
1、被监控端服务器(Linux)
(1)、下载并安装ServMon Client
引用
wget http://blog.zyan.cc/soft/linux/servmon/servmon-1.1.linux.tar.gz
tar zxvf servmon-1.1.linux.tar.gz
cd servmon-1.1
./install -i http://yourdomain/servmon/interface.php password
tar zxvf servmon-1.1.linux.tar.gz
cd servmon-1.1
./install -i http://yourdomain/servmon/interface.php password
注:此处的password为interface.php程序中设置的数据传输验证密码。
客户端安装包源码:
│
├─install
├─[src]
│ ├─[bin]
│ │ ├─diskstat_send
│ │ ├─loadstat_send
│ │ └─swapstat_send
│ ├─[cron]
│ │ └─servmon
│ └─[data]
屏幕演示:
找到一款不错的网站压力测试工具webbench[原创]
[ 2007-8-28 09:39 | by 张宴 ]
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。
1、适用系统:Linux
2、编译安装:
3、使用: 参数说明:-c表示并发数,-t表示时间(秒)
4、测试结果示例:
1、适用系统:Linux
2、编译安装:
引用
wget http://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install
3、使用:
引用
webbench -c 500 -t 30 http://127.0.0.1/test.jpg
4、测试结果示例:
引用
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://127.0.0.1/test.jpg
500 clients, running 30 sec.
Speed=3230 pages/min, 11614212 bytes/sec.
Requests: 1615 susceed, 0 failed.
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://127.0.0.1/test.jpg
500 clients, running 30 sec.
Speed=3230 pages/min, 11614212 bytes/sec.
Requests: 1615 susceed, 0 failed.
IP别名+TCP转发+端口映射实现跨网络访问[原创]
[ 2007-8-21 18:46 | by 张宴 ]
[文章作者:张宴 本文版本:v1.0 最后修改:2007.08.21 转载请注明出处:http://blog.zyan.cc]
我这两天在工作中遇到了一些问题,在今天下午全部解决,于是决定写一篇文章,将实现方法记录下来:
一、背景环境:
1、都是Linux服务器;
2、“服务器A”与“服务器C”不在同一网络,两者之间是不通的;
3、“服务器A”、“服务器C”分别与“服务器B”相通。
二、要实现的需求:
1、让“服务器A”上的PHP程序能够连接“服务器C”上的MySQL数据库(IP:10.10.1.4,端口:3306);
2、不允许在“服务器A”上的PHP程序中更改MySQL地址(10.10.1.4)和MySQL端口(3306)。
三、实现原理:
理论上从“服务器A”是无法直接连接“服务器C”的IP地址(10.10.1.4)及其3306端口的【图中的虚线】,但通过“IP别名+TCP转发+端口映射”,我在“服务器A”上的PHP程序无须作任何修改的情况下实现了这项功能【图中的实线】。
访问路线:“服务器A”上的PHP程序─→虚拟10.10.1.4:3306─→192.168.1.3:8520─→真实10.10.1.4:3306
四、实现方法:
我这两天在工作中遇到了一些问题,在今天下午全部解决,于是决定写一篇文章,将实现方法记录下来:
一、背景环境:
1、都是Linux服务器;
2、“服务器A”与“服务器C”不在同一网络,两者之间是不通的;
3、“服务器A”、“服务器C”分别与“服务器B”相通。
二、要实现的需求:
1、让“服务器A”上的PHP程序能够连接“服务器C”上的MySQL数据库(IP:10.10.1.4,端口:3306);
2、不允许在“服务器A”上的PHP程序中更改MySQL地址(10.10.1.4)和MySQL端口(3306)。
三、实现原理:
理论上从“服务器A”是无法直接连接“服务器C”的IP地址(10.10.1.4)及其3306端口的【图中的虚线】,但通过“IP别名+TCP转发+端口映射”,我在“服务器A”上的PHP程序无须作任何修改的情况下实现了这项功能【图中的实线】。
访问路线:“服务器A”上的PHP程序─→虚拟10.10.1.4:3306─→192.168.1.3:8520─→真实10.10.1.4:3306
四、实现方法:
我的技术文章与计算机作品汇总页[原创]
[ 2007-8-14 20:04 | by 张宴 ]
我的技术文章与计算机作品汇总页
张宴(本页网址:http://blog.zyan.cc/tech/)
文章推荐级别:最高 较高 普通
★ Apache、Nginx及其他Web服务器
● [文章] Nginx虚拟主机多server_name的顺序问题 [作者:张宴]
● [文章] Nginx+PHP+MySQL双机互备、全自动切换方案 [作者:张宴]
● [文章] Nginx 0.7.x + PHP 5.2.6(FastCGI)+ MySQL 5.1 在128M小内存VPS服务器上的配置优化 [作者:张宴]
● [文章] 使用Nginx轻松实现开源负载均衡──9月20日在ChinaUnix技术沙龙上的演讲PPT [作者:张宴]
● [文章] Nginx 0.7.x + PHP 5.2.8(FastCGI)搭建胜过Apache十倍的Web服务器(第4版) [作者:张宴]
● [文章] 解决Nginx + PHP(FastCGI)遇到的502 Bad Gateway错误 [作者:张宴]
● [文章] 使用Nginx作为Web服务器的国内网站 [作者:张宴]
● [文章] Nginx 0.6.31 + PHP 5.2.6(FastCGI)搭建胜过Apache十倍的Web服务器(第3版) [作者:张宴]
● [文章] 为Apache编译添加mod_expires模块出错的解决笔记 [作者:张宴]
● [文章] 解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求 [作者:张宴]
● [文章] Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒” [作者:张宴]
● [文章] 视频:Nginx versus Apache (两者的对比)
● [文章] Nginx 0.5.33 + PHP 5.2.5(FastCGI)搭建胜过Apache 10倍的Web服务器(第2版) [作者:张宴]
● [文章] Nginx 简单的负载均衡配置示例 [作者:张宴]
● [文章] Nginx 0.5.31 + PHP 5.2.4搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器 [作者:张宴]
● [文章] 为Apache配置mod_deflat压缩输出 [作者:张宴]
● [文章] 修改Linux内核参数,减少TCP连接中的TIME-WAIT sockets [作者:张宴]
● [文章] 查看Apache并发请求数及其TCP连接状态 [作者:张宴]
● [文章] AutoAPM--Linux下自动编译Apache+PHP+MySQL脚本 [作者:张宴]
● [文章] Linux下Apache日志分析工具--AWStats安装使用 [作者:张宴]
★ PHP配置与优化
● [文章] 利用Xdebug分析PHP程序,找出性能瓶颈 [作者:张宴]
● [文章] 安装及配置eaccelerator-0.9.5加速PHP-5.2.1 [作者:张宴]
● [文章] Linux下为RPM方式安装的PHP添加GD库支持 [作者:张宴]
★ MySQL数据库
● [文章] 快捷启动、停止、重启、杀死指定端口MySQL进程的脚本 [作者:张宴]
● [文章] MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档 [作者:张宴]
● [文章] 使用Google的开源TCMalloc库,提高MySQL在高并发情况下的性能 [作者:张宴]
● [文章] MySQL数据库服务器在Flickr、Fotolog、Wkipedia、Facebook等国际知名网站中的使用数量 [作者:张宴]
● [文章] 命令行方式管理MySQL数据库实例 [作者:张宴]
● [文章] MySQL中将字符串aaa批量替换为bbb的SQL语句 [作者:张宴]
● [文章] phpMyAdmin之一:可管理多台远程MySQL服务器的phpMyAdmin 2.10.2 [作者:张宴]
● [文章] phpMyAdmin之二:修改phpMyAdmin使其能够管理多台远程MySQL服务器 [作者:张宴]
● [文章] MySQL数据库故障解决──修复损坏的表 [作者:张宴]
★ Squid、Varnish、Memcached及其他缓存服务器
● [文章] 百度、新浪、Mixi、Apache社区赞助的开源key-value分布式存储系统 [作者:张宴]
● [文章] Memcached的代理服务器软件:magent使用小记 [作者:张宴]
● [文章] 利用shell命令操作Memcached [作者:张宴]
● [文章] 利用Tokyo Tyrant构建兼容Memcached协议、支持故障转移、高并发的分布式key-value持久存储系统 [作者:张宴]
● [文章] MySQL Memcache_engine的安装与使用 [作者:张宴]
● [源码] dbcached──“分布式 key-value 数据库内存缓存系统” [作者:张宴]
● [文章] 减少Linux下Squid服务器的TIME_WAIT套接字数量 [作者:张宴]
● [文章] 使用Varnish代替Squid做网站缓存加速器的详细解决方案 [作者:张宴]
● [文章] 找到一款批量清除Squid缓存的小工具 [作者:张宴]
● [文章] 初步试用Squid的替代产品──Varnish Cache网站加速器 [作者:张宴]
● [书籍] Squid中文权威指南 (在线版) (PDF下载) [作者:彭勇华]
● [文章] 清除指定squid缓存文件的脚本 [作者:张宴]
★ 其他
● [文章] 我的开源PHP中文分词扩展:PHPCWS 1.0.0 [作者:张宴]
● [文章] 一款不错的Linux命令行下的FTP客户端软件 [作者:张宴]
● [文章] 亿级数据的高并发通用搜索引擎架构设计 [作者:张宴]
● [文章] Linux下简单限制网卡的带宽 [作者:张宴]
● [文章] 基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计 [作者:张宴]
● [文章] Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现 [作者:张宴]
● [文章] IE浏览器下同一网页多图片显示的瓶颈与优化 [作者:张宴]
● [文章] 又一个新浪UNIX开源软件项目──xbayDNS [项目团队:新浪研发中心──系统研发]
● [文章] 新浪发起的UNIX开源软件项目 [项目团队:新浪互动社区事业部──博客产品]
● [文章] YouTube 系统架构 [作者:Cuong Do & Kyle Cordes]
● [文章] 我所熟悉的网站负载均衡技术 [作者:张宴]
● [文章] Linux索引节点(inode)用满导致的一次故障 [作者:张宴]
● [文章] 一款不错的网站压力测试工具webbench [作者:张宴]
● [文章] IP别名+TCP转发+端口映射实现跨网络访问 [作者:张宴]
● [文章] Linux下快速搭建ntp时间同步服务器 [作者:张宴]
● [文章] Linux服务器监控系统 ServMon V1.1 [作者:张宴]
● [文章] Linux服务器监控系统 ServMon V1.0 [作者:张宴]
● [书籍] 针对服务器运行环境安装CentOS 4.X Linux [作者:张宴]
● [文章] 使用Linux的rsync命令实现:多服务器镜像同步 [作者:张宴]
● [文章] 用rsync实现网站镜像和备份
● [文章] Fedora Core 4.0 简体中文语言包的安装 [作者:张宴]
★ Linux命令与shell脚本
● [文章] PHPSH:Facebook开发的PHP Shell的安装与使用 [作者:张宴]
● [文章] PHP多进程并发控制的测试用例 [作者:张宴]
硬件设备
★ 负载均衡交换机
● [文章] 利用NetScaler和自行编写的健康检查脚本,完美解决多台MySQL Slave数据库的负载均衡 [作者:张宴]
● [文章] F5 BIG-IP负载均衡器配置实例与Web管理界面体验 [作者:张宴]
编程语言
★ PHP/JavaScript编程
● [文章] AJAXCDR:利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求 [作者:张宴]
● [文章] 支持MSNP15协议与离线消息的PHP MSN Class,可实现MSN机器人 [作者:张宴]
● [文章] 同一域名对应多个IP时,PHP获取远程网页内容的函数 [作者:张宴]
● [文章] 通过浏览器从SVN更新代码到Linux服务器的指定目录 [作者:张宴]
● [文章] 一个发送HTML邮件的PHP函数 [作者:张宴]
● [文章] 采用curl库在PHP程序之间传递数组 [作者:张宴]
● [文章] PHP截取中文字符串不出现?号的解决方法 [作者:张宴]
● [文章] PHP XML Library:一个不错的PHP XML操作类
● [文章] PHP中常用的字符串函数
● [文章] 钢笔手写体生成工具(PHP)V1.0 [作者:张宴]
● [文章] PHP实现http与https转化 [作者:张宴]
● [文章] 用GD库生成高质量的缩略图片
● [文章] 部分PHP问题总结
★ HTML/JS
● [文章] dp.SyntaxHighlighter介绍:在网页中加亮显示源代码的工具 [作者:张宴]
● [文章] IE浏览器flash控件的激活方式介绍 [作者:张宴]
● [文章] 防止电子邮件地址被搜索到的新方法 [作者:张宴]
● [文章] 网页制作:带有滚动条的表格 [作者:张宴]
Windows 2000/XP/2003/Vista
★ 软件分享
● [下载] PHPChina.com旗下的开源技术杂志《PHPer》第12期
● [网站] UnixSNS──Linux/Unix技术工程师社交网络
● [网站] 一个分类搜集了众多开源软件官方网址的站点
● [下载] 一款不错的开源密码管理软件──KeePass
● [下载] PHP编程的好工具:《PHP Designer 2007 专业版》
● [下载] 可以上传、下载文件的SSH客户端软件--SecureCRT绿色版
★ 其他
● [文章] 再谈Dr.COM宽带认证客户端共享上网破解V3.46(d13) [作者:张宴]
● [文章] 软件测试用例(Test Case)设计 [作者:Vince]
● [文章] IE7浏览器简体中文版的安装、设置和使用方法(并介绍了非正版Windows用户如何安装IE7) [作者:张宴]
● [文章] 如何寻找联想电脑驱动程序 [作者:张宴]
● [文章] Microsoft SQL Server数据库的备份与恢复 [作者:张宴]
● [文章] 解决IE浏览器打不开的办法 [作者:张宴]
个人计算机作品
★ 可下载或开放源代码的作品
● [软件] APMServ 拥有图形界面的快速搭建Apache、PHP、MySQL、ASP、Perl网站服务器平台的绿色软件
[作者:张宴]
● [软件] 《APMServ 5.2.6》:一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP平台的绿色软件 [作者:张宴]
● [插件] MySQL中文全文索引插件 mysqlcft 1.0.0 [作者:张宴]
● [源码] dbcached──“分布式 key-value 数据库内存缓存系统” [作者:张宴]
● [源码] Linux服务器监控系统 ServMon V1.1 [作者:张宴]
● [源码] Linux服务器监控系统 ServMon V1.0 [作者:张宴]
● [书籍] 针对服务器运行环境安装CentOS 4.X Linux 图文幻灯电子书 [作者:张宴]
● [源码] 钢笔手写体生成工具(PHP)V1.0 [作者:张宴]
● 更多>>>
★ 只提供部分源代码和信息的作品
● [架构] 基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计 [作者:张宴]
● [作品] Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现 [作者:张宴]
● [架构] 以最少的Web服务器达到最大的性能──“互联星空播客” [作者:张宴]
● [演示] 大学期间开发的中南民族大学学生管理信息系统 [作者:张宴]
● [演示] 大学期间为北京博卡先锋软件开发有限公司定制开发的SAPM软件 [作者:张宴]
● [硬件] 自行打造的袖珍电脑主机 [作者:张宴]
● 更多>>>
本页内容将陆续增加修改。最后修改时间:2009年03月11日