<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[值得参考]用php+snmp实现服务器监控程序，Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形解决方案。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Tue, 21 Aug 2012 07:07:18 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	Cacti基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测<br/>官方网站：http://www.cacti.net/<br/>演示地址：http://www.cacti.net/screenshots.php<br/>下载地址：http://www.cacti.net/download_cacti.php<br/>文章来源：http://www.OSphp.com.cn<br/>程序介绍：<br/><br/>Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形解决方案。Cacti通过snmpget来获取数据，使用RRDtool绘画图形，也可外挂Scripts及加上Templates来作出各式各样的监控图，而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能，可以指定每一个用户能查看树状结构、host以及任何一张图，还可以与LDAP结合进行用户验证，同时也能自己增加模板，功能非常强大完善，界面友好，支持插件扩展。 <br/><br/><br/><br/>转载自 xiaoxiaolq最终编辑 xiaoxiaolq值班监控服务器时，需一台台去登录查看服务器情况，很是麻烦，故用PHP SNMP做了个简单的服务器监控系统。结合了用来发短信的MAS系统，当服务器反生异常时可通过短信进行报警。<br/><br/>过程如下：<br/><br/>一、给各台被监控服务装上net-snmp<br/><br/>centos可用YUM来在线安装软件包：<br/><br/>yum -y install net-snmp net-snmp-devel net-snmp-utils net-snmp-perl<br/><br/>如果是redhat则在安装光盘中找到net-snmp这几个安装包，没有安装光盘去网上下也行，但注意要下载同一个版本的安装包.安装这些可能要一些别的软件支持，所以在安装时看还需要哪些源码包一并给装上。<br/><br/>安装命令示例：rpm -ihv net-snmp-devel-5.1.2-11.EL4.6.i386.rpm<br/><br/>安装完成后用rpm -qa &#124; grep net-snmp查看安装情况<br/><br/>修改snmpd.conf：<br/># vi /etc/snmp/snmpd.conf<br/>com2sec notConfigUser default public155<br/>access notConfigGroup “” any noauth exact all none none<br/>view all included .1 80<br/>view systemview included .1.3.6.1.2.1.2<br/><br/>启动net-snmp<br/>service snmpd start<br/><br/>测试：<br/>snmpget -v 2c -c “public155″ 127.0.0.1 .1.3.6.1.4.1.2021.10.1.3.1<br/>snmpwalk -v 1 -c “public155″ 127.0.0.1 .1.3.6.1.4.1.2021.10.1.3<br/><br/>注意：在放监控程序的服务器上要装上net-snmp-devel,net-snmp-utils我开始只装了前两个包，导致后来编译PHP的SNMP扩展时出错。其它被监控的服务器上装前两个包就行了。<br/><br/>二、给主监控服务器安装PHP的SNMP扩展<br/>先要编译sockets snmp扩展支持,源码在php的源码包里有<br/>cd /opt/php-5.2.7/ext/sockets<br/>/opt/php527/bin/phpize<br/>./configure --with-php-config=/opt/php527/bin/php-config<br/>make<br/>make install<br/><br/>编译SNMP<br/>cd /opt/php-5.2.7/ext/snmp<br/>/opt/php527/bin/phpize<br/>./configure --with-php-config=/opt/php527/bin/php-config<br/>make<br/>make install<br/><br/>复制刚编译的扩展到PHP扩展安装目录<br/>cp /opt/php527/lib/php/extensions/no-debug-non-zts-20060613/sockets.so /opt/php527/etc/<br/>cp /opt/php527/lib/php/extensions/no-debug-non-zts-20060613/snmp.so /opt/php527/etc/<br/><br/>修改php.ini<br/>vi /opt/php527/lib/php.ini<br/>加入<br/>extension=sockets.so<br/>extension=snmp.so<br/><br/>重启APACHE<br/>/opt/http2210/bin/apachectl -k graceful<br/><br/>php的监控程序当然是放在这台服务器上了，通过snmp获取各台被监控服务器的状态信息，当超出设定的警戒值后，就通过MAS系统发送信息到值班人的手机上。是不是很方便呢，呵呵。<br/><br/>ps:如果没有发送短信的系统的话，可用139邮箱的短信提示功能来做：把报警以邮件的形式发送到值班人的139邮箱，手机上就能收到短信提示了。<br/><br/>三、用PHP开发监控程序<br/><br/>列一些用到的东西：<br/><br/>查看纯代码复制到剪贴板打印?<br/>function get_server_info($host, $community, $objectid) &#123; <br/>$a = snmpget($host, $community, $objectid); <br/>$tmp = explode(&quot;:&quot;, $a); <br/>if (count($tmp) &gt; 1) &#123; <br/>$a = trim($tmp[1]); <br/>&#125; <br/>return $a; <br/>&#125; <br/><br/>$host=&quot;192.168.1.11&quot;; <br/>$community=&quot;public155&quot;; <br/>//获取$host服务器的1分钟平均负载 <br/>$load1 = get_snmp_server($host,$community,&quot;.1.3.6.1.4.1.2021.10.1.3.1&quot;) ; <br/><br/>function get_server_info($host, $community, $objectid) &#123; $a = snmpget($host, $community, $objectid); $tmp = explode(&quot;:&quot;, $a); if (count($tmp) &gt; 1) &#123; $a = trim($tmp[1]); &#125; return $a; &#125; $host=&quot;192.168.1.11&quot;; $community=&quot;public155&quot;; //获取$host服务器的1分钟平均负载 $load1 = get_snmp_server($host,$community,&quot;.1.3.6.1.4.1.2021.10.1.3.1&quot;) ;<br/>下面给出一些常见的$objectid：<br/><br/>CPU Statistics<br/><br/>Load<br/>1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1<br/>5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2<br/>15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3<br/><br/>CPU<br/>percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0<br/>raw user cpu time: .1.3.6.1.4.1.2021.11.50.0<br/>percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0<br/>raw system cpu time: .1.3.6.1.4.1.2021.11.52.0<br/>percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0<br/>raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0<br/>raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0<br/><br/>Memory Statistics<br/><br/>Total Swap Size: .1.3.6.1.4.1.2021.4.3.0<br/>Available Swap Space: .1.3.6.1.4.1.2021.4.4.0<br/>Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0<br/>Total RAM used: .1.3.6.1.4.1.2021.4.6.0<br/>Total RAM Free: .1.3.6.1.4.1.2021.4.11.0<br/>Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0<br/>Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0<br/>Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0<br/><br/>Disk Statistics<br/><br/>The snmpd.conf needs to be edited. Add the following (assuming a machine with a single / partition):<br/><br/>disk / 100000 (or)<br/><br/>includeAllDisks 10% for all partitions and disks<br/><br/>The OIDs are as follows<br/><br/>Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1<br/>Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1<br/>Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1<br/>Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1<br/>Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1<br/>Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1<br/>Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1<br/><br/>==============================================<br/> 
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [值得参考]用php+snmp实现服务器监控程序，Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形解决方案。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>