Журнал LinuxFormat - перейти на главную

LXF137:Catcti

Материал из Linuxformat
Перейти к: навигация, поиск
Hardcore Linux Проверьте себя на крутом проекте для продвинутых пользователей

Содержание

Cacti: Стро­им графики всего

Хо­ти­те уви­деть на гра­фи­ке, что вы­тво­ря­ют ваш ком­пь­ю­тер или мар­шру­ти­за­тор за ва­шей спи­ной? Роб До­бо­зи воо­ру­жит вас ко­лю­чим рас­те­ни­ем на под­мо­гу.


От ва­ше­го про­вай­де­ра при­шло гнев­ное пись­мо: вас опять об­ви­ня­ют в пре­вы­шении ли­ми­та ска­чи­вания. Ва­ша пер­вая ре­ак­ция – это не мо­жет быть прав­дой! Ес­ли бы толь­ко про­ве­рить пол­ный тра­фик за по­следний ме­сяц, что­бы убе­дить­ся... Бла­го­да­ря Cacti вре­ме­на, когда вы сда­ва­лись на ми­лость уве­дом­лений-по-фак­ту, прошли.

Но Cacti уме­ет го­раз­до боль­ше, чем про­сто со­би­рать и ото­бра­жать тра­фик от ва­ше­го мар­шру­ти­за­то­ра. Фак­ти­че­ски, он по­мо­жет вам со­би­рать дан­ные лю­бо­го ти­па, хранить их в ба­зе, а за­тем ви­зуа­ли­зи­ро­вать с по­мо­щью од­но­го или несколь­ких гра­фи­ков, а так­же удоб­но ор­ганизо­вы­вать по­следние в ви­де де­ре­ва.

Дан­ные, ото­бра­жае­мые на гра­фи­ках, обес­пе­чи­ва­ют­ся так на­зы­вае­мы­ми источника­ми дан­ных [data sources]. По­следние вы­пол­ня­ют сбор дан­ных ли­бо с по­мо­щью SNMP [Simple Network Management Protocol], ли­бо скрип­том. Как гра­фи­ки, так и источники дан­ных мож­но оп­ре­де­лять с по­мо­щью шаб­ло­нов, где мож­но хранить их об­щие ха­рак­те­ри­сти­ки.

Вхо­дим в курс де­ла

Так че­го же ждать – уста­но­ви­те Cacti с по­мо­щью ва­ше­го менед­же­ра па­ке­тов пря­мо сей­час. Об­ра­ти­те внимание, что ему тре­бу­ют­ся Apache, MySQL, PHP (вме­сте с php-mysql), RRDTool и Net-SNMP. Ес­ли Cacti от­сут­ству­ет в ре­по­зи­то­ри­ях ва­ше­го ди­ст­ри­бу­ти­ва, ска­чай­те его с http://www.cacti.net/download_cacti.php.

Все уста­но­вив, убе­ди­тесь, что MySQL и Apache за­пу­ще­ны. Те­перь ука­жи­те в брау­зе­ре ад­рес сер­ве­ра Cacti, ко­то­рый вы­гля­дит как http://<ваш_сер­вер_с_cacti>/cacti. Ес­ли вы не знае­те, где это, по­про­буй­те http://localhost/cacti.

Ус­та­нов­ка Cacti

Ус­та­но­вить Cacti че­рез ме­нед­жер па­ке­тов до­воль­но про­сто. Од­на­ко, что­бы ин­стал­ля­ция про­шла ус­пеш­но, сле­ду­ет кое-что знать. Ме­нед­жер па­ке­тов Ubuntu за­даст вам не­сколь­ко во­про­сов. Убе­ди­тесь, что вы вы­бра­ли Apache 2, ес­ли вы поль­зуе­тесь им, ис­поль­зуй­те dbconfig-common и за­дай­те па­роль для учет­ной за­пи­си ад­ми­ни­ст­ра­то­ра MySQL. Ес­ли ос­та­вить по­ле поль­зо­ва­те­ля Cacti пус­тым, сге­не­ри­ру­ет­ся слу­чай­ный па­роль.

