Эта заметка является пятой частью из цикла заметок о настройке сервера на FreeBSD 9.
Четвертая часть тут.
В этой заметке я буду настраивать два веб-приложения для контроля трафика (mrtg) и наблюдением и статистикой за прокси-сервером squid (lightsquid).
Для того, чтобы юзать веб-приложения, нам нужен локальный веб-сервер. Например apache. С него и начну.
Apache
Обновляем дерево портов:
# portsnap fetch update
Установка apache, php5, php5-extensions, mysql-server:
# cd /usr/ports/www/apache22 && make install clean
# cd /usr/ports/lang/php5 && make install clean
[x] APACHE Build Apache module
# cd/usr/ports/lang/php5-extensions && make install clean
[x] MYSQL MySQL database support
# cd /usr/ports/databases/mysql55-server && make install clean
Настройка apache:
# ee /usr/local/etc/apache22/httpd.conf
ServerName example.com:80
#LoadModule unique_id_module libexec/apache22/mod_unique_id.so
LoadModule php5_module libexec/apache22/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
Настройки времени для php:
# ee /usr/local/etc/php.ini
date.timezone = Europe/Kiev
Автозагрузка:
# ee /etc/rc.conf
mysql_enable="YES"
apache22_enable="YES"
Запуск:
# /usr/local/etc/rc.d/mysql-server start
# /usr/local/etc/rc.d/apache22 start
Когда я настраивал апач, у меня постоянно возникала ошибка, оказалось, что дело было в файерволле, когда я настраивал перенаправление трафика с 80-го порта на порт 3128 для squid.
# ee /etc/firewall.conf
#add fwd 127.0.0.1,3128 tcp from any to any 80 via em1 #http->squid
# /etc/rc.d/ipfw restart
Осталось добавить мелкие штрихи и апач настроен:
# ee /usr/local/etc/apache22/httpd.conf
#по умолчанию там очень длинный путь, поэтому так будет удобнее
DocumentRoot "/usr/local/www"
<Directory "/usr/local/www">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#доки
<Directory "/usr/local/share/doc">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from 192.168.0.0/24
</Directory>
Alias /doc "/usr/local/share/doc"
# apachectl restart
Ну и можно проверить, например ввести в браузере:
http://192.168.0.10
It Works!
Проверим php:
# ee /usr/local/www/index.php
<? phpinfo(); ?>
В браузере:
http://192.168.0.10/index.php
Lightsquid
Когда веб-сервер настроен, можно приступать к анализатору лог-файлов squid, именуемого как lightsquid.
Установка:
# cd /usr/ports/www/lightsquid/
# make install clean
Настройка пути логов и языка интерфейса:
# ee /usr/local/etc/lightsquid/lightsquid.cfg
$logpath ="/var/squid/logs";
$lang ="ru";
Настройка apache для lightsquid:
# ee /usr/local/etc/apache22/httpd.conf
<Directory "/usr/local/www/lightsquid">
AddHandler cgi-script .cgi
AllowOverride All
</Directory>
# apachectl restart
Проверка настроек и запуск скрипта для сборки логов:
# /usr/local/www/lightsquid/check-setup.pl
# /usr/local/www/lightsquid/lightparser.pl
Проверка:
http://192.168.0.10/lightsquid
Автоматически запускать скрипт по крону каждые 2 часа:
# ee /etc/crontab
0 2 * * * root /usr/local/www/lightsquid/lightparser.pl yesterday
# killall -HUP cron
MRTG
Эта программа строит графики, показывает отправленный и полученынй трафик за определенный промежуток времени.
Установка:
# cd /usr/ports/net-mgmt/net-snmp && make install clean
# cd /usr/ports/net-mgmt/mrtg && make install clean
Настройка:
# ee /usr/local/share/snmp/snmpd.conf
rwuser root noauth
rouser root noauth
#X - это я скрыл цифры
pwcommunity public 10.0.X.15
rocommunity public 10.0.X.15
# ee /usr/local/etc/mrtg/mrtg.cfg
WorkDir: /usr/local/www/mrtg
Target[gateway]: 1:[email protected]
MaxBytes[gateway]: 1024000
Title[gateway]: Traffic Analysis for Gateway
PageTop[gateway]: <H1>Stats for our GATEWAY Server</H1>
Создаем каталог для файлов, добавляем в автозагрузку, запускаем и каждые 5 минут запускаем по крону:
# mkdir /usr/local/www/mrtg
# ee /etc/rc.conf
snmpd_enable="YES"
# /usr/local/etc/rc.d/snmpd start
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
# killall -HUP cron
Проверка браузером:
http://192.168.0.10/mrtg/gateway.html
Так как сие дело у меня на виртуалке и мы принимаем инет от одного роутера, я использую этот сервер в качестве шлюза, для того чтобы трафик шел через шлюз. Ранее я это настраивал в первой части цикла заметок про FreeBSD.
Итак, создаем новое сетевое соединение и прописываем вручную настройки:
Проверка:
$ ping ya.ru
PING ya.ru (213.180.193.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (213.180.193.3): icmp_req=1 ttl=55 time=43.5 ms
...
Шлюз работает, таким образом, трафик на хосте идет через шлюз на сервере.
Примерно так выглядит программа mrtg:
1 комментарий:
блогу лайк
Отправить комментарий