<?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; rrdtest</title>
	<atom:link href="http://blog.walker-bg.info/tag/rrdtest/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.walker-bg.info</link>
	<description>Поредният WordPress блог - що пък не? :P</description>
	<lastBuildDate>Tue, 10 Jan 2012 21:44:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Работа с RRDtool</title>
		<link>http://blog.walker-bg.info/2010/01/17/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-rrdtool/</link>
		<comments>http://blog.walker-bg.info/2010/01/17/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-rrdtool/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 18:38:04 +0000</pubDate>
		<dc:creator>Walker</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[rrdtest]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[линукс]]></category>
		<category><![CDATA[настройка]]></category>

		<guid isPermaLink="false">http://blog.walker-bg.info/?p=49</guid>
		<description><![CDATA[Ще започнем с малко информация относно RRDtool. RRDtool служи за високопроизводително следене на системата и се използва за написваме на самостоятелни шел скриптове за мониторинг. RRDtool използва самостоятелна база от данни, която е създадена специално за мониторинг и в нея няма нищo излишно, което от своя страна го прави бърз за обработка на данни. В [...]]]></description>
			<content:encoded><![CDATA[<p>Ще започнем с малко информация относно RRDtool.<br />
RRDtool служи за високопроизводително следене на системата и се използва за написваме на самостоятелни шел скриптове за мониторинг.<br />
RRDtool използва самостоятелна база от данни, която е създадена специално за мониторинг и в нея няма нищo излишно, което от своя страна го прави бърз за обработка на данни.<br />
<span id="more-49"></span></p>
<p>В случая тестовата машина е с Debian и за да бъде инсалиран пакета трябва да въведете следното:</p>
<pre>apt-get install rrdtool</pre>
<p>По този начин ще бъде инсталирано всичко необходимо за да извършите това HowTo.<br />
Най-лесно ще разберете как работи rrdtool с пример.<br />
Въведете следната команда:</p>
<pre>rrdtool create example.rrd --start 1263753900 --step 300 DS:mem:GAUGE:600:0:671744 RRA:AVERAGE:0.5:12:24 RRA:AVERAGE:0.5:288:31</pre>
<p>Което ще създаде файл ( база ) с име example.rrd , започващ от 1263753900 което е тъй наречения unix timestamp ( можете да използвате калкулатора от следния адрес: http://www.unixtimestamp.com/index.php )<br />
По време на обновяване на базата трябва да зададете и &#8222;update time&#8220; което е пак в timestamp .</p>
<p>&#8211;step 300 &#8211; показва, че базата ще очаква нови стойности на всеки 300 секунди ( 5мин )</p>
<p>DS (Data Sorce) е променлива сочеща към параметрите на устройстово (данните) от наблюдението . Нейния синтаксис е:<br />
DS:variable_name:DST:heartbeat:min:max<br />
&#8216;variable_name&#8217; &#8211; име под което параметрите (данните) запазват стойностите от &#8222;наблюдението&#8220;.</p>
<ul>
<li> DST (Data Source Type) &#8211; може да бъде COUNTER, DERIVE, ABSOLUTE, GAUGE.</li>
</ul>
<ul>
<li><em>COUNTER</em> се използва, когато се очаква при всяко обновяване да има положителни ( нарастващи ) разлики в стойностите. На пример следене на преминал трафик през даден рутер.</li>
</ul>
<ul>
<li><em>DERIVE</em> се използва е подобен на COUNTER с тази разлика, че е подходящ и за отрицателни ( намаляващи ) стойности. На пример промяна в дисково пространсто.</li>
</ul>
<ul>
<li><em>ABSOLUTE </em>- пести скоростта за промяна, но приема, че предната стойност е била равна на 0.</li>
</ul>
<ul>
<li> <em>GAUGE</em> &#8211; не запазва промяната, а запазва действителната стойност. Може да се използва за следене на заетата памет.</li>
</ul>
<ul>
<li>heartbeat &#8211; задава се колко време ще се изкачва за получаване на стойности. Примерно времето през което трябва да се получават стойности е зададено на 300, но не е било получено такава, тогава ще се изчака още 300 ( 300+300=600) и ако до тогава пак не бъде получена стойност, в базада ще бъде записано UNKNOWN.</li>
</ul>
<p>Със следващите параметри се задава минимум и максимум на получените стойности. Всяка стойност която не влиза в тези параметри ще бъде записана като UNKNOWN.</p>
<p>Следва задаваме на Round Robin Archive (RRA), който има следния синтаксис:<br />
RRA:CF:xff:step:rows<br />
Където:</p>
<ul>
<li> RRA &#8211; ключова дума за задаване на архив.</li>
</ul>
<ul>
<li> CF &#8211; consolidation function, която може да бъде AVERAGE (средна стойност за периодна на отчитане), MINIMUM (минимална стойност за периода на отчитане), MAXIMUM (максимална стойност за периода на отчитане), и LAST ( последна стойност за периода на отчитане )</li>
</ul>
<ul>
<li> xff &#8211; какъв процент от &#8222;UNKNOWN&#8220; стойности е разрешен по време на отчитане. Обикновенно се задава 0.5 което означава 50%.</li>
</ul>
<ul>
<li> step &#8211; колко стъпки ще се използват за създаването на стойност в архива. Ако стойността е малка, то толкова по-точни ще са данните ( подходящо за постоянно следене), а ако е голяма, тогава се получава осреднена стойност и е подходяща за статистика ( месечна, годишна &#8230; ). 288 стъпки се равняват на едно денонощие. (288 стъпки Х 300 секунди /60 ( получава се в минути в минути ) /60 ( за да се получи в часове ) = 24 часа )</li>
</ul>
<ul>
<li> rows &#8211; определея колко голяма ще бъде базата ( колко реда ще има ) за запазване на данните. Съответно, когато се изпълнят редовете данните почват да се вартят по алгоритъма на &#8222;първи влезнал, първи излязал&#8220;.</li>
</ul>
<p>От написаното горе трябва да сте разбрали, че с <em>RRA:AVERAGE:0.5:12:24</em> задаваме в базата да се пазят средните стойности от данните на всеки час в 24 реда ( тоес за едно денонощие).<br />
<em>RRA:AVERAGE:0.5:288:31</em> от своя страна означава &#8211; да се запазват средните стойности за един ден в 31 реда, което би служило за месечна статистика.</p>
<p>Една база може да съдържа различни статистически данни &#8211; на пример за час, ден, седмица, месец и година чрез задаване на няколко архива (RRA)</p>
<p><strong>Добавяне на данни</strong></p>
<p>Ще разлгедаме няколко вида обновявания.</p>
<pre>rrdtool update example.rrd N:1:2</pre>
<p>където N значи &#8211; сега, а след двете точки са стойностите, които да се добавят.</p>
<pre>rrdtool update example.rrd 1263754200:1:2:3:4:5:U:7</pre>
<p>където времето се посочва в timestamp , а &#8222;U&#8220; означава UNKNOWN стойност.</p>
<pre>rrdtool update example.rrd "jan 9 2010 18:20@3210"</pre>
<p>Тук виждате как се задава датата и часа , а след @ се поставят стойностите.</p>
<p>Също така можете и по следния начин да задавате стойности:</p>
<pre>rrdtool update example.rrd 1263754200:0:0 1263754500:100:200 1263754800:400:300</pre>
<p>Преглед на данните от базата данни става чрез командата fetch:</p>
<pre>$ rrdtool fetch example.rrd AVERAGE --start "17:00" --end N                            mem

1263827100: 1.7300000000e+03
1263827400: 7.3000000000e+02
1263827700: 7.3900000000e+03
1263828000: 9.0000000000e+01
1263828300: 1.9000000000e+02
1263828600: 6.9000000000e+02
1263828900: 1.6900000000e+03
1263829200: -nan</pre>
<p>A създаването на графика чрез:</p>
<pre> rrdtool graph graph.png  --start "17:00: --end N DEF:test1=example.rrd:mem:AVERAGE  LINE2:test1#FF0000</pre>
<p>Което ще създаде файл (картинка) с име graph.png където:</p>
<ul>
<li> &#8212; start &#8211; oт кога да започне извадката</li>
</ul>
<ul>
<li> &#8212; end &#8211; до кога да е извадката</li>
</ul>
<ul>
<li> DEF &#8211; ключова дума</li>
</ul>
<ul>
<li> test1 &#8211; място където задавате променлива, която да извикате при чертането</li>
</ul>
<ul>
<li> example.rrd &#8211; базата от която да се четата стойностите</li>
</ul>
<ul>
<li> mem &#8211; под дова име са запазени стойносттите в базата</li>
</ul>
<ul>
<li> LINE1 / LINE2 &#8211; колко дебела да бъде линията на изчертаване</li>
</ul>
<ul>
<li> test1 &#8211; извикваме променливата</li>
</ul>
<ul>
<li> #FF0000 &#8211; цвят на линията</li>
</ul>
<p>И ето какво се получи с зададените от мен данни:</p>
<p><a href="http://blog.walker-bg.info/wp-content/uploads/2010/01/graph.png" rel="lightbox[49]" title="graph"><img class="alignnone size-medium wp-image-65" title="graph" src="http://blog.walker-bg.info/wp-content/uploads/2010/01/graph-300x92.png" alt="" width="300" height="92" /></a></p>
<p>Следва продъжение&#8230;</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.walker-bg.info%2F2010%2F01%2F17%2F%25d1%2580%25d0%25b0%25d0%25b1%25d0%25be%25d1%2582%25d0%25b0-%25d1%2581-rrdtool%2F&amp;title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%20%D1%81%20RRDtool" id="wpa2a_2"><img src="http://blog.walker-bg.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.walker-bg.info/2010/01/17/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-rrdtool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

