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-2net-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 kBTotal: 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
# rm -r /var/www/localhost/htdocs/cacti/install/
С това приключва инсталирането на Cacti.
2. Стандартни графики.
2.1 Малко почивка докато тръгнат първите графики :).
Лошото е че тази почивка беше 3 дена, здраво хапване и много пийване, но така се празнува Гергьовден.
2.2 Стандартни графики от Cacti.
3. Настройки на Cacti.

Променям следните параметри: “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”

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

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

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

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

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

Добавям нов “Data Source Item [traffic_out]“.
4.4 Меню - “Management -> Data Sources”

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

За “Ethernet interface” избирам “eth1″, това е интерфейса но който Cacti ще изчертава графика.
4.5 Меню - “Management -> Graph Management”

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

За “Inbound Data Source” избирам “Localhost - Traffic eth local (traffic_in)”.
За “Outbound Data Source” избирам “Localhost - Traffic eth local (traffic_out)”.
5. Краен резултат - Графика на трафика през eth1
Това е от мен, дано на някой му помогне :).













