SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files
              ####################################################
              #                                                  #
              #      BARS - IP ranges statistics âåðñèÿ 1.4      #
              #                                                  #
              ####################################################

Ïðîãðàììà ïðåäíàçíà÷åíà äëÿ ñáîðà è àíàëèçà ñòàòèñòèêè ïîñåùåíèé íåñêîëüêèõ ñàéòîâ, ðàñïîëîæåííûõ íà îäíîì ñåðâåðå, ïîëüçîâàòåëÿìè ðàçëè÷íûõ ïðîâàéäåðîâ, ñåòåé, îðãàíèçàöèé, ðåãèîíîâ è äð. Äàííûå áåðóòñÿ èç ñòàíäàðòíûõ ëîãîâ Apache, ðåçóëüòàòû õðàíÿòñÿ â âèäå html-ôàéëîâ.

  1. Îïèñàíèå ïðîãðàììû.

Ïðîãðàììà ñîçäà¸ò ãðàôè÷åñêèå îò÷¸òû (ãèñòîãðàììû è ãðàôèêè) ïî êîëè÷åñòâó çàïðîñîâ êàæäîãî ñàéòà îò ïîëüçîâàòåëåé ðàçëè÷íûõ ñåòåé, ïî òðàôôèêó è ïî êîëè- ÷åñòâó óíèêàëüíûõ IP-àäðåñîâ ïîñåòèòåëåé ñàéòà çà ïîñëåäíèå 7 äíåé è çà ïðîøåä- øèé ãîä. Êðîìå òîãî, ýòè æå âåëè÷èíû ïðèâîäÿòñÿ â ñóììå ïî âñåì ñàéòàì, à òàêæå äîëÿ ñàéòà ïî êàæäîé èç âåëè÷èí â îáùåé ñòàòèñòèêå.

Òàêæå 1 ÿíâàðÿ êàæäîãî ãîäà ïðîãðàììà ñîçäà¸ò ãîäîâîé îò÷¸ò ñ óñðåäíåíèåì âñåõ âåëè÷èí ïî äíÿì íåäåëè è ïî ìåñÿöàì è ñîõðàíÿåò àðõèâ ñ äàííûìè çà ïðîøåä- øèé ãîä.

Âñå ðèñóíêè ñíàáæåíû ïîäñêàçêàìè äëÿ óäîáñòâà ïðîñìîòðà è ðàáîòû ñ äàííûìè. Ïðîãðàììà ñîçäà¸ò îò÷¸ò î ðàáîòå è çàïèñûâàåò åãî â óêàçàííûé â êîíôèãóðà- öèè ôàéë. Îò÷¸ò õðàíèòñÿ â òå÷åíèå 30 äíåé, ïîòîì àâòîìàòè÷åñêè îòðåçàåòñÿ.

2. Òðåáîâàíèÿ ïðîãðàììû.

Ïðîãðàììà ðàáîòàåò â Unix-ñèñòåìàõ, íàïèñàíà íà ÿçûêå Perl, ñîçäà¸ò html- îò÷¸òû è èçîáðàæåíèÿ â ôîðìàòå PNG. Äëÿ å¸ ðàáîòû íåîáõîäèìî, ÷òîáû â ñèñòåìå áûëà óñòàíîâëåíà ñòàíäàðòíàÿ GD-áèáëèîòåêà ñ ïîääåðæêîé àëôàâèòà òîãî ÿçûêà, íà êîòîðîì áóäóò ãåíåðèðîâàòüñÿ îò÷¸òû. Òàêæå íåîáõîäèìî óñòàíîâèòü ìîäóëü GD.pm.

Äëÿ ïðîñìîòðà ðåçóëüòàòîâ ÷åðåç www íåîáõîäèìî âûäåëèòü îòäåëüíûé êàòàëîã èëè ïîäêàòàëîã êàêîãî-ëèáî ñàéòà, â êîòîðîì îíè áóäóò äîñòóïíû, è ñîîòâåòñòâóþ- ùèì îáðàçîì íàñòðîèòü ñêðèïò çàïóñêà ïðîãðàììû (ñì. íèæå).

