Ceci & Tati

Cacti + scripts + Gentoo = Графика на трафика през eth1

от на май.11, 2010, категории Линукс, Мрежата

Доскоро всичките ми графики бяха разхвърлени из сървъри те ми, изчертавани от MRTG и RRDTool. Затова реших да събера всички графики на едно място и се сетих за един стар приятел, а именно Cacti.
Така да се каже, това се прави накрая когато мрежата ти е стабилна и имаш повечко свободно време :).

1. Инсталиране на Cacti.

1.1 Emerge

# emerge -s cacti
Searching…
[ Results for search key : cacti ]
[ Applications found : 2 ]

net-analyzer/cacti
Latest version available: 0.8.7e-r1
Latest version installed: [ Not Installed ]
Size of files: 2,201 kB
Homepage: http://www.cacti.net/
Description: Cacti is a complete frontend to rrdtool
License: GPL-2

net-analyzer/cacti-spine
Latest version available: 0.8.7e-r1
Latest version installed: [ Not Installed ]
Size of files: 770 kB
Homepage: http://cacti.net/spine_info.php
Description: Spine is a fast poller for Cacti (formerly known as Cactid)
License: LGPL-2.1

# emerge -av cacti cacti-spine

These are the packages that would be merged, in order:

Calculating dependencies… done!
[ebuild N ] dev-php/adodb-5.08a 526 kB
[ebuild N ] net-analyzer/cacti-0.8.7e-r1 USE=“snmp -doc -vhosts“ 2,202 kB
[ebuild N ] net-analyzer/cacti-spine-0.8.7e-r1 771 kB

Total: 3 packages (3 new), Size of downloads: 3,498 kB

Would you like to merge these packages? [Yes/No] Yes

1.2 Копиране

# cp -a /usr/share/webapps/cacti/0.8.7e-r1/htdocs/ /var/www/localhost/htdocs/cacti

1.3 Mysql

mysqladmin -p –user=root create cacti
mysql -u root -p cacti < /var/www/localhost/htdocs/cacti/cacti.sql
rm /var/www/localhost/htdocs/cacti/cacti.sql
mysql -p –user=root mysql
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘somepassword’;
mysql> flush privileges;
mysql> quit

1.4 Редактиране на файла „/var/www/localhost/htdocs/cacti/include/config.php“

<?php
$database_type = „mysql“;
$database_default = „cacti“;
$database_hostname = „localhost“;
$database_username = „cactiuser“;
$database_password = „somepassword“;
$database_port = „3306“;
?>

1.5 Apache
Създаване на файл „/etc/apache2/vhosts.d/cacti.conf“ и рестартиране на web сървъра.

<Directory „/var/www/cacti.sharcom.org/htdocs/rra“>
<IfModule mod_php5.c>
php_admin_flag engine off
</IfModule>
</Directory>

1.6 Crontab
Долните два реда се добавят в „/etc/crontab“ и се рестартира демона.

#cacti
*/1 * * * * apache /usr/bin/php /var/www/localhost/htdocs/cacti/poller.php > /dev/null 2>&1

1.7 Web

cacti1


cacti2


cacti2


cacti2


cacti2


cacti2

# rm -r /var/www/localhost/htdocs/cacti/install/

С това приключва инсталирането на Cacti.

2. Стандартни графики.

2.1 Малко почивка докато тръгнат първите графики :).

Лошото е че тази почивка беше 3 дена, здраво хапване и много пийване, но така се празнува Гергьовден.

2.2 Стандартни графики от Cacti.


cacti2


cacti2


cacti2

3. Настройки на Cacti.


cacti2

Променям следните параметри: „Poller Interval“ и „Cron Interval“ от 5 мин. на 1 мин.

4. Графика на трафика през eth1.

4.1 Създаване на скрипта „/var/www/localhost/htdocs/cacti/scripts/traffic_port.pl“.

#!/usr/bin/perl

$interface = $ARGV[0];

#system „echo  interface-$interface >> /tmp/interface“;

if ($interface) {
#get input traffic eth
open(TRAF_IN, „ifconfig $interface | grep \“RX bytes\“ |“);
$avg = <TRAF_IN>;
close(TRAF_IN);

$avg =~ m/TX bytes:(\w+)/;
#$avgg=$1*8;
$avgg=$1;
$avg1 =“TX:$avgg“;
#print „$1 \n“;

$avg =~ m/RX bytes:(\w+)/;
#$avgg=$1*8;
$avgg=$1;
$avg2 =“RX:$avgg“;
#print „$1 \n“;

#print „$avg1 $avg2 \n“;
print „$avg1 $avg2“;

#print „U“;              # avoid cacti errors, but do not fake rrdtool stats

4.2 Меню – „Collection Methods -> Data Input Methods“


cacti2


cacti2

Създавам нов „Data Input Methods“.


cacti2

Създавам „Input Fields“, който по-късно ще бъдат използвани в меню „Templates -> Data Templates -> Custom Data“.


cacti2

Създавам два „Output Fields“ за RX и TX трафика, които по-късно ще бъдат използвани в меню „Templates -> Data Templates -> Data Source Item“.


cacti2

Това е крайния резултат.

4.3 Меню – „Templates -> Data Templates“


cacti2

Създавам нов „Data Templates“.


cacti2

След като създавам новия „Data Templates“, чеквам Custom Data -> Ethernet interface -> Use Per-Data Source Value (Ignore this Value), за да мога по-късно да окажа мрежовата карта в менюто Templates -> Data Sources, а не сега.


cacti2

Добавям нов „Data Source Item [traffic_out]“.

4.4 Меню – „Management -> Data Sources“


cacti2

За „Selected Data Template“ избирам „Interface – Traffic eth local“ (който беше създаден в т.4.3), a за „Host“ – „Localhost(127.0.0.1)“


cacti2

За „Ethernet interface“ избирам „eth1“, това е интерфейса но който Cacti ще изчертава графика.

4.5 Меню – „Management -> Graph Management“


cacti2

За „Graph Template Selection“ -> „Selected Graph Template“ избирам „Interface – Traffic (bits/sec)“, а за „Host“ – „Localhost(127.0.0.1)“


cacti2

За „Inbound Data Source“ избирам „Localhost – Traffic eth local (traffic_in)“.
За „Outbound Data Source“ избирам „Localhost – Traffic eth local (traffic_out)“.

5. Краен резултат – Графика на трафика през eth1


cacti2


cacti2


cacti2

Това е от мен, дано на някой му помогне :).


1 Comment for this entry

  • Илия Няголов

    Skype Name: i_niagolov
    Моля Ви пишете ми на скайпа, там ще ви отговоря с подробности, защото това съм го правил преди доста време и всичко работи перфектно!

Вашият коментар

*
За да докажете че не сте бот, въведете този код
Anti-Spam Image

Нещто не намирате ли?

Потърси в блога ми:

Моля Ви не прекалявайте с информацията!