вторник, 6 августа 2013 г.

FreeBSD 9. AMP + lightsquid + mrtg. Часть 5

Эта заметка является пятой частью из цикла заметок о настройке сервера на 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 комментарий:

Анонимный комментирует...

блогу лайк