Ôîðìàò ëîãîâ Apache-ñåðâåðà ïðîãðàììà îïðåäåëÿåò ïî ñîîòâåòñòâóþùåé çàïèñè â åãî êîíôèãóðàöèîííîì ôàéëå (httpd.conf). Äëÿ óñïåøíîãî ÷òåíèÿ ëîãîâ ïðîãðàì- ìîé â íèõ îáÿçàòåëüíî äîëæíû ïðèñóòñòâîâàòü ïîëÿ HOST (IP-àäðåñ êëèåíòà), BYTE (îáú¸ì îòîñëàííîé èíôîðìàöèè), REQUEST (ñòðîêà çàïðîñà), DATETIME (âðåìÿ çàïðî- ñà), ïðî÷èå ïîëÿ íå èñïîëüçóþòñÿ. Çíà÷åíèÿ ñëåäóþùèõ ïîëåé â ñòðîêå ëîãà äîëæíû áûòü çàêëþ÷åíû â äâîéíûå êàâû÷êè (åñëè ïðèñóòñòâóþò): REQUEST, REFERER, UAGENT (user agent).

Àðõèâíûå ëîã-ôàéëû äîëæíû íàõîäèòüñÿ â òåõ æå êàòàëîãàõ, ÷òî è òåêóùèå.

3. Êîíôèãóðèðîâàíèå ïðîãðàììû.

Äëÿ ðàáîòû ïðîãðàììå íåîáõîäèìî 2 ôàéëà: ôàéë êîíôèãóðàöèè ïðîãðàììû è ôàéë ñî âñåìè íåîáõîäèìûìè òåêñòîâûìè âñòàâêàìè íà íóæíîì ÿçûêå.

Ôîðìàò ôàéëîâ:

3.1. Êîíôèãóðàöèîííûé ôàéë ïðîãðàììû.

Òåêñòîâûé ôàéë, ñîñòîÿùèé èç ÷åòûð¸õ ðàçäåëîâ: Configuration - ïóòè è èìåíà ôàéëîâ, ñ êîòîðûìè ðàáîòàåò ïðîãðàììà Filter è Exclude - ôèëüòðàöèÿ ëîãîâ
Providers - òàáëèöà, îïèñûâàþùàÿ äèàïàçîíû àäðåñîâ, íîìåðà è öâåòà ñåòåé

Êàæäûé ðàçäåë íà÷èíàåòñÿ ñ îòêðûâàþùåãî òåãà <Èìÿ> è çàêàí÷èâàåòñÿ çàêðûâà- þùèì òåãîì </Èìÿ>.  ôàéëå äîïóñòèìû êîììåíòàðèè, êîòîðûå íà÷èíàþòñÿ ñ ñèìâîëà ''. Äåéñòâèå ñèìâîëà '' ðàñïðîñòðàíÿåòñÿ äî êîíöà ñòðîêè.

3.1.1. Ðàçäåë Configuration

 êàæäîé ñòðîêå çàäà¸òñÿ èìÿ ïàðàìåòðà è ÷åðåç ïðîáåë åãî çíà÷åíèå (áåç êà- âû÷åê). Íåîáõîäèìî çàäàòü ñëåäóþùèå ïàðàìåòðû: ApacheConfigurationFile - ïîëíûé ïóòü è èìÿ ôàéëà êîíôèãóðàöèè Apache MainStorageFile - ïîëíûé ïóòü è èìÿ ôàéëà, õðàíÿùåãî ñîáðàííûå äàííûå ProgramReportFile - ïîëíûé ïóòü è èìÿ ôàéëà ñ îò÷¸òîì î ðàáîòå ïðîãðàììû TemporaryFile - ïîëíûé ïóòü è èìÿ âðåìåííîãî ôàéëà, ñîçäàâàåìîãî ïðîãðàììîé â

ïðîöåññå ðàáîòû äëÿ ðàñïàêîâêè ëîã-àðõèâîâ TargetDirectory - ïîëíûé ïóòü ê êàòàëîãó, êóäà áóäóò âûêëàäûâàòüñÿ html-îò÷¸òû LanguageFile - ïîëíûé ïóòü è èìÿ ÿçûêîâîãî ôàéëà LogFiles - ñïèñîê èì¸í àðõèâíûõ ëîã-ôàéëîâ, ðàçäåë¸ííûõ ïðîáåëàìè

Ðåàêöèÿ ïðîãðàììû íà îøèáêè â ðàçäåëå: îñòàíîâêà è âûäà÷à ñîîáùåíèÿ îá îøèáêå.

