Документация по ОС FreeBSD Понедельник, 29.04.2024, 05:07
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

cacti - наблюдение за хостами по SNMP [2008]
Захотелось, как белому человеку, мониторить свои хосты удалённо по SNMP - как совсем взрослому :) Чтоб была загрузка каналов, загрузка ЦП, и прочие милые вещщи. Ну, и разумеется хотелось, чтобы всё это было красиво - т.е. веб-интерфейс ко всему неплохобы. Вначале хотел сам всё написать, но потом подсказали, что изобретать велосипед не надо - его уже изобрели :))) Итак, добрые люди подсказали прогу - cacti. Нашлась такая в портах:

/usr/home/lissyara/>cd /usr/ports
/usr/ports/>make search name='cacti'
Port: cacti-0.8.6h_41
Path: /usr/ports/net/cacti
Info: Web-driven graphing interface for RRDTool
Maint: sem@FreeBSD.org
B-deps: ldconfig_compat-1.0_6 mysql-client-4.1.18_1 rc_subr-1.31_1 readline-5.1
R-deps: apache-1.3.34_4 expat-2.0.0_1 freetype2-2.1.10_3 ldconfig_compat-1.0_6
libart_lgpl2-2.3.17_1 libgnugetopt-1.2 mysql-client-4.1.18_1 net-snmp-5.2.2_1
php4-4.4.2_1 php4-mysql-4.4.2_1 php4-pcre-4.4.2_1 php4-session-4.4.2_1
php4-xml-4.4.2_1
pkgconfig-0.20 png-1.2.8_3 rc_subr-1.31_1 readline-5.1 rrdtool-1.2.12_1
WWW: http://www.cacti.net

Port: cactid-0.8.6.g
Path: /usr/ports/net/cactid
Info: A multithreaded poller for Cacti written in C
Maint: clement@FreeBSD.org
B-deps: ldconfig_compat-1.0_6 mysql-client-4.1.18_1 net-snmp-5.2.2_1 rc_subr-1.31_1
readline-5.1
R-deps: ldconfig_compat-1.0_6 mysql-client-4.1.18_1 net-snmp-5.2.2_1 rc_subr-1.31_1
readline-5.1
WWW: http://www.cacti.net/cactid_info.php

/usr/ports/>
/usr/ports/>cd /usr/ports/net/cacti
/usr/ports/net/cacti/>make && make install && make clean

Надо заметить, что за собой оно тащит много интересный вещщей, типа snmp-модуль к php, net-snmp...
Облом. Хочет новый экспат, а у мя старый. Надо обновить:
===> Installing for expat-2.0.0_1
===> Generating temporary packing list
===> Checking if textproc/expat2 already installed
===> An older version of textproc/expat2 is already installed (expat-1.95.8)
 You may wish to ``make deinstall'' and install this port again
 by ``make reinstall'' to upgrade it properly.
 If you really wish to overwrite the old port of textproc/expat2
 without deleting it first, set the variable "FORCE_PKG_REGISTER"
 in your environment or the "make install" command line.
*** Error code 1

Stop in /usr/ports/textproc/expat2.
*** Error code 1

Stop in /usr/ports/textproc/php4-xml.
*** Error code 1

Stop in /usr/ports/net/cacti.
/usr/ports/net/cacti/>

Надо, так надо. Обновляем и сразу фиксим порты:
/usr/ports/net/cacti/>portupgrade expat-1.95.8
/usr/ports/net/cacti/>pkgdb -F

После чего снова запускаем установку:
/usr/ports/net/cacti/>make clean && make && make install && make clean
.......................
.......................
.......................

=======================================================================
Cacti is now installed. If you intall it for the first time,
you may have to follow this steps to make it work correctly:

1. Create the MySQL database:
# mysqladmin --user=root create cacti
2. Create a mysql user/password for cacti:
 (change user and/or password if requered)
# echo "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser';
FLUSH PRIVILEGES;" | mysql
3. Import the default cacti database:
# mysql cacti < /usr/local/share/cacti/cacti.sql
4. Edit /usr/local/share/cacti/include/db-settings.php.
5. Add a line to your /etc/crontab file similar to:
*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php >
/dev/null 2>&1
6. Add alias in apache config for the cacti dir:
Alias /cacti "/usr/local/share/cacti/"
7. Open a cacti login page in your web browser and login with admin/admin.

If you update cacti, open a login page right now. An updating process
will run automatically.
=======================================================================