Ус­та­нов­ка в Fedora бо­лее тру­до­ем­кая. Во-пер­вых, там, вероятнее все­го, не­пра­виль­ные за­ви­си­мо­сти, по­это­му ни mysql-server, ни net-snmp-utils не ус­та­нав­ли­ва­ют­ся ав­то­ма­ти­че­ски. Так что до RPM Cacti сле­ду­ет ус­та­но­вить их.

Ес­ли вы ус­та­но­ви­ли MySQL впер­вые, сле­ду­ет за­дать учет­ную за­пись root для MySQL:

mysqladmin -u root password <па­роль>
mysqladmin -u root -h localhost -p password <па­роль>

Те­перь соз­дай­те и за­гру­зи­те ба­зу дан­ных cacti

mysqladmin -u root -p create cacti
mysql -u root -p cacti < /usr/share/doc/cacti-0.8.7f/cacti.sql

и соз­дай­те поль­зо­ва­те­ля cactiuser с по­мо­щью

mysql -u root -p
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘<па­роль_cactiuser>’;
mysql> flush privileges;

В фай­ле на­строй­ки Cacti сле­ду­ет из­ме­нить па­ра­мет­ры со­еди­не­ния MySQL. От­крой­те файл /usr/share/cacti/include/config.php и от­ре­дак­ти­руй­те пе­ре­мен­ные $database_username и $database_password.

Шаг за шагом: Ва­ша ло­каль­ная сис­те­ма на гра­фи­ке

Шаг 1

  • 1 На­чаль­ная уста­нов­ка
Ес­ли во вре­мя уста­нов­ки все про­шло глад­ко, вы уви­ди­те эк­ран пер­во­на­чаль­ной на­строй­ки CactiCacti installation», сле­ва, ес­ли что). Убе­ди­тесь, что в вы­па­даю­щем спи­ске вы­бра­на оп­ция New Install, и на­жми­те Next.

Шаг 2

  • 2 Про­вер­ка тре­бо­ваний
Те­перь нуж­но про­ве­рить, что все пред­ва­ри­тель­ные дан­ные за­да­ны и на странице толь­ко зе­ле­ные со­об­щения [OK: FILE FOUND]. Ес­ли это так, на­жми­те кноп­ку Finish; а ес­ли нет, при­дет­ся ис­правлять про­бле­му.

Шаг 3

  • 3 Пер­вый вход
Вас на­пра­вят на страницу вхо­да. По умол­чанию имя поль­зо­ва­те­ля и па­роль – admin. По­сле успеш­но­го вхо­да смените свой па­роль, и вас по­при­вет­ству­ет страница кон­со­ли Cacti. Те­перь мож­но со­би­рать дан­ные и стро­ить гра­фи­ки.

Шаг 4

  • 4 Гра­фик места на диске
На­жми­те на New Graphs (A). Эта страница по­ка­жет шаб­ло­ны и дан­ные, доступ­ные для вы­бран­но­го хоста. Раз­дел под на­званием Data Query [Unix – Get Mounted Partitions] со­дер­жит спи­сок всех смон­ти­ро­ван­ных раз­де­лов. Вы­бе­ри­те хо­тябы один (B) и на­жми­те Create (C). Поя­вит­ся со­об­щение, где го­во­рит­ся, что гра­фик соз­дан.

Шаг 5

  • 5 Ото­бра­жение
На­жми­те на вклад­ку Graphs (A), за­тем на кноп­ку Preview (B). Вы уви­ди­те пять гра­фи­ков. По­че­му? Из­на­чаль­но Cacti со­дер­жит че­ты­ре пре­до­пре­де­лен­ных гра­фи­ка, и вы уви­ди­те их вме­сте с за­дан­ным ва­ми гра­фи­ком диско­во­го про­стран­ства. Но этот по­следний бу­дет, ско­рее все­го, пуст, так как по умол­чанию Cacti со­би­ра­ет ин­фор­ма­цию ка­ж­дые пять ми­нут.

Шаг 6

  • 6 По­ка­зать под­роб­но­сти