3.1.2. Ðàçäåë Filter

 êàæäîé ñòðîêå çàäà¸òñÿ èìÿ ïîëÿ ëîãà è ÷åðåç ïðîáåë åãî çíà÷åíèå. Êàæäîå çíà÷åíèå äîëæíî áûòü çàêëþ÷åíî â äâîéíûå êàâû÷êè, åñëè íåîáõîäèìî ñðàâíèâàòü ñ íèì öåëèêîì, èëè â ñèìâîëû '/', åñëè îíî áóäåò òðàêòîâàòüñÿ, êàê ðåãóëÿðíîå âû- ðàæåíèå. Åñëè äëÿ îäíîãî ïîëÿ íåîáõîäèìî çàäàòü íåñêîëüêî çíà÷åíèé, êàæäîå èç íèõ äîëæíî áûòü çàäàíî íà îòäåëüíîé ñòðî÷êå. Ñòðîêè ðàçäåëà îáúåäèíåíû ëîãè÷åñ- êèì ÈËÈ, ò.å. ñòðîêà ëîãà áóäåò ó÷èòûâàòüñÿ ïðîãðàììîé, åñëè óäîâëåòâîðÿåò õîòÿ áû îäíîìó óñëîâèþ. Èìåíà ïîëåé:
HOST - IP-àäðåñ ïîñåòèòåëÿ
LOGIN - ëîãèí ïîñåòèòåëÿ
USER - èìÿ ïîëüçîâàòåëÿ
DATETIME - äàòà è âðåìÿ çàïðîñà
REQUEST - ñòðîêà çàïðîñà
OSTATUS - íà÷àëüíûé ñòàòóñ ñåññèè
LSTATUS - êîíå÷íûé ñòàòóñ ñåññèè
BYTE - êîëè÷åñòâî ïåðåäàííîé ñåðâåðîì èíôîðìàöèè â áàéòàõ FILENAME - èìÿ ôàéëà
ADDR - IP-àäðåñ
PORT - ïîðò
PROC - ID ïðîöåññà
SEC - âðåìÿ îòâåòà â ñåêóíäàõ
URL - URL
HOSTNAME - hostname
REFERER - ñòðîêà REFERER çàïðîñà
UAGENT - àãåíò ïîëüçîâàòåëÿ

Ïðèìåð:
LSTATUS "200"
LSTATUS "206"

Ðåàêöèÿ ïðîãðàììû íà îøèáêè â ðàçäåëå: ñòðîêè ñ îøèáêàìè èãíîðèðóþòñÿ.

3.1.3. Ðàçäåë Exclude.

Òàêîé æå ôîðìàò, êàê è ó ïðåäûäóùåãî ðàçäåëà, íî ïðîãðàììà íå ó÷èòûâàåò ëî- ãè, ó êîòîðûõ çíà÷åíèå õîòÿ áû îäíîãî èç óêàçàííûõ ïîëåé ñîâïàäàåò ñ îäíèì èç ïåðå÷èñëåííûõ äëÿ íåãî çíà÷åíèé. Ðåàêöèÿ ïðîãðàììû íà îøèáêè àíàëîãè÷íàÿ.

Ïðèìåð:
REQUEST /^(?:OPTIONS|PUT|DELETE|TRACE|CONNECT)/

3.1.4. Ðàçäåë Providers

Êàæäàÿ ñòðîêà îïèñûâàåò îäèí íåïðåðûâíûé äèàïàçîí IP-àäðåñîâ. Ôîðìàò ñòðîêè: startIP;endIP;number;R,G,B;name

ãäå startIP - íà÷àëüíûé àäðåñ äèàïàçîíà,

endIP - êîíå÷íûé àäðåñ äèàïàçîíà,
number - íîìåð ãðóïïû ñåòåé,
R,G,B - äåñÿòè÷íûå ÷èñëà îò 0 äî 255, îïèñûâàþùèå öâåò, â êîòîðûé áóäóò îê- ðàøåíû ñîîòâåòñòâóþùèå äàííîé ãðóïïå ñòîëáöû ãèñòîãðàìì è êðèâûå ãðàôèêîâ,