По окончании установуи вылазиет инструкция чё делать дальше. Вот ей и следуем. Создаём БД:
/usr/home/lissyara/>mysql --user=root --password=passwd_mysql \
? --execute="CREATE DATABASE cacti"

Даём права юзеру, и создаём его:
/usr/home/lissyara/>mysql --user=root --password=passwd_mysql \
? --execute="GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY \
? 'cactiuser'; FLUSH PRIVILEGES;"

Меняем пассворд, на свой:
/usr/home/lissyara/>mysql --user=root --password=passwd_mysql \
? --execute="SET PASSWORD FOR 'cactiuser'@'localhost'=PASSWORD('cacti')"

Создаём таблицы в БД, по дампу, что идёт с программой:
/usr/home/lissyara/>mysql --user=cactiuser --password=cacti \
? --database=cacti < /usr/local/share/cacti/cacti.sql
/usr/home/lissyara/>

Затем рихтуем конфиг WEB-морды cacti до такого состояния:
/usr/local/share/cacti/include/db-settings.php

/* make sure these values refect your actual database/host/user/password */
$database_type "mysql";
$database_default "cacti";
$database_hostname "localhost";
$database_username "cactiuser";
$database_password "cacti";
$database_port "3306";
?>

Ну, и рихтуем конфиг апача - /usr/local/etc/apache/httpd.conf, вносим такие строки:
 Alias /cacti/ "/usr/local/share/cacti/"

 <Directory "/usr/local/share/cacti">
 Options Indexes FollowSymlinks MultiViews
 AllowOverride AuthConfig
 Order deny,allow
 Allow from all
 </Directory>

После чего перезапускаем апач:
/usr/ports/>/usr/local/etc/rc.d/apache.sh restart
Stopping apache.
Waiting for PIDS: 62145.
Starting apache.
/usr/ports/>

Кстати, в настройках директории уже указано что там может быть авторизация, ибо несмотря на штатную авторизацию cacti, я предпочёл перестраховаться средствами apache. Всё. Можно обращаться к cacti по адресу типа http://www.lissyara.su/scripts/redirect_link.php?link=http://ip_or_name_of_server/cacti/. При первом заходе будет настройка, всё по дефолту, долбить далее. Если чё-то не вышло (решили чё-то повыбирать и пр.), дропаем все таблицы в бд cacti, и снова создаём согласно вышеописанному дампу.
Затем пробуем запустить скрипт, что шёл в комплекте:
/usr/home/lissyara/>/usr/local/bin/php /usr/local/share/cacti/poller.php
cat: /proc/meminfo: No such file or directory
cat: /proc/meminfo: No such file or directory
ERROR: creating '/usr/local/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
ERROR: opening '/usr/local/share/cacti/rra/localhost_mem_buffers_3.rrd': No such file or directory
ERROR: creating '/usr/local/share/cacti/rra/localhost_mem_swap_4.rrd': Permission denied
ERROR: opening '/usr/local/share/cacti/rra/localhost_mem_swap_4.rrd': No such file or directory
ERROR: creating '/usr/local/share/cacti/rra/localhost_load_1min_5.rrd': Permission denied
ERROR: Not enough arguments
ERROR: creating '/usr/local/share/cacti/rra/localhost_users_6.rrd': Permission denied
ERROR: opening '/usr/local/share/cacti/rra/localhost_users_6.rrd': No such file or directory
ERROR: creating '/usr/local/share/cacti/rra/localhost_proc_7.rrd': Permission denied
ERROR: opening '/usr/local/share/cacti/rra/localhost_proc_7.rrd': No such file or directory
03/27/2006 12:29:20 PM - SYSTEM STATS: Time:1.0913 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5

Прав нехватило, на создание... У меня рутовый кронтаб и так засран, хотел в свой запихнуть. Придётся дать права:
/usr/home/lissyara/>chown -R lissyara:www /usr/local/share/cacti
/usr/home/lissyara/>

И снова запускаем:
/usr/home/lissyara/>/usr/local/bin/php /usr/local/share/cacti/poller.php
cat: /proc/meminfo: No such file or directory
cat: /proc/meminfo: No such file or directory
OK u:0.00 s:0.01 r:0.02
OK u:0.00 s:0.01 r:0.03
OK u:0.00 s:0.01 r:0.03
OK u:0.00 s:0.01 r:0.03
OK u:0.00 s:0.01 r:0.04
ERROR: Not enough arguments
OK u:0.00 s:0.01 r:0.05
OK u:0.00 s:0.01 r:0.05
OK u:0.00 s:0.01 r:0.06
OK u:0.00 s:0.01 r:0.06
03/27/2006 12:31:05 PM - SYSTEM STATS: Time:1.0980 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
/usr/home/lissyara/>