По­до­ж­ди­те немно­го, за­тем щелкните на лю­бом из гра­фи­ков, и уви­ди­те под­роб­ную ин­фор­ма­цию. На­при­мер, здесь по­ка­за­на сред­няя за­груз­ка систе­мы за по­следние день, неде­лю и ме­сяц. Ши­ро­кий мак­си­мум ме­ж­ду 21‑й и 2‑й неде­ля­ми на ме­сяч­ном гра­фи­ке со­от­вет­ству­ет об­нов­лению Ubuntu до вер­сии 10.04, а про­вал в кон­це 23‑й неде­ли – се­мей­но­му празднику.

Ри­су­ем уда­лен­но

Ес­ли вы уже про­чув­ст­во­ва­ли Cacti, да­вай­те под­клю­чим­ся к уда­лен­ной сис­те­ме. Для сбо­ра дан­ных та­ко­го сор­та Cacti обыч­но по­ла­га­ет­ся на SNMP. Ко­ро­че го­во­ря, вам нуж­но на­стро­ить SNMP-сер­вис, по­том соз­дать в Cacti ис­точ­ник дан­ных, ко­то­рый счи­ты­ва­ет дан­ные с SNMP-сер­ве­ра. По­сле это­го вы смо­же­те соз­дать гра­фик, где кра­си­во по­ка­за­ны дан­ные, со­б­ран­ные Cacti.

Сле­дую­щее по­ша­го­вое ру­ко­во­дство рас­ска­зы­ва­ет, как на­стро­ить SNMP для сбо­ра уда­лен­ных дан­ных. Вы, на­при­мер, смо­же­те по­лу­чить дан­ные по ин­тер­нет-тра­фи­ку или за­груз­ке мар­шру­ти­за­то­ра. Итак, по­про­бу­ем.

Ес­ли SNMP вклю­чен, Cacti мо­жет на­блю­дать за сис­те­мой уда­лен­но, и вы смо­же­те со­сре­до­то­чить ин­фор­ма­цию о ва­шей фер­ме сер­ве­ров в од­ном мес­те. На­строй­ка SNMP на Linux-сер­ве­ре не­мно­го слож­нее, чем на мар­шру­ти­за­то­ре. Вам нуж­но ус­та­но­вить ли­бо snmpd (Ubuntu), ли­бо net-snmp (Fedora).

Ес­ли вы поль­зуе­тесь Ubuntu, от­ре­дак­ти­руй­те /etc/snmp/snmp.conf, рас­ком­мен­ти­ро­вав там стро­ку

com2sec readonly default public

Обя­за­тель­но по­ме­няй­те сло­во public на какое-либо дру­гое, которое не­про­сто у­га­дать. По­сле это­го от­ре­дак­ти­руй­те файл /etc/default/snmpd. Оты­щи­те в нем стро­ку, на­чи­наю­щую­ся с SNMPDOPTS, и уда­ли­те из ее кон­ца 127.0.0.1. Мы сде­ла­ли это, что­бы SNMP был дос­ту­пен с ма­ши­ны Cacti. По­след­ним ша­гом бу­дет пе­ре­за­пуск де­мо­на SNMP от име­ни root, та­ким об­ра­зом:

/etc/init.d/snmpd restart

В Fedora это не­мно­го ина­че. Нуж­но ре­дак­ти­ро­вать все тот же /etc/snmp/snmp.conf, но его со­дер­жи­мое бу­дет дру­гим. Най­ди­те и рас­ком­мен­ти­руй­те сле­дую­щие стро­ки:

com2sec notConfigUser default public
group notConfigGroup v2c notConfigUser
view roview included .1
access notConfigGroup “” any noauth exact roview
rwview none

Сно­ва позаботь­тесь о за­ме­не сло­ва public на дру­гое, в це­лях безо­пас­но­сти. Ко­гда за­кон­чи­те, пе­ре­за­пус­ти­те де­мо­на SNMP от име­ни root сле­дую­щей ко­ман­дой:

/etc/init.d/snmpd restart