name - íàçâàíèå ãðóïïû/ïðîâàéäåðà (æåëàòåëüíî íå áîëåå 20 ñèìâîëîâ).

Íîìåðà ãðóïï ñåòåé íà÷èíàþòñÿ ñ 1 è äîëæíû èäòè ïîñëåäîâàòåëüíî, ò.å. íå äîëæíî áûòü ïðîïóùåííûõ íîìåðîâ. Åñëè ó îäíîé ãðóïïû íåñêîëüêî äèàïàçîíîâ àäðå- ñîâ, èõ íóæíî ïåðå÷èñëèòü îäèí çà äðóãèì, â êàæäîé ñòðîêå óêàçûâàÿ íîìåð, öâåò è èìÿ, êàê òðåáóåòñÿ ïî ôîðìàòó. Ïðèìåð ñòðîêè: 194.135.0.0;194.135.255.255;5;204,172,32;Ðåëêîì

Ðåàêöèÿ ïðîãðàììû íà îøèáêè â ðàçäåëå: 1) Åñëè äèàïàçîíû áóäóò çàäàíû ñ ïåðåêðûòèåì, ïðîãðàììà áóäåò ñ÷èòàòü ïðîâåðÿå- ìûé IP-àäðåñ ïðèíàäëåæàùèì ïîñëåäíåìó (ïî ðàñïîëîæåíèþ â êîíôèãóðàöèîííîì ôàé- ëå) äèàïàçîíó, â êîòîðûé îí ïîïàäàåò.
2) Ãðóïïà ñåòåé îïðåäåëÿåòñÿ íîìåðîì. Åñëè îäíîìó íîìåðó â ðàçíûõ ñòðîêàõ áóäóò ñîîòâåòñòâîâàòü ðàçíûå èìåíà èëè öâåòà, áóäóò âçÿòû ïåðâûå âñòðåòèâøèåñÿ â ôàé- ëå, ïðî÷èå - ïðîèãíîðèðîâàíû.
3) Ðåàêöèÿ ïðîãðàììû íà îøèáêè â ôîðìàòå ñòðîêè íåèçâåñòíà, ïîñêîëüêó íå ïðîâå- ðÿëàñü. Ïîýòîìó ëó÷øå íå ðèñêîâàòü. :)

Äèàïàçîíû àäðåñîâ ìîæíî óçíàòü íà http://www.ripe.net

3.2. ßçûêîâîé ôàéë.

Êàæäàÿ ñòðîêà ôàéëà èìååò ôîðìàò
key^Tstring
ãäå key - êëþ÷åâîé íàáîð ñèìâîëîâ

^T - ñèìâîë òàáóëÿöèè
string - ñòðîêà òåêñòà
Ñòðîêà ìîæåò áûòü çàêîììåíòèðîâàíà, åñëè â íà÷àëå å¸ ïîñòàâèòü ñèìâîë # ÂÍÈÌÀÍÈÅ! Ñòðîêà íå ìîæåò áûòü çàäîêóìåíòèðîâàíà ÷àñòè÷íî!

Ñàìûé ïðîñòîé ñïîñîá ñîçäàòü íîâûé ÿçûêîâîé ôàéë - ñêîïèðîâàòü óæå èìåþùèé- ñÿ ïîä äðóãèì èìåíåì è ïåðåâåñòè â í¸ì âñå ñòðîêè íà íóæíûé ÿçûê.

Ðåêîìåíäóåìîå èìÿ ôàéëà - lang-##-ENCODING ãäå ## - äâóõñèìâîëüíîå îáîçíà÷åíèå ÿçûêà (en, ru, de, fr è ò.ä.) ENCODING - êîäèðîâêà
íàïðèìåð, lang-ru-win1251

Ðåàêöèÿ ïðîãðàììû íà îøèáêè â êîíôèãóðàöèîííîì ôàéëå: êàê ïðàâèëî, áåçîáèä- íàÿ, îòñóòñòâóþùèé èëè íåïðàâèëüíûé êëþ÷ ïðîñòî íå áóäåò èíòåðïðåòèðîâàí, ñîîò- âåòñòâóþùàÿ íàäïèñü íå áóäåò ïîÿâëÿòüñÿ. Îäíàêî îøèáêè â îáîçíà÷åíèÿõ äíåé íå- äåëè è ìåñÿöåâ, ñêîðåå âñåãî, ïðèâåäóò ê çàâèñàíèþ ïðîãðàììû.

