<?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>一个故事@MySQL DBA &#187; Cacti</title>
	<atom:link href="http://www.orczhou.com/index.php/tag/cacti/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.orczhou.com</link>
	<description>一个故事@MySQL DBA</description>
	<lastBuildDate>Tue, 24 Aug 2010 01:44:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>使用Cacti监控MySQL</title>
		<link>http://www.orczhou.com/index.php/2009/11/cacti-mysql-1/</link>
		<comments>http://www.orczhou.com/index.php/2009/11/cacti-mysql-1/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 14:18:26 +0000</pubDate>
		<dc:creator>orczhou</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Cacti]]></category>

		<guid isPermaLink="false">http://orczhou.com/?p=963</guid>
		<description><![CDATA[<p>本文将<strong>概述</strong>一些自己在使用中的问题（并不会给出step by step的使用介绍），以供参考，详细信息请留言或<a href="http://www.flickr.com/photos/26825745@N06/3933896112/" title="mail by orczhou, on Flickr"><img src="http://farm3.static.flickr.com/2614/3933896112_8ebfd42177_o.png" width="163" height="22" alt="mail" /></a>。</p>
<p>既然别人的轮子已经很好用了，我自己就不发明了。使用Cacti可以较为快速搭建一个MySQL性能监控平台：</p>
<p><a href="http://www.flickr.com/photos/26825745@N06/4094788239/" title="blogcacti-3 by orczhou, on Flickr"><img src="http://farm3.static.flickr.com/2433/4094788239_470a24ec4d_o.jpg" width="395" height="345" alt="blogcacti-3" /></a></p>
<p>[......]</p><p class='read-more'><a href='http://www.orczhou.com/index.php/2009/11/cacti-mysql-1/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>本文将<strong>概述</strong>一些自己在使用中的问题（并不会给出step by step的使用介绍），以供参考，详细信息请留言或<a  href="http://www.flickr.com/photos/26825745@N06/3933896112/" title="mail by orczhou, on Flickr"><img src="http://farm3.static.flickr.com/2614/3933896112_8ebfd42177_o.png" width="163" height="22" alt="mail" /></a>。</p>
<p>既然别人的轮子已经很好用了，我自己就不发明了。使用Cacti可以较为快速搭建一个MySQL性能监控平台：</p>
<p><a href="http://www.flickr.com/photos/26825745@N06/4094788239/" title="blogcacti-3 by orczhou, on Flickr"><img src="http://farm3.static.flickr.com/2433/4094788239_470a24ec4d_o.jpg" width="395" height="345" alt="blogcacti-3" /></a></p>
<p><span id="more-963"></span><br />
Cacti是一个用于监控网络流量、主机负载的工具，并可以将这些采集到的数值信息转换为图形展示。Cacti使用RRDtool实现数据存储和绘图，可以方便、美观的实现数据图形化。通过给Cacti增加MySQL的<a href="http://code.google.com/p/mysql-cacti-templates/">监控模板</a>，就能够实现对MySQL相关参数的监控和图形展示。</p>
<p>关于Cacti配合MySQL模板的安装和使用可以参考文章：</p>
<ul>
<li><a href="http://docs.cacti.net/manual:087">Cacti Manual 0.8.7</a></li>
<li><a href="http://code.google.com/p/mysql-cacti-templates/">mysql-cacti-templates</a></li>
<li><a href="http://www.askwan.com/post/48/">CentOs下Cacti和Rrdtool安装配置</a></li>
<li><a href="http://xok.la/2009/05/cacti_mysql_monitor.html">给Cacti安装mysql服务监控插件</a></li>
<li><a href="http://www.cacti.net/downloads/docs/html/faq.html">Cacti FAQ</a></li>
<li><a href="http://www.joecen.com/article/cacti/cactifaq/">非官方的FAQ</a></li>
</ul>
<p><br/></p>
<p style="text-indent:0"><font size=4><b>一、	安装中的问题</b></font></p>
<p>Cacti的安装是一个复杂的工程，需要安装PHP（需要某些模块）、httpd、RRDtool等。</p>
<p><font size=3><strong>1.	php缺少某些模块</strong></font></p>
<p>如果你用的是默认安装php，你可能甚至连mysql模块都没有，这时候，你需要给你php安装上一些需要的模块。例如：mysql,curl等。</p>
<p><font size=3><strong>2.	RRDtool版本</strong></font></p>
<p>Cacti使用RRDtool存储数据、绘制图形。这里需要注意的是，在安装好RRDtool后，必需要到Cacti的后台，填写RRDtool的相关配置，例如安装路径、版本等。</p>
<p style="text-indent:0"><font size=4><b>二、	使用中的问题</b></font></p>
<p><font size=3><strong>1.	数据接近0的时候，显示奇怪的数据</strong></font></p>
<p>如下图，在数据接近于0的时候我们会看到数据显示的是100m：<br />
<a href="http://www.flickr.com/photos/26825745@N06/4088762467/" title="cacti-1 by orczhou, on Flickr"><img src="http://farm3.static.flickr.com/2423/4088762467_dd49371a7c_o.jpg" width="460" height="149" alt="cacti-1" /></a></p>
<p>事实上，这里的单位 m 表示微，即需要除以1000。100m表示0.1。</p>
<p>Cacti中使用如下单位：M（兆）、K（千）、m（微）。</p>
<p><font size=3><strong>2.	日志中的奇怪错误</strong></font></p>
<p>在Cacti运行一段时间后，我在Cacti的log中看到如下错误：CMDPHP: Poller[0] Host[16] DS[25] WARNING: Result from CMD not valid. Partial Result: U……  貌似这是一个<a href="http://code.google.com/p/mysql-cacti-templates/issues/detail?id=23">bug</a>。将Poller Type改为<a href="http://www.cacti.net/spine_info.php">spine</a>可以避免这个问题。</p>
<p><font size=3><strong>3.	采集到异常数据</strong></font></p>
<p>Cacti有时会采集到一些异常的数据，例如，采集到一些非常大（比正常数据大100倍）。这时候，绘制图形的时候，会看到纵坐标的比例会被这些数据拉大到K甚至M，以至于正常数据已经无法观察了。</p>
<p>导致这种异常数据的原因有很多，这里给出两个剔除这些异常的办法</p>
<ul>
<li>先用rrdtool dump出RRA文件中的数据，删除异常数据，然后使用rrdtool restore数据</li>
<li>修改Cacti模板中的Data Source模板，设置一个合理的最大值(Maximum Value)</li>
</ul>
<p><br/></p>
<p><font size=3><strong>4.	采集使用的MySQL用户需要什么权限</strong></font></p>
<p>因为需要执行SHOW /*!50002 GLOBAL */ STATUS、SHOW SLAVE STATUS、SHOW /*!50000 ENGINE*/ INNODB STATUS等权限，所以一般需要如下权限设置：<br />
<block>
<pre>
         GRANT PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'cacti'@'%'
</pre>
<p></block></p>
<p>需要注意的是，不需要ALL PRIVILEGES。</p>
<p style="text-indent:0"><font size=4><b>三、	一些改进</b></font></p>
<p><font size=3><strong>1.	修改采集、展示数据的步长（interval）</strong></font></p>
<p>默认下，Cacti是每隔五分钟采集一次数据，并存放到rra文件中，现在希望修改为每隔一份采集、展示相关数据。我们需要做如下修改：</p>
<ul>
<li>选择console=>Settings=>Poller，把其中的Poller Interval和Cron Interval改为Every Minute。</li>
<li>修改crontab中的采集脚本为*/1 * * * * php /www/cacti/poller.php > /dev/null 2>&#038;1</li>
<li>最后，你还需要修改Data Template中的step值，将其修改为60</li>
</ul>
<p><br/></p>
<p><font size=3><strong>2.	批量增加Device</strong></font></p>
<p>如果待监控的主机数量很多的时候，一台台添加Device是很痛苦的，可以通过编写一些脚本来实现批量增加Device。</p>
<p>这里提供一个编写批量脚本的思路：通过编写一个页面接收添加Device时，需要Post的表单的数据，然后使用curl模拟表单提交。实践证明这种方式是可行的，事实上，我就使用这样的脚本来批量添加Device的。</p>
<p><font size=3><strong>3.	我的主机端口不是3306</strong></font></p>
<p>使用mysql-cacti-templates模板的时候，如果你的端口不是3306的话，mysql-cacti-templates中的脚本是无法正确的连接目标主机的MySQL的。这时候，只需对模板中的采集脚本做一个小小的修改就可以了。大约在脚本的226行下面增加如下内容</p>
<blockquote><pre>
$conn = @mysql_connect($options['host'], $user, $pass);
    //Modified by orczhou
    //Now we'll try some other Ports.
if ( !$conn ) {
        $conn = @mysql_connect($options['host'].":3307", $user, $pass);
}
</pre>
</blockquote>
<p>这就是我在使用过程中遇到的一些问题与解决，你有什么好的经验呢？分享一下吧</p>
]]></content:encoded>
			<wfw:commentRss>http://www.orczhou.com/index.php/2009/11/cacti-mysql-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