По­след­нее – в ути­ли­те на­строй­ки бранд­мау­эра раз­ре­ши­те со­еди­не­ние на порт 161/UDP. Это по­зво­лит Cacti под­клю­чать­ся к SNMP-сер­ве­ру.

Шаг за шагом: Как на­стро­ить SNMP

Шаг 1

  • 1 Вклю­чи­те SNMP
Во-пер­вых, вклю­чи­те SNMP и оп­ре­де­ли­те RO (Read Only) Community name. Имя долж­но рас­смат­ри­вать­ся как па­роль и, сле­до­ва­тель­но, не долж­но под­да­вать­ся уга­ды­ванию. Так­же мож­но оп­ре­де­лить RW (Read Write) community name, но оно не бу­дет ис­поль­зо­вать­ся Cacti. RW Community name по­зво­лит вам или дру­гим лю­дям вы­пол­нять про­из­воль­ные из­менения в мар­шру­ти­за­то­ре, так что оно долж­но быть еще бо­лее неуга­ды­вае­мым.

Шаг 2

  • 2 Ото­бра­зи­те уст­рой­ства
По­сле на­строй­ки SNMP соз­дай­те в Cacti но­вое уст­рой­ство, что­бы мож­но бы­ло ри­со­вать гра­фи­ки. Сна­ча­ла на­жми­те вклад­ку Console (A), за­тем на Devices в ме­ню сле­ва (B). Поя­вит­ся спи­сок уже оп­ре­де­лен­ных уст­ройств. Мож­но уви­деть, что там оп­ре­де­ле­но од­но уст­рой­ство: Localhost. Что­бы до­ба­вить но­вое, на­жми­те по ссыл­ке Add в пра­вом верхнем уг­лу.

Шаг 3

  • 3 До­бавь­те уст­рой­ство
Сле­дую­щая страница по­ка­жет под­роб­ную ин­фор­ма­цию об уст­рой­стве. За­полните по­ля Description и Hostname, а в вы­па­даю­щем спи­ске Host Template (A) вы­бе­ри­те Generic SNMP-Enabled Host. Сре­ди SNMP Options вы­бе­ри­те ту вер­сию SNMP, что ис­поль­зу­ет­ся ва­шим мар­шру­ти­за­то­ром (обыч­но 2), а в по­ле SNMP Community вве­ди­те RO Community name для ва­ше­го мар­шру­ти­за­то­ра (B). На­жми­те кноп­ку Create.

Шаг 4

  • 4 Об­зор дан­ных уст­рой­ства
Сей­час вы ви­ди­те ба­зо­вую ин­фор­ма­цию о ва­шем мар­шру­ти­за­то­ре, ко­то­рую из­влек SNMP (A). Внизу эк­ра­на мож­но по­ме­нять шаб­ло­ны и за­про­сы дан­ных, свя­зан­ные с уст­рой­ством. Это по­лез­но, ес­ли вы на­строи­ли в ка­че­стве уда­лен­но­го уст­рой­ства Linux-ма­ши­ну, так как при этом мож­но со­би­рать боль­ше дан­ных. Од­на­ко сей­час ниче­го ме­нять не на­до. Луч­ше за­дай­те гра­фик, на­жав на Create Graphs For This Host link (B).

Шаг 5

  • 5 Оп­ре­де­ли­те гра­фик
Раз­дел Data Query те­перь дол­жен ото­бра­зить спи­сок всех ин­тер­фей­сов и их IP-ад­ре­сов. Вы­бе­ри­те те ин­тер­фей­сы, что вас ин­те­ре­су­ют, в ка­че­стве под­сказ­ки ис­поль­зуя IP-ад­ре­са (в на­шем слу­чае это A), а в ка­че­стве ти­па гра­фи­ка возь­ми­те In/Out Bytes With Total Bandwidth (B). На­жми­те кноп­ку Create, и долж­но поя­вить­ся ин­фор­ма­ци­он­ное со­об­щение, что гра­фик соз­дан.

Шаг 6

  • 6 Ото­бра­зи­те уст­рой­ства сно­ва
