<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>蓝色数据 &#187; cacti</title>
	<atom:link href="http://bluedata.org/tag/cacti/feed/" rel="self" type="application/rss+xml" />
	<link>http://bluedata.org</link>
	<description>奋斗是幸福的……</description>
	<lastBuildDate>Mon, 14 Sep 2009 01:53:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cacti 获取 SNMP 发送的自定义信息绘图</title>
		<link>http://bluedata.org/2009/09/10/cacti-snmp-custom/</link>
		<comments>http://bluedata.org/2009/09/10/cacti-snmp-custom/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 01:37:24 +0000</pubDate>
		<dc:creator>Bluedata</dc:creator>
				<category><![CDATA[应用技术]]></category>
		<category><![CDATA[cacti]]></category>
		<category><![CDATA[snmp]]></category>

		<guid isPermaLink="false">http://bluedata.org/?p=295</guid>
		<description><![CDATA[本文以获取 squid 内存缓存命中率为例。
在 /etc/snmp/snmpd.conf 可以看到这样的样例：
# exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest
可以使用自己编写的脚本，比如：
exec .1.3.6.1.4.1.2021.50 squidmemhits /usr/local/bin/squidmemhits.sh
vi /usr/local/bin/squidmemhits.sh
#!/bin/sh
PATH=$PATH:/usr/local/squid/bin
export PATH
squidclient -t 1 -h localhost -p 3128 mgr:info &#124; grep "Memory hits" &#124; cut -d "%" -f 2 &#124; awk '{print $5}'
squidclient -t 1 -h localhost -p 3128 mgr:info &#124; grep "Memory hits" &#124; cut -d "%" -f 3 &#124; awk [...]]]></description>
			<content:encoded><![CDATA[<p>本文以获取 squid 内存缓存命中率为例。</p>
<p>在 /etc/snmp/snmpd.conf 可以看到这样的样例：<br />
# exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest<br />
可以使用自己编写的脚本，比如：<br />
exec .1.3.6.1.4.1.2021.50 squidmemhits /usr/local/bin/squidmemhits.sh</p>
<p>vi /usr/local/bin/squidmemhits.sh<br />
<coolcode linenum="off">#!/bin/sh<br />
PATH=$PATH:/usr/local/squid/bin<br />
export PATH<br />
squidclient -t 1 -h localhost -p 3128 mgr:info | grep "Memory hits" | cut -d "%" -f 2 | awk '{print $5}'<br />
squidclient -t 1 -h localhost -p 3128 mgr:info | grep "Memory hits" | cut -d "%" -f 3 | awk '{print $3}'</coolcode></p>
<p>/etc/init.d/snmpd restart</p>
<p>检查一下能否读取到数据：<br />
snmpwalk -v 2c 192.168.0.200 -c public .1.3.6.1.4.1.2021.50<br />
<coolcode linenum="off">UCD-SNMP-MIB::ucdavis.50.1.1 = INTEGER: 1<br />
UCD-SNMP-MIB::ucdavis.50.2.1 = STRING: "squidmemhits"<br />
UCD-SNMP-MIB::ucdavis.50.3.1 = STRING: "/usr/local/bin/squidmemhits.sh"<br />
UCD-SNMP-MIB::ucdavis.50.100.1 = INTEGER: 0<br />
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "86.0"<br />
UCD-SNMP-MIB::ucdavis.50.101.2 = STRING: "86.6"<br />
UCD-SNMP-MIB::ucdavis.50.102.1 = INTEGER: 0<br />
UCD-SNMP-MIB::ucdavis.50.103.1 = ""</coolcode></p>
<p>其中<br />
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "86.0"<br />
UCD-SNMP-MIB::ucdavis.50.101.2 = STRING: "86.6"<br />
这两行就是所需要的。<br />
<coolcode linenum="off">snmpwalk -v 1 192.168.0.200 -c public .1.3.6.1.4.1.2021.50.101.1<br />
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "86.0"<br />
snmpwalk -v 1 192.168.0.200 -c public .1.3.6.1.4.1.2021.50.101.2<br />
UCD-SNMP-MIB::ucdavis.50.101.2 = STRING: "86.6"</coolcode></p>
<p>能采集到数据，就可以配置 Cacti 来接收了。<br />
先创建数据模板：<br />
<coolcode linenum="off">console -> Templates -> Data Templates -> Add -><br />
Data Templates Name: ucd/net - Squid - Memory Hits - 5 Minute<br />
Data Source Name: |host_description| - Squid - Memory Hits - 5 Minute<br />
Data Input Method: GET SNMP Data<br />
Associated RRA's: remove Hourly (1 Minute Average)<br />
Internal Data Source Name: squid_memhits_5min<br />
create -><br />
OID: .1.3.6.1.4.1.2021.50.101.1<br />
Save<br />
</coolcode><br />
同样再创建一个 Squid - Memory Hits - 60 Minute 的数据模板。</p>
<p>再创建图形模板：<br />
<coolcode linenum="off">console -> Templates -> Graph Templates -> Add -><br />
Name: ucd/net - Squid Memory Hits<br />
Title: |host_description| - Squid Memory Hits<br />
Vertical Label: percent<br />
create</p>
<p>Graph Template Items -> Add<br />
Data Source: ucd/net - Squid - Memory Hits - 5 Minute - (squid_memhits_5min)<br />
Color: FFC73B<br />
Graph Item Type: AREA<br />
Consolidation Function: AVERAGE<br />
Text Format: 5 Minute<br />
create -><br />
Graph Template Items -> Add<br />
Graph Item Type: GPRINT<br />
Consolidation Function: LAST<br />
Text Format: Current:<br />
Insert Hard Return<br />
create -></p>
<p>Graph Template Items -> Add<br />
Data Source: ucd/net - Squid - Memory Hits - 60 Minute - (squid_memhits_60min)<br />
Color: FF0000<br />
Graph Item Type: LINE1<br />
Consolidation Function: AVERAGE<br />
Text Format: 60 Minute<br />
create -><br />
Graph Template Items -> Add<br />
Graph Item Type: GPRINT<br />
Consolidation Function: LAST<br />
Text Format: Current:<br />
Insert Hard Return<br />
create -> Save</coolcode></p>
<p>然后就可以选择主机，添加图形了。</p>
<p>样例图：<br />
<img src="http://bluedata.org/wp-content/uploads/2009/09/squidmemhits.jpg" alt="squidmemhits" /></p>
]]></content:encoded>
			<wfw:commentRss>http://bluedata.org/2009/09/10/cacti-snmp-custom/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