Всё боле-мене, не считая ругани (всё-таки скриптяра больше под линух заточена, некоторых файлов во фре просто нету.) Ну, после этого можно вносить всё в крон, командой crontab -e, строчку, что запускали (периоды и прочие аргументы указаны выше, в подсказке, что была по окончании инсталляции, тока учтите, что там под линуховый крон, поэтому словечко "cacti", означающее от кого запускать, выкиньте.).
   Поигравшись с cisco`й, (всё-таки несмотря на WEB-интерфейс, он не очень интуитивно понятен, особенно некоторые вещи, когда надо из дерева перенести в другое - надо всё удалить, и создать заново... При этом херится вся статистика что уже насобиралась... Да и выбрать из темплатов подходящие тяжело.), решил что инфы по локалхосту маловато, да и северов у меня несколько, хотелось всё и сразу видеть :) Посему надо подымать snmp на хостах, которые хотим мониторить. На локалхосте net-snmp уже стоит, на остальных придётся поставить. Ставим из /usr/ports/net-mgmt/net-snmp, после установки, добавляем строку в /etc/rc.conf, создаём директорию для конфига, и создаём файл конфигурации:

/usr/local/etc/>echo 'snmpd_enable="YES"' >> /etc/rc.conf
/usr/local/etc/>mkdir snmp
/usr/local/etc/>cd snmp/
/usr/local/etc/snmp/>touch snmpd.conf
/usr/local/etc/snmp/>

Который и редактируем до такого состояния:
/usr/local/etc/snmp/snmpd.conf
syslocation "Made in USSR"
syscontact lissyara
rwuser my_community noauth
rocommunity my_community
rwcommunity my_community
trapsink localhost my_community
trap2sink localhost my_community
informsink localhost my_community
trapcommunity my_community
authtrapenable 2

После чего запускаем демона:
/usr/local/etc/snmp/>/usr/local/etc/rc.d/snmpd.sh start
Starting snmpd.
/usr/local/etc/snmp/>
/usr/local/etc/snmp/>ps -ax | grep snm
31023 ?? S 0:00,04 /usr/local/sbin/snmpd -p /var/run/snmpd.pid
31027 p0 R+ 0:00,00 grep snm
/usr/local/etc/snmp/>

После чего пробуем:
/usr/local/etc/snmp/>snmpwalk -c my_community -v 1 localhost .

Если в ответ вывалится огроменный список миб`ов - то всё получилось, если нет - ищщем ошибки. Также можно подключить к мониторингу виндовые машины - надо тока на них запустить snmp (службу), указать сообщество, и всё. Тока шаблон для них соответственный надо выбрать из списка.

P.S. Это словечко "my_community" - это что-то типа логина и пароля в одном флаконе, поэтому надо придумать позаковыристей, ибо SNMP более поздних версий чем 1, позволяют не только снимать инфу, но и менять некоторые настройки.

P.S.2 Про веб интерфейс... Ничё говорить не буду, но сразу говорю, тут с наскоку тяжело будет. По крайней мере я долго вникал, и то не сразу, и не во всё въехал. Советую почитать доки программы.

P.S.3 При настройке учтите, что опрос устройств идёт раз в 5 минут, и данные по добавленным хостам появляются не сразу, а после опроса. Поэтому имеет смысл на время отладки сделать запуск раз в минуту.

P.S.4 При проблемах с появлением "крякозябр" на графиках, там где должен быть русский язык, надо загрузить шрифты по ссылке, и распаковать их (в принципе, нужен только один - но я потащил все) в директорию /usr/local/share/rrdtool/fonts/. После чего в настройках кактуса:
Console -> Cacti Settings -> Paths -> RRDTool Default Font Path
Прописываем путь к одному из шрифтов. Я написал:
/usr/local/share/rrdtool/fonts/ARIAL8.TTF
Ну и сами фонты:


Источник: http://www.lissyara.su/?id=1154
Категория: Net | Добавил: oleg (01.06.2008) | Автор: lissyara
Просмотров: 1726 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024