Пре­ж­де чем гля­деть на толь­ко что соз­дан­ный гра­фик, на­жми­те Devices, что­бы ото­бра­зить все имею­щие­ся уст­рой­ства (A). Для по­ряд­ка по­местим уст­рой­ство мар­шру­ти­за­то­ра на де­ре­во гра­фи­ков, что­бы от­де­лить гра­фи­ки локаль­ной систе­мы от гра­фи­ков мар­шру­ти­за­то­ра. Сна­ча­ла вы­бе­ри­те мар­шру­ти­за­тор (B), за­тем – Place On A Tree (Default Tree) из вы­па­даю­ще­го спи­ска Choose An Action (C). На­конец, на­жми­те кноп­ку Go (D), что­бы про­дол­жить.

Шаг 7

  • 7 По­мести­те уст­рой­ство в де­ре­во
Те­перь вы­бе­ри­те ме­сто на де­ре­ве, ку­да при­стро­ить гра­фи­ки мар­шру­ти­за­то­ра. Про­сто оставь­те вы­де­лен­ной корневую вет­ку и на­жми­те Yes. Ес­ли вы оп­ре­де­ли­ли соб­ствен­ные за­го­лов­ки в де­ре­ве, мо­же­те ис­поль­зо­вать их.

Шаг 8

  • 8 Про­верь­те гра­фик
На­конец, пе­рей­ди­те на вклад­ку Graphs (A) и убе­ди­тесь, что вы­бра­на вклад­ка Tree (B). Те­перь вы­бе­ри­те из Default Tree (С) ваш мар­шру­ти­за­тор, и вы долж­ны уви­деть кри­вую, опи­сы­ваю­щую ваш ин­тернет-тра­фик.

Рас­ши­ряй­те, улуч­шай­те

