Інтернет сервер на OS / 2, Сервери, Інтернет-технології, статті

Ілфат Кутдусов (Russian/2 projectOS/2.ru)

Хотілося б мені розповісти про Інтернет сервер, зібраний під OS / 2.

Може бути, досвід моєї роботи комусь допоможе зібрати повноцінний сервер.

Через цю машину більше 100 осіб виходять в інтернет, забирають пошту по POP3; ведеться Primary DNS.

Конфігурація машини:

OS / 2 Warp Server RUS Advanced без єдиного фікса. Просто свого часу я сильно втомився від експериментів з фіксами. Головне – щоб працювало.

Встановлений софт:

Internet:

Збір статистики:

Тепер як все це працює:

CONFIG.SYS: Те що відрізняє від рідного конфіга

REM *********************************************
AUTOFAIL=YES
SUPPRESSPOPUPS=C
REIPL=ON
PROTECTONLY=YES
REM TimeSlice=32,256
REM TRAPDUMP=ON,E:
REM TRAPDUMP=RO,E:
REM DUMPPROCESS=E
SET STARTUP=C:
REM *********************************************
SET TZ=EKB-5UTC,3,-1,0,7200,10,-1,0,7200,3600
SET HOSTNAME=STATION
SET USE_HOSTS_FIRST=1
SET RESTARTOBJECTS=STARTUPFOLDERSONLY
SET EMXOPT=-h1536
SET PERL5LIB=C:/Utility/perl5/lib
SET SHELLHANDLESINC=5

Останнє згідно з документацією програм.

StartUp Folder: OS2Pops;

StartUp.CMD:

 :: ============= Підключення мережевих дисків і старт сервера :: Старт Варп-сервера
NET START SERVER
@if errorlevel 2 C:\IBMLAN\NETPROG\lserr.exe
logon userid /p:password /v:d
 :: Логін в Novel-дерево
C:\netware\nwtools.exe C:\netware\poster.nws autoexit
 :: ============== Запуск серверів і сервісів :: Це старт SysLogD-демона
detach c:\Utility\SysLogD\syslogd.exe -d -f C:\Utility\SysLogD\syslog.cnf
 :: ============== Старт DNS-сервера