4. Çàïóñê ïðîãðàììû.

Ïðîãðàììà ñîñòîèò èç äâóõ ôàéëîâ - collect.pl è drawpage.pl. Ïåðâûé çàíèìà- åòñÿ ñáîðîì èíôîðìàöèè èç ëîãîâ, âòîðîé - ñîçäàíèåì îò÷¸òîâ ïî ñîáðàííîé èíôîð- ìàöèè. Çàïóñê ïðîãðàììû äîëæåí ïðîèçâîäèòüñÿ åæåñóòî÷íî ñêðèïòîì âðàùåíèÿ ëîãîâ ïîñëå àðõèâèðîâàíèÿ ëîãîâ. Ñíà÷àëà çàïóñêàåòñÿ collect.pl, çàòåì drawpage.pl.

Ïåðâàÿ ñòðîêà ôàéëîâ: "#!/usr/bin/perl". Ïðè íåîáõîäèìîñòè ñëåäóåò çàìåíèòü â íåé ïóòü ê èíòåðïðåòàòîðó Perl íà òîò, êîòîðûé ñòîèò â âàøåé ñèñòåìå.

Îáà ôàéëà çàïóñêàþòñÿ îäèíàêîâî. Îáùèé âèä ñòðîêè çàïóñêà: <full_path_to_script>/<script> <full_path_to_config_file>/<config_file> ãäå <full_path_to_script> - ïîëíûé ïóòü ê ñêðèïòó

<script> - collect.pl èëè drawpage.pl ñîîòâåòñòâåííî <full_path_to_config_file> - ïîëíûé ïóòü ê ôàéëó êîíôèãóðàöèè ïðîãðàììû <config_file> - èìÿ ôàéëà êîíôèãóðàöèè ïðîãðàììû

Ñïèñîê èì¸í êàòàëîãîâ ñàéòîâ ïîäà¸òñÿ ñêðèïòó íà STDIN Èìåíà â ñïèñêå ìîãóò áûòü ðàçäåëåíû ñèìâîëàìè ïåðåâîäà ñòðîêè, ',' èëè ';'.

5. Ïðèìåð èñïîëüçîâàíèÿ ïðîãðàììû.

Ïðåäïîëîæèì, ÷òî âñå ñàéòû íà âàøåì ñåðâåðå ëåæàò â êàòàëîãå /usr/www, èìå- íà ñàéòîâ è èìåíà êàòàëîãîâ ñîâïàäàþò. Êàòàëîãè ñàéòîâ îòëè÷àþòñÿ îò äðóãèõ êà- òàëîãîâ, íàïðèìåð, òåì, ÷òî â íèõ åñòü ïîäêàòàëîãè 'html'. Ïðîãðàììà è âñå å¸ ôàéëû ëåæàò â /usr/www/progs/bars, èìåíà ôàéëîâ: mainstore.tar.gz - ôàéë, â êîòîðîì õðàíÿòñÿ ñîáðàííûå äàííûå, mainstore - èìÿ âðåìåííîãî ôàéëà, â êîòîðûé îíè áóäóò ðàñïàêîâûâàòüñÿ íà âðåìÿ

ðàáîòû ïðîãðàììû,
bars.conf - ôàéë êîíôèãóðàöèè ïðîãðàììû.

Òîãäà shell-ñêðèïò äëÿ çàïóñêà ïðîãðàììû áóäåò âûãëÿäåòü òàê:

  1. tar -zxf /usr/www/progs/bars/mainstore.tar.gz -O > /usr/www/progs/bars/mainstore
  2. prov=``
  3. for site in `ls -d /usr/www/*/html | sed "s/\/usr\/www\///g" | sed "s/\/html//g"`
  4. do
  5. prov=$prov$site,
  6. done
  7. rm /usr/www/progs/bars/mainstore.tar.gz -f
  8. echo $prov | /usr/www/progs/bars/collect.pl /usr/www/progs/bars/bars.conf
  9. echo $prov | /usr/www/progs/bars/drawpage.pl /usr/www/progs/bars/bars.conf
  10. tar -zc --remove-files --ignore-failed-read -f /usr/www/progs/bars/mainstore.tar.gz /usr/www/progs/bars/mainstore


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.