Монито­ринг че­рез SNMP мо­жет снаб­жать вас по­лез­ной ин­фор­ма­ци­ей, но что де­лать, ес­ли систе­ма, за ко­то­рой вы хо­ти­те сле­дить, не под­дер­жи­ва­ет его? Или – что, ес­ли Cacti не мо­жет от­сле­дить от­дель­ную ха­рак­те­ри­сти­ку систе­мы? Не пу­гай­тесь – бла­го­да­ря рас­ши­ряе­мо­сти Cacti вы смо­же­те от­сле­жи­вать поч­ти все, при­звав на по­мощь мо­ду­ли рас­ши­рения и скрип­ты. Боль­шую их часть мож­но най­ти на фо­ру­ме Cacti (http://forums.cacti.net). Поч­ти на­вер­ня­ка там име­ет­ся скрипт, со­би­раю­щий нуж­ную вам ин­фор­ма­цию. Так­же име­ет­ся спе­ци­аль­ное рас­ши­рение под на­званием Plugin Architecture (http://cactiusers.org), по­зво­ляю­щее лег­ко внедрять дру­гие мо­ду­ли. В по­следнем раз­де­ле на­ше­го учебника мы по­ка­жем, как рас­ши­рить Cacti скрип­том, ко­то­рый бу­дет со­би­рать и ото­бра­жать раз­ную ин­фор­ма­цию о MySQL.

Ска­чай­те шаб­ло­ны MySQL для Cacti

Спер­ва ска­чай­те са­мую по­след­нюю вер­сию better-cacti-templates.tar.gz с http://code.google.com/p/mysql-cactitemplates. От­крой­те ок­но тер­ми­на­ла, рас­па­куй­те ар­хив, пе­рей­ди­те в ка­та­лог scripts. Те­перь, пе­рей­дя под root (поль­зу­ясь sudo или su), ско­пи­руй­те скрипт ss_get_mysql_stats.php в ка­та­лог скрип­тов Cacti. Ему, ско­рее все­го, со­от­вет­ству­ет ли­бо /usr/share/cacti/site/scripts (Ubuntu), ли­бо /usr/share/cacti/scripts (Fedora).

Сле­дую­щий шаг – под­груз­ка шаб­ло­нов MySQL в Cacti. На­жми­те на вклад­ку Console, за­тем на Import Templates в ле­вом ме­ню. На­жми­те Browse и пе­рей­ди­те в ка­та­лог, со­дер­жа­щий рас­па­ко­ван­ные ранее фай­лы. За­тем оты­щи­те ка­та­лог с именем templates, а в нем – файл cacti_host_template_x_mysql_server_ht_<version>.xml. На­жми­те Open, а за­тем на Save.

По­сле окон­чания про­цес­са им­пор­та про­верь­те, что не бы­ло ника­ких оши­бок. Те­перь оп­ре­де­лим учет­ную запись для монито­рин­га. Это мож­но сде­лать несколь­ки­ми спо­со­ба­ми, и са­мый про­стой – соз­дать файл ss_get_mysql_stats.php.cnf в том же ка­та­ло­ге, что и скрипт, с ко­то­ро­го мы на­ча­ли. Это сле­ду­ет про­де­лать от имени root. Со­дер­жи­мое фай­ла долж­но быть та­ким:

<?php $mysql_user = “<поль­зо­ва­тель>”
$mysql_pass = “<па­роль>” ?>

По­сле это­го до­бавь­те в Cacti ба­зу дан­ных MySQL как уст­рой­ство так же, как де­ла­лось на ша­гах 2 и 3 в Как на­стро­ить SNMP. Од­на­ко на сей раз в ка­че­стве шаб­ло­на хоста вы­бе­ри­те X MySQL Server HT. Ника­ких оп­ций SNMP не ука­зы­вай­те: всю ин­фор­ма­цию пре­доста­вит сце­на­рий, ко­то­рый мы уже ско­пи­ро­ва­ли в ка­та­лог скрип­тов Cacti. По­сле на­жа­тия кноп­ки Create про­верь­те, что уст­рой­ство соз­да­лось пра­виль­но, и пе­ре­хо­ди­те к соз­данию гра­фи­ков, на­жи­мая на ссыл­ку Create Graphs For This Host (как на ша­ге 4 в Как на­стро­ить SNMP).

Оп­ре­де­ление гра­фи­ков MySQL

Про­кру­ти­те вниз на вто­рую по­ло­ви­ну страницы и от­меть­те X MySQL Connections GT, X MySQL Network Traffic GT, X MySQL Processlist GT и X MySQL Threads GT, по­сле че­го на­жми­те Create; пе­ред про­смот­ром гра­фи­ков по­мести­те уст­рой­ство на де­ре­во гра­фи­ков (как на ша­гах 6 и 7 в Как на­стро­ить SNMP).

Те­перь лю­буй­тесь гра­фи­ка­ми MySQL. Сна­ча­ла на­жми­те на вклад­ку Graphs, убе­ди­тесь, что вы­бра­на вклад­ка Tree, и по­том жми­те на MySQL. По­изу­чай­те ре­зуль­та­ты – не бой­тесь экс­пе­ри­мен­ти­ро­вать и с дру­ги­ми раз­де­ла­ми в X MySQL.

Cacti умеет ­гораздо боль­ше, чем мы вкрат­це здесь рас­смот­ре­ли. На­при­мер, при сле­жении за несколь­ки­ми сер­ве­ра­ми ме­ханизм оп­ро­са, стоя­щий по умол­чанию, мо­жет ра­бо­тать очень мед­лен­но. Тогда вам луч­ше по­зна­ко­мить­ся с де­мо­ном Spine, бо­лее бы­ст­рой аль­тер­на­ти­вой. Ес­ли вы хо­ти­те де­лить­ся гра­фи­ка­ми с дру­ги­ми поль­зо­ва­те­ля­ми, за­дей­ствуй­те встро­ен­ный ме­ханизм управ­ления учет­ны­ми запи­ся­ми. Это по­зво­лит вам за­да­вать поль­зо­ва­те­лям раз­ные уровни ав­то­ри­за­ции, что­бы они мог­ли ви­деть раз­ные гра­фи­ки или де­ре­вья. Ес­ли хо­ти­те уз­нать подробности, об­ра­ти­тесь к до­ку­мен­та­ции по Cacti или по­се­ти­те сайт http://www.cacti.net.

Персональные инструменты
купить
подписаться
Яндекс.Метрика