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
Това е от мен, дано на някой му помогне :).
април 25th, 2011 on 8:35 pm
Skype Name: i_niagolov
Моля Ви пишете ми на скайпа, там ще ви отговоря с подробности, защото това съм го правил преди доста време и всичко работи перфектно!