/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/>chown -R lissyara:www /usr/local/share/cacti /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 .