d:
cd \Bind\bin
detach named -cC:\MPTN\ETC\named.conf
 :: ============== Старт Mini SQL сервера (він потрібен для WWW-сервера
start /c D:\Public\mSQL2\BIN\dbstart.cmd
 :: ============== Telnet-сервер на нестандартному порту 3333 для :: ============== Віддаленого доступу до сервера
SET ATLPAC_PASSWD_FILE=C:\TCPIP\APLOGIN\PASSWD
SET ATLPAC_GREETING_FILE=C:\TCPIP\APLOGIN\GREETING.TXT
SET ATLPAC_WELCOME_FILE=C:\TCPIP\APLOGIN\WELCOME.TXT
SET ATLPAC_BADLOGIN_FILE=C:\TCPIP\APLOGIN\BADLOGIN.TXT
SET ATLPAC_LOG_FILE=c:\TCPIP\APLOGIN\MYLOG.TXT
start /c "Telnet by port 3333" telnetd -p 3333
 :: ============== Синхронізація часу з тайм-сервером в інтернеті
detach daytime.exe -s -u -c 3600 128.173.14.71
 :: ============== Запуск TimeServer-а. :: Щоб інші могли по мої годинах синхронізуватися.
detach c:\utility\daytimed -S
 :: ============== Запуск TFTP-сервера
cd \TFTP_Server
detach tftpd
:: ============== FTP-server
cd \FTPServer
Detach ftpd D3 F10000 L1
 :: ============== NNTP-сервер
cd \bbs.os2\s2n
detach sq2nn
:: ============== Mail-server
Detach sendmail -bd -q30m -CC:\MPTN\ETC\sendmail.cf
 :: ============== Proxy-сервер
cd \Squid
Detach squid.exe
 :: ============== Запуск шедулера. :: Він створює підлоги на адреси, створює прапори для збору статистики :: І багато іншого. Можливості його досить широкі.
cd \bbs.os2\rsched
start /c "Shuduler" RSched.exe

Налаштування Федишин софта наводити тут не має сенсу. Мої настройки нікому, крім мене, не цікаві.

Так що завантаження досить велика. Правда на сьогоднішній день працює лише одна модемна лінія, інші забрали: (

Налаштування Internet-софта.

Стек TCPIP

Ця машина має адресу 10.2.3.200 (внутрішній), у зовнішньому світі (за файрволом) вона видна під адресою 212.220.26.71

Вообщем-то нічого оригінального.

Файл \ MPTN \ BIN \ SETUP.CMD виглядає приблизно так:

route -fh
arp -f
ifconfig lo 127.0.0.1
ifconfig lan0 10.2.3.200 netmask 255.255.255.0
route add default 10.2.3.4 1
route add net 10 10.2.3.4 1
ipgate off

Тобто нічого екзотичного. Хіба що запушений LoopBack інтерфейс. Він необхідний для багатьох програм.

DNS

В якості DNS-сервера у мене працює Bind. Він тримає одну мережу Класу А (10.0.0.0) і одну мережу класу C (інтернетскіх 212.220.26.0). Також є Secondary DNS-ом для ще однієї сітки класу А (15.0.0.0). Працює він практично відразу і ніяких проблем не створює. Пробіжимося з налагодження:

=================== Named.conf =================================
options {
directory "c:/MPTN/etc/namedb";
pid-file "c:/MPTN/etc/PID/named.pid";
dump-file "c:/MPTN/etc/namedb/named.dump";
statistics-file "c:/MPTN/etc/namedb/named.stats";
forwarders { 195.38.32.2 ; 195.38.33.2 ; 195.58.1.145 ; 193.124.176.158 ; };
check-names master fail;
datasize 2M;
/*
 * If there is a firewall between you and nameservers you want
 * to talk to, you might need to uncomment the query-source
 * directive below. Previous versions of BIND always asked
 * questions using port 53, but BIND 8.1 uses an unprivileged
 * port by default.
 */
query-source address * port 53;
};
zone "localhost." IN {
   type master;
   file "localhost.zone";
   check-names fail;
   allow-update { none; };
   allow-transfer { any; };
};
zone "0.0.127.in-addr.arpa." IN {
   type master;
   file "localhost.rev";
   check-names fail;
   allow-update { none; };
   allow-transfer { any; };
};
zone "." IN {
   type hint;
   file "root.hint";
};
zone "ukib." IN {
   type master;
   file "sgb.dom";
};
zone "10.in-addr.arpa." IN {
   type master;
   file "10.in-addr.arpa";
};
zone "15.in-addr.arpa." IN {
   type slave;
   file "15.in-addr.arpa";
   masters { 15.3.0.10;};
};
zone "sgb.ru." IN {
   type master;
   file "sgb.ru";
};
zone "26.220.212.in-addr.arpa." IN {
   type master;
   file "26.220.212.in-addr.arpa";
};

Решта файли я тут приводити не буду, але частина, що стосується світового інтернету – покажу:

 ========================= Файл sgb.ru ===================== =====
$ORIGIN ru.
sgb IN SOA ns.sgb.ru.
postmaster.sgb.ru. (
   19990210 ; Serial number for this data (yyyymmdd)
   28800  ; Refresh value for secondary name servers
   7200   ; Retry value for secondary name servers
   604800 ; Expire value for secondary name servers
   86400  ; Minimum TTL value
)
 IN NS ns.sgb.ru.
 IN NS ns.etel.ru.
 IN NS ns1.etel.ru.
 IN A 212.220.26.71
 IN MX 20 mail.sgb.ru.
 IN MX 30 ns.etel.ru.
 IN MX 40 ns1.etel.ru.
$ORIGIN sgb.ru.
;********************************
;* Domain Address Information *
;********************************
dark
IN A 212.220.26.76
work IN CNAME dark
ns
IN A 212.220.26.71
mail
IN CNAME ns
www
IN CNAME ns
ftp
IN CNAME ns
binkd
IN CNAME ns
bbs
IN CNAME ns
irc
IN CNAME ns
ru2
IN CNAME ns
 ===================== Файл 26.220.212.in-addr.arpa =================
;********************************
;* Start of Authority Records *
;********************************
$ORIGIN 26.220.212.in-addr.arpa.
@ IN
SOA ns.sgb.ru. postmaster.sgb.ru. (
   19990211 ; Serial number for this data (yyyymmdd)
   28800  ; Refresh value for secondary name servers
   7200   ; Retry value for secondary name servers
   604800 ; Expire value for secondary name servers
   86400  ; Minimum TTL value
)
IN
NS ns.sgb.ru.
IN NS ns.etel.ru.
IN NS ns1.etel.ru.
$ORIGIN 26.220.212.in-addr.arpa.
71 IN PTR
ns.sgb.ru.
76 IN PTR
dark.sgb.ru.

Все до жаху просто. З такими настройками все починає відразу працювати. Як видно з наведеного конфіга – ця ж машина є поштовим сервером для домену SGB.RU. Для прийому пошти з внешенго світу і відправки у зовнішній світ використовується SendMail з комплекту поставки OS / 2. Як він запускається – видно з строчки в StartUp.CMD. Тут я приведу тільки рядки з конфіга SendMail.CF, що відрізняються від конфіга за замовчунням:

============================================================= # Ці рядки на самому початку конфіга
Dwsgb.ru
Cwsgb.ru # Нижченаведену рядок потрібно підправити в конфіги
MLocal, P=D:\os2pops\popsmail.exe, F=lsm, S=10, R=20, A=D:\os2pops
$u $f
Mprog, P=xxx, A=Required by sendmail but unused
=============================================================

Все. Нагадаю, що в якості POP3-сервера у мене працює OS2Pops, відповідно, і останні рядки в sendmail.cf налаштовані для нього.

POP3-сервер ніяких налаштувань не вимагає і починає працювати відразу після інсталяції. Тільки варто додати в настройках адміністратора для віддаленого адміністрування. Для адміністрування я використовую його рідну програмку для віддаленого адміністрування, яка теж не вимагає налаштувань. Хіба що просити ввести пароль адміністратора і сервер адміністрування.

Проксі-сервер.

Чомусь у багатьох виникають проблеми при його запуску. Єдина особливість. Повинен бути піднятий LoopBack інтерфейс. У нас у банку встановлено два таких проксі-сервера. Вони працюють в парі. Так само використовується проксі-сервер провайдера. Наведу відмінності від стандартних конфігов зі своїми коментарями:

 ======================= Файл Squid.Conf =================== # Це проксі-сервер провайдера. Якщо ні сторіночки ні в своєму кеші, # Ні на другому проксі-сервер, то ця сторінка запитується у №; # Провадерского проксі-сервера. Зауважу, що у провайдера теж # Встановлено Squid, але під Юніксів.
cache_host 195.38.32.3 parent 3128
3130 # Це дружній проксі-сервер на іншій території
cache_host 15.3.0.10 sibling
3128 3130 # Це локальний домен. Кешувати його теж не треба.
local_domain ukib # Це локальні IP-адреси. # Сервера з цими адресами кешувати не треба.
local_ip 10.0.0.0 # Вказує кількість демонів для DNS-резолвінг, # Стартуемих за замовчуванням
dns_children 3 # Час, протягом якого відкриті сокети будуть # Триматися за клієнтом після звернення. Це значення потрібно # Регулювати залежно від кількості клієнтів. # У мене встановлено 20 хвилин.
client_lifetime 20
acl localhost src 127.0.0.1/255.255.255.255 # Цей параметр визначає ACL-запис для адміністраторів. # Коментарі - нижче.
acl gate src 10.2.3.201/255.255.255.255
acl gate src 10.2.3.220/255.255.255.255
http_access allow manager gate # Цю рядок потрібно відразу ж закоментувати, щоб # Всі кому не лінь не користувалися вашим проксі-сервером
# acl all src 0.0.0.0/0.0.0.0 # Визначає адреси, які можуть користуватися вашим # Проксі-сервером
acl all src 10.1.0.9/255.255.255.255
acl all src 10.1.0.10/255.255.255.255
acl all src 10.1.0.11/255.255.255.255 # Визначає сервера, з яких нічого не гойдається # (Нафіг нам намотувати трафік абсолютно непотрібними банерами ;-))
acl badsite url_regex ^http://www.banners.ru
acl badsite url_regex ^http://www.reklama.ru
acl badsite url_regex ^http://www.linkexchange.ru
acl badsite url_regex ^http://www.exchange.centre.ru
acl badsite url_regex ^http://www1.reklama.ru
http_access deny badsite # Дозволяє всіма адресами групи "all" # Користуватися вашим сервером
http_access allow all
icp_access allow all # Визначає права адміністраторів для віддаленого адміністрування # І пароль "_security_" для того, щоб вимкнути проксі.
cachemgr_passwd _security_ shutdown
cachemgr_passwd none all # Визначає рівень вкладеності каталогів для кеша. # Буде створено 8 каталогів, в кожному з яких ще 8 каталогів.
swap_level1_dirs 8
swap_level2_dirs 8
================================================================

Все. Перший запуск Squid-а потрібно виконати з параметром “-z” щоб він створив все дерево каталогів для кеша. Якщо скинути файл CacheMgr.EXE в “cgi-bin” каталог WWW-сервера, то за запитом до цієї CGI-шке можна буде дивитися через браузер настройки і статистику проксі-сервера. Більше ніяких особливостей немає.

HTTP-сервер.

У ролі HTTP-сервера Apache працює. Особливо його налаштування я не особливо вдавався. Але те, що я використовую, – розповім. Apache обслуговує 2 віртуальних сервера з іменами: www.sgb.ru і ru2.sgb.ru і внутрішніми адресами: www.ukib і ru2.ukib відповідно. У файлі httpd.conf є наступні налаштування на цей рахунок:

 ===================== Файл httpd.conf ===================
NameVirtualHost 10.2.3.200
<VirtualHost 10.2.3.200>
ServerName www.ukib
DocumentRoot /WWW_Server/WWW
ErrorLog log/ww.error_log
TransferLog log/www.access_log
AccessConfig etc/www.access.conf
ResourceConfig etc/www.srm.conf
#Include conf/charset.conf
</VirtualHost>
<VirtualHost 10.2.3.200>
ServerName ru2.ukib
DocumentRoot /WWW_Server/merlin.itep.ru/~ru2main
ErrorLog log/ru2.error_log
TransferLog log/ru2.access_log
AccessConfig etc/ru2.access.conf
ResourceConfig etc/ru2.srm.conf
#Include conf/charset.conf
</VirtualHost>
<VirtualHost 10.2.3.200>
ServerName ru2.sgb.ru
DocumentRoot /WWW_Server/merlin.itep.ru/~ru2main
ErrorLog log/ru2.error_log
TransferLog log/ru2.access_log
AccessConfig etc/ru2.access.conf
ResourceConfig etc/ru2.srm.conf
#Include conf/charset.conf
</VirtualHost>
<VirtualHost 10.2.3.200>
ServerName www.sgb.ru
DocumentRoot /WWW_Server/WWW
ErrorLog log/www.error_log
TransferLog log/www.access_log
AccessConfig etc/www.access.conf
ResourceConfig etc/www.srm.conf
#Include conf/charset.conf
</VirtualHost>
==================================================================

У підсумку якщо користувач з зовнішнього світу набирає http://www.sgb.ru – то він потрапляє на один сервер. Якщо http://ru2.sgb.ru, то влітає на інший сервер. Для реалізації цієї можливості потрібно, щоб у DNS були рядки приблизно такого вигляду:

ns
IN A 212.220.26.71
www
IN CNAME ns
ru2
IN CNAME ns

Ось власне і все з приводу налаштувань Apache. Зауважу, що для нього теж потрібно, щоб интерфес LoopBack був піднятий.

Mini SQL.

SQL сервер для WWW-сервера особливих налаштувань теж, власне, не має. Для його нормальної роботи я зробив наступне:

 =========================== Файл dbstart.cmd =================== ==
set user=kutdusov
rem set msql_debug=general:query:error:
detach D:\public\mSQL2\bin\msql2d
==================================================================

Попередньо потрібно створити базу. У мене база вже була, тому я її просто підключив приблизно так:

msqladmin.exe
create Euxx
msql Euxx < euxx.msql

Де Euxx – це ім’я бази, euxx.msql – це та база, яку мені дали. Все!

TFTP. взагалі ніяких налаштувань не вимагає і працює тільки з тим каталогом, з якого стартував. Я його використовую для збереження конфігураційних файлів і IOS_ов від маршрутизаторів Cisco.

FTP-сервер. Все прозоро до неподобства. Навіть не знаю, де можуть виникнути проблеми.

SNTP. Сервер і клієнт служать для синхронізації свого часу по інтернету і надання можливості внутрішнім клієнтам синхронізувати свої годинники по вашому комп’ютеру. Потрібно встановити змінну TZ в файлі CONFIG.SYS:

SET TZ=EKB-5UTC,3,-1,0,7200,10,-1,0,7200,3600

Тут все можна залишити так само, тільки в виділеному місці потрібно вказати свою різницю з Гринвічем. Літери значення не мають. Головне, щоб їх було три. Можете, наприклад, для Москви, вказати такий початок це змінної


T=MSK-3UTC…

Інші цифри відповідають за перехід часу літній / зимовий.

Клієнт запускається такий рядком:

detach daytime.exe -s -u -c 3600 128.173.14.71

Сервер запускається командою:

detach c:\utility\daytimed -S

Він просто обслуговує запити клієнтів і віддає їм локальний час.

SysLogD.

Цей демон – служить для збору статистики з інших демонів або навіть з інших серверів. У мене він використовується тільки для збору статистики з DNS-сервера Bind. Виглядає його конфіг приблизно так:

*.debug
CON
*.debug
D:\Log\SysLogD.log
named.*
D:\Log\Named.log
binkd.*
D:\Log\Binkd.log
local1.*
D:\Log\Cisco.log

За ідеєю, він повинен скидати в різні логи по група повідомлень, але в мене він чомусь скидає все в SysLogD.Log. Розбиратися було ніколи. До того ж, я його ставив для інших задач – для збору статистики з маршрутизаторів Cisco. Так він і залишився. А коли поставив Bind, то був приємно здивований, що Bind відправляє всі логи в SysLogD.

TelnetD

Використовується для віддаленого доступу до сервера. Для авторизації використовується APLogin v1.00с. Для його роботи потрібно визначити кілька змінних оточення. Я їх визначаю в StartUp.CMD:

SET ATLPAC_PASSWD_FILE=C:\TCPIP\APLOGIN\PASSWD
SET ATLPAC_GREETING_FILE=C:\TCPIP\APLOGIN\GREETING.TXT
SET ATLPAC_WELCOME_FILE=C:\TCPIP\APLOGIN\WELCOME.TXT
SET ATLPAC_BADLOGIN_FILE=C:\TCPIP\APLOGIN\BADLOGIN.TXT
SET ATLPAC_LOG_FILE=c:\TCPIP\APLOGIN\MYLOG.TXT

Далі програмою adduser.exe створюєте користувачів. Файл APLOGIN.EXE копіюєте в каталог \ TCPIP \ BIN під ім’ям TNLogin.EXE. Все. Слід зауважити, що запускати через Detach демона не варто. Так як в цьому випадку ви не зможете, приєднавши, запускати інші програми, наприклад, File Commander або Golded. Я його запускаю рядком:

start /c telnetd.exe -p 3333

Порт можна не вказувати. Але в цьому випадку він у вас буде сидіти на порту за замовчуванням, тобто 23. Неприємна особливість. Коли ви логін до цього демона, то якщо з першого разу неправильно ввели пароль, то подальші спроби вам не допоможуть. Розбиратися мені було лінь. Все, в общем-то працює. Віддалено я до нього логін командою:

telnet -t ansi 10.2.3.200 3333

Після авторизації потрапляю в командну строчку і спокійно можу запустити FC або Golded або будь-яку іншу VIO програму.

Після прибивання цього Телнет-з’єднання вмирають всі завдання, запущені з цієї сесії, крім тих, які запускалися через Detach.

Шедулера.

Rsched v.1.5.beta. Також ніяких особливих тонкощів при налаштуванні не має. Сетап спокійно запускається віддалено-під Телнет. Сам демон спокійно перечитує змінений конфіг. Тільки з його запуском така ж тонкість, як і з TelnetD. Його потрібно запускати мінімізованим, а не через Detach.

Збір статистики з проксі-сервера cache-stats-1.4 (Perl).

Для збору статистики в мене використовується наступний командний файл:

 =================== Файл Squid_Log.CMD =========================== =
/* */
'@Echo off'
Call rxfuncadd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
Call SysLoadFuncs
/* Trace A */
/* Signal ON Syntax */
Dir.WWW = 'D:\WWW_Server\Squid\UKIB'
Dir.Squid = 'D:\Squid'
Dir.Logs = Dir.Squid'\Logs'
Dir.Archive = Dir.WWW'\'DATE('S')-1
Prog='SQUID.EXE'
File.1 = 'access_log'
File.2 = 'cache_log'
File.3 = 'store_log'
Call Kill_Squid
'md' Dir.Archive
 'copy' Dir.Logs'\*.*' Dir.Archive
 'del' Dir.Logs'\'File.1
 'del' Dir.Logs'\'File.2
 'del' Dir.Logs'\'File.3
 'start /c' Dir.Squid'\SQ.CMD'
if Directory( Dir.Archive ) = Dir.Archive then
 Call Analizer
 Else
 Return
 'start /c' Dir.Squid'\cache-stats-1.4\SquidStats.CMD'
Dir.Archive
Return
/* ****************************************************************/
Analizer:
 NUMERIC FORM ENGINEERING
 NUMERIC DIGITS 5
 IN_Log = 'access_log'
 OutLog = 'Proxy.Log'
 Dummy = Stream( IN_Log, 'C', 'Open' )
 Linein( IN_Log,,0 )
 i=1
 Do While Chars( IN_Log ) > 0
 tn = LineIn( IN_Log )
 Time = Word( tn, 1 )
 Size = Word( tn, 2 )
 Addr = Word( tn, 3 )
 Packet = Word( tn, 4 )
 Var = Word( tn, 5 )
 Command = Word( tn, 6 )
 File = Word( tn, 7 )
 Call LineOut 'Proxy.'Addr, tn
 End
 Dummy = Stream( IN_Log, 'C', 'Close' )
/* 'del' IN_Log */
 Call SysFileTree 'Proxy.*', 'IN_File', 'FO'
 Say IN_File.0
 do i=1 to IN_File.0 by 1
 Say IN_File.i
 D_Size = 0
 Tabs = ''
 demmy = Stream( IN_File.i, 'C', 'Close' )
 Do While Chars( IN_File.i ) > 0
 tn = LineIn( IN_File.i )
 Size = Word( tn, 2 )
 Addr = Word( tn, 3 )
 Tmp = D_Size + Size
 D_Size = Tmp
 end
 DownLoad = D_Size/(1024*1024)
 if DownLoad<10 then Tabs = Tabs' '
 if DownLoad<100 then Tabs = Tabs' '
 if DownLoad<1000 then Tabs = Tabs' '
 if DownLoad<10000 then Tabs = Tabs' '
 Say Addr': DownLoad' Tabs''DownLoad 'Mb.'
 Call LineOut OutLog, Addr': DownLoad' Tabs''DownLoad'Mb.'
 end
 Dummy = Stream( OutLog, 'C', 'Close' )
Return
Kill_Squid:
do while (queued()>0) /* Clear queue */
 pull .
 end
 DelProg = Prog
 do Forever
 '@go |grep "SQUID.EXE"|rxqueue'
 if queued()=0 then leave
 pull tmp
 tn = strip(tmp)
 pid = word(tn,1)
 prog = word(tn,8)
 Say 'Kill program'
prog 'PID='pid
 'go -k' pid
 Call SysSleep(5)
 do while (queued()>0)
/* Clear queue */
pull .
 end
 end
Return Syntax: / * Обробка виняткових ситуацій та помилок в програмі * /
 SS = SIGL LogLine = '! Помилка в програмі TOSSING.CMD в рядку 'SS'! '
 Call WriteLog LogLine = 'Рядок:' SourceLine (SS)
 Call WriteLog
Return =========================== Файл SquidStats.CMD =================
/* */
parse arg Location
'@Echo off'
Call rxfuncadd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
Call SysLoadFuncs
/* Trace A */
'set BEGINLIBPATH=C:\Utility\Perl5;'
'set PERL5LIB=C:/Utility/perl5/lib'
BaseDir = 'D:\Squid\cache-stats-1.4'
HOST='proxy.sgb.ru'
TOPN=50
/* D = DATE( 'S' )-1 */
LOGDIR=Location
D = Right( Location, 8 )
WWWDIR=LOGDIR
LOGFILE=LOGDIR'\access_log'
SUMFILE=WWWDIR'\summary.'D
WWWFILE=WWWDIR'\'D'.html'
if WWWDIR <> Directory( WWWDIR ) then
 'mkdir' WWWDIR
Dummy = Directory( BaseDir )
Say "Processing $LOGFILE ..."
Say "Running access-extract.pl ..."
'perl access-extract.pl <' LOGFILE '>' SUMFILE
Dummy = Directory( BaseDir )
Say "Running access-extract-urls.pl ..."
'perl access-extract-urls.pl <' LOGFILE '>>' SUMFILE
Dummy = Directory( BaseDir )
Say "Generating $WWWFILE ..."
Say "Running access-summary.pl ..."
'perl access-summary.pl -m' HOST '-n' TOPN '-H <' SUMFILE '>' WWWFILE
Return

У підсумку отримуємо купу логів в каталозі, зазначеною змінної Dir.WWW, частина з яких представляють текстові файли, а частина HTML_страніци, доступні з локального WWW. Частина тектсових логів робиться моїм шматком на рекс, де наведено по файлу на користувача – куди він лазив і один файл, де наведено об’ем скачали мегабайт кожним клієнтом.

Забув розповісти про Perl. Хоча його установка ніяких проблем взагалі не повинна викликати. Все спокійно береться або за ftp://oksoft.rsl.ru/pub/os2, або c ftp.cdrom.com. І ставиться, не задаючи жодних дурних питань, крім вказівки каталогів куди його ставити.

Збір статистики з маршрутизаторів Cisco MRTG v2.5.3.

Для початку потрібно прописати на маршрутизаторі “Community”.

Це робиться наступною послідовністю команд:

 enable (вхід в привілейований режим) configure terminal (режим конфігурування)
snmp-server community [Word] (Установка Community. "Word" ваше ключове слово, без дужок, звичайно)

Все. Далі створюєте конфіг для MRTG командою:

perl cfgmaker [Word]@[Host] > [Config_File.cfg] Де: Word Ключове слово, вказане вище, при конфігуруванні cisco Host Адреса або ім'я маршрутизатора Cisco, з якого потрібно буде знімати статистику Config_File.cfgсоздаваемий конфігураційний файл для цього хоста

Після цього в цьому файлі ставити першим рядком таку:

WorkDir: d:\WWW\10.1.0.1

Це у вас буде каталог, куди буде звалюватися статистика з цього хоста. У мене цей каталог доступний з WWW-сервера.

Можете в цьому файлі ще навести манікюр одержуваної сторінки, щоб вона виглядала красивіше.

Далі створюєте командний файл приблизно наступного змісту:

c:\utility\Perl5\Perl_ mrtg 10.1.0.1.cfg
c:\utility\Perl5\Perl_ mrtg 10.2.3.1.cfg
c:\utility\Perl5\Perl_ mrtg 10.2.3.4.cfg

Де останнім параметром прописуєте той хост, з якого потрібно збирати статистику. Далі налаштовуєте шудулер, щоб він запускав цей команднік, наприклад, кожні 5 хвилин.

Малюєте свою красиву сторінку з посиланнями на отримані сторінки і радієте зроблену роботу 😉 Поступово буде накопичуватися статистика, а ви будете бачити в WWW-браузері постійно оновлювану статистику по інтерфейсам маршрутизаторів.

PS: Мені б хотілося ще збирати таку ж статистику з сервера OS / 2. Але поки я не знаю як це зробити: (

Подальше намечаемое розвиток:

  1. Установка нормального SockS-сервера. Це буде або Socks від NEC, або Delegate.
  2. Установка стека IP не менше WR08610 з установкою файрвола на ньому, але поки не хочеться чіпати. Все ж і так працює 😉
  3. Підведення всіх демонів під SysLogD і єдину централізовану систему запуску / зупинки / перезапуску працюючих демонів.

Все! Ще додам, що все це господарство працює без особливих глюків вже майже 2 роки.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*