|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> cacti
cacti - наблюдение за хостами по SNMP
Автор: lissyara.
Захотелось, как белому человеку, мониторить свои хосты удалённо по 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
<?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://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
Ну и сами фонты:
Шрифты для корректного показа русского языка на графиках
|
файл
|
скачан
|
размер
|
размещён
|
примечание
|
|
5869
|
895.6kb
|
2007-08-24
|
Файлы шрифтов для нормального отображения русского языка в cacti
|
|
P.S.5 В связи с вопросами прикладываю образец графиков. Сорри что такой большой. :))
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=8664.
размещено: 2006-03-27,
последнее обновление: 2008-05-31,
автор: lissyara
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
|
Комментарии пользователей [43 шт.]