|
Ключевые слова: cacti, monitoring, traffic, snmp, jail, chroot, trafd, (найти похожие документы)
From: Max Birintsev <birintsev@mail.ru.> Newsgroups: email Date: Mon, 28 Sep 2009 17:02:14 +0000 (UTC) Subject: Настройка системы учета трафика на базе Cacti, SNMP, bpft, FreeBSD Система: FreeBSD 7.1, jail-ы с помощью ezjail-3.0 с выделенными IP на одном интерфейсе Цель: Мониторинг всего трафика (исходящий/входяший) по каждому из jail. Фактически будем считать по каждому IP Возможности применения: Мониторинг наборов пользовательских потоков Требования: Непосредственно: Cacti, SNMP, bpft Необходимо также: bpf фильтр в ядре, bttp сервер Apache, сервер баз данных mySQL Реализация: Инсталлируем Cacti из портов cd /usr/ports/net-mgmt/cacti make make install по окончании установки следуем полученным инструкциям (сообщение инсталлятора): 1. Создаем БД в MySQL: # mysqladmin --user=root create cacti 2. Устанавливаем логин пароль для cacti: (change user and/or password if requered) # echo "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ''cactiuser''; FLUSH PRIVILEGES;" | mysql 3. Импортируем БД cacti: # mysql cacti < /usr/local/share/cacti/cacti.sql 4. Настраиваем соедниение к базе данных mySQL для 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"; ?> 5. Добавляем в /etc/crontab: */5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1 6. Создаем в конфигурации apache алиас для директории cacti: добавляем в файл /usr/local/etc/apache/httpd.conf конфига Apache алиас для Cacti Alias /cacti/ "/usr/local/share/cacti/" <Directory "/usr/local/share/cacti"> Options Indexes FollowSymlinks MultiViews AllowOverride AuthConfig Order deny,allow Allow from all </Directory> перезагружаем Apache /usr/local/etc/rc.d/apache.sh restart 7. Входим в web-интерфейс http://<your-host>/cacti/ cacti с логином/паролем admin/admin. задаём свой логин/пароль, нас просят его изменить, соглашаемся ничего больше руками не трогаем Инсталлируем SNMP из портов cd /usr/ports/net-mgmt/net-snmp make make install добавляем конфигурационные строки в /etc/rc.conf # snmp snmpd_enable="YES" snmpd_flags="-a" snmpd_conffile="/usr/local/etc/snmp/snmpd.conf" snmptrapd_enable="YES" snmptrapd_flags="-a -p /var/run/snmptrapd.pid" создаём конфигурационный файл /usr/local/etc/snmp/snmpd.conf и пишем в него строки syslocation "Мой город, улица" syscontact moj-email@moj-server.com com2sec readonly default PASSWORD group MyROGroup v1 readonly group MyROGroup v2c readonly view all included .1 80 access MyROGroup "" any noauth exact all none none запускаем демон SNMP /usr/local/etc/rc.d/snmpd.sh start пробуем получить ответ от демона SNMP snmpwalk -v 2c -c PASSWORD localhost system должен вернуть список переменных с ключами Инсталлируем bpft4(trafd) из портов cd /usr/ports/net-mgmt/bpft make make install Создаём конфигурационный файл и пишем в него строки (в моём случае это интерфейс em0) # trafd configuration file # interfaces to proceed #IFF_LISTEN="eth0 eth1" IFF_LISTEN="em0" # options for trafd (-pr - default options) # Don''t use "-i" here ! em0_opts="-pr" #eth1_opts="-r -m0" Создаём папку /var/log/trafd и делаем symlink /usr/local/var/bpft/ Запускаем bpft4(trafd) /usr/local/etc/rc.d/trafd.sh Пробуем снять статистику trafstat -n Теперь нам необходимо добавить в SNMP списки IP, входящего и исходящего трафика создаём 3 скрипта скрипт для сброса статистики каждые 5 мин по крону в бинарный файл /usr/scripts/trafd-5min.sh #!/bin/sh iface=em0 rm /var/log/trafd/trafd.${iface} /usr/local/bin/trafsave ${iface} sleep 4 /usr/local/bin/traflog -ans -i ${iface} > /var/log/trafd/trafd.${iface}.plain добавим в крон crontab -e строку */5 * * * * /usr/scripts/trafd-5min.sh скрипт для получения списка IP интерфейса /usr/scripts/snmp-iplist.sh #!/bin/sh case $1 in g) /sbin/ifconfig | /usr/bin/grep "inet" | /usr/bin/grep "broadcast" | /usr/bin/awk ''{print $2}'' ;; i) ipcount=`/sbin/ifconfig | /usr/bin/grep "inet" | /usr/bin/grep "broadcast" | /usr/bin/awk ''{print $2}'' | wc -l` for i in `jot $ipcount`; do echo $i done exit $ipcount # this is the value at OID .1.3.6.1.4.1.2021.49.42.100.1 ;; *) exit 254 ;; esac попробуем получить список IP интерфейса /usr/scripts/snmp-iplist.sh g и просто индексы /usr/scripts/snmp-iplist.sh i для получения исходящего/входящего трафика всех IP интерфейса по отдельности /usr/scripts/snmp-iplist-traffic.sh #!/bin/sh myIPs=`/usr/scripts/snmp-iplist.sh g` case $1 in in) for IP in $myIPs; do /usr/local/bin/traflog -n -i em0 from all to $IP | grep ''Summary'' | /usr/bin/awk ''{print $2+$5}'' done ;; out) for IP in $myIPs; do /usr/local/bin/traflog -n -i em0 from $IP to all | grep ''Summary'' | /usr/bin/awk ''{print $2+$5}'' done ;; *) exit 254 ;; esac попробуем получить входящий трафик всех IP интерфейса по отдельности (если уже сработал крон для скрипта /usr/scripts/trafd-5min.sh) /usr/scripts/snmp-iplist-traffic.sh in попробуем получить исходящий трафик всех IP интерфейса по отдельности (если уже сработал крон для скрипта /usr/scripts/trafd-5min.sh) /usr/scripts/snmp-iplist-traffic.sh out Добавляем созданные скрипты в конфигурационный файл SNMP /usr/local/etc/snmp/snmpd.conf extend .1.3.6.1.4.1.2021.49 iplist /usr/scripts/snmp-iplist.sh g extend .1.3.6.1.4.1.2021.49.42 ipindex /usr/scripts/snmp-iplist.sh i extend .1.3.6.1.4.1.2021.50 traffic_in /usr/scripts/snmp-iplist-traffic.sh in extend .1.3.6.1.4.1.2021.51 traffic_in /usr/scripts/snmp-iplist-traffic.sh out перезапускаем SNMP /usr/local/etc/rc.d/snmpd restart пробуем возвращает ли SNMP данные скриптов (по очереди) snmpwalk -v 2c -c PASSWORD localhost .1.3.6.1.4.1.2021.49 snmpwalk -v 2c -c PASSWORD localhost .1.3.6.1.4.1.2021.49.42 snmpwalk -v 2c -c PASSWORD localhost .1.3.6.1.4.1.2021.50 snmpwalk -v 2c -c PASSWORD localhost .1.3.6.1.4.1.2021.51 Комментарий в настоящем руководстве указан самый быстрый найденный путь после того как автор попробовал много длинных тупиков Улучшения * изменить пароль доступа к базе данных mySQL для Cacti * выделить под Cacti отдельный поддомен вместо глобального алиса * ограничить доступ к веб-интерфейсу Cacti * изменить пароль доступа к SNMP (в этом примере PASSWORD) * изменить переменные syslocation, syscontact Источники * http://www.lissyara.su/?id=1154 * http://www.roth.lu/cacti-snmp-tut.htm
|
Обсуждение | [ RSS ] |
|
Добавить комментарий |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |