Watcom был заюзан успешно :
system begin mynetware
option osname='NetWare LibC'
format novell ^
Op Stack = 256k
option nodefault
option caseexact
Option Start = _LibCPrelude
Option Exit = _LibCPostlude
Option ScreenName 'DEFAULT'
File E:\WATCOM\ndk/libc/imports/libcpre.obj
Import @E:\WATCOM\ndk/libc/imports/libc.imp
Import @E:\WATCOM\ndk/libc/imports/netware.imp
Module libc
File E:\WATCOM\lib386\netware\libc3sl.lib
sarg.nlm собрался но это слабо помогло так как он использует не только rm ( свой NLM для rm-rf был сделан правда CLIB Netware работает не так гладко как в Cygwin) но и sort . Посему было решено
посмотреть другие анализаторы логов SQUID.
FREE-SA . Тут заморочки с fork'ами тоже был толожен на место.
lightsquid. Все на перле - с ним получилось все хорошо.
И так:
Распаковать все lighstquid tar.gz в sys:/perl/lightsquid
Правим конфиг SYS:\perl\lightsquid\lightsquid.cfg
$cfgpath ="SYS:/perl/lightsquid";
$tplpath ="SYS:/perl/lightsquid/tpl";
$langpath ="SYS:/perl/lightsquid/lang";
$reportpath ="LOGS:/PROXY/REPORTS";
$logpath ="LOGS:/PROXY/LOG/HTTP/COMMON";
$ip2namepath ="SYS:/perl/lightsquid/ip2name";
$debug = 1;
$squidlogtype = 1;
$graphreport = 0;
(либа для графики (GD в виде NLM статически слинкованного со всем чем надо) бывает она скачиваема и если докинуть либы в перл то оно тоже работает - графики проверил - только накой оно).
Берем для теста COMMON лог бордюра за какую-нибудь дату и копируем его в том же каталоге с логами в access.log (для тесту).
Запускаем на консоли сервера sys:\perl\lightsquid\check-setup.pl
Видим сообщение
all checks passed, now try access to cgi part in browser
В данном случае бордер делает только коммон логи и на отдельном томе . Ночью в 12:00 он бросает вчерашний лог и начинает новый.
посему в крон после полуночи добавляем например такую обработку:
1. переименовать вчерашний лог в access.log
2. пускать sys:\perl\lightsquid\lightparser.pl
3. далее делаем с обработанным логом что надо - удаляем зипаем или что душе угодно.
И так у нас в LOGS:/PROXY/REPORTS лежат готовые репорты для отображения CGI скриптом.
Должен сказать что по обьему репорты за ту же дату у LightSquid намного компактнее : например 58 MB у SARG и 1,6MB у LightSquid.
Далее добавляем в конец sys:\apache2\conf\httpd.conf
<IfModule>
CGIMAPExtension sys:/perl/Perlcgi/Perlcgi.nlm .cgi
Alias /lightsquid/ sys:/perl/lightsquid/
<Location>
SetHandler cgi-script
Options +ExecCGI
AuthType Basic
AuthName "Private Content. Only Autorized Users!"
AuthUserFile "SYS:/perl/lightsquid/.htpasswd"
require valid-user
AllowOverride None
</Location>
</IfModule>
При этом строку Include sys:/apache2/conf/mod_perl.conf надо закомментить.
Рестартуем апач:
ap2webrs
на консоли севера
Почему не юзать MOD_PERL ? Я так понял, дело в том что для mod-perl надо более строго писать скритпы (переменные, процедуры use sctrict etc) - а с обычным интерфейсом Apache2 для перла все работает (с mod_perl не заупскается - ругань на неопределенные процедуры и все такое).
Создаем файл SYS:/perl/lightsquid/.htpasswd
для этого на консоли запсутим
load sys:apache\bin\htpasswd -c SYS:/perl/lightsquid/.htpasswd USERNAME и по запросу вбить пароь.
после этого репорты LightSquid доступны как
http://BORDER-MANAGER-IP-OR-HOSTNAME/li ... /index.cgi
после авторизации.
Таким образом задача прикрутить к борюру вебморду для контроля была решена с минимумом затрат и без привлечения тяжелой артиллерии в виде SQL для храннения логов и дополнительных серверов. Думаю что то же самое заработает и на NW6 ( apache 1.3 + Perl 5.8 ). В данном случае это был NW65SP8 ( Apache2.0.63+Perl 5.8.4 ).
P.S. Чуть не забыл. По дефолту lightparser.pl читает лог файл из вывода cat, нам это не подит посему в данном файле комментим одну строку и разкомментриуем другую:
было
#open FF, "$logpath\\$filename" || die "can't access log file\n";
open FF, "$catname $logpath/$filename|" || die "can't access log file\n";
стало
open FF, "$logpath\\$filename" || die "can't access log file\n";
#open FF, "$catname $logpath/$filename|" || die "can't access log file\n";
хух.
Всех с наступающим новым годом.
P.P.S. для энтузиастов если нужны графические репорты то брать GD
http://www.gknw.net:80/phpbb/viewtopic.php?t=344 распаковать из
GD-2.35_perl-5.8.4-nw.zip только содержимое каталога /perl/lib на том SYS:.
P.P.P.S. на косметические сообщения на консоли
Module LIBPERL.NLM is being referenced
You must unload PERLCGI.NLM before you can unload LIBPERL.NLM
внимания не обращать.