Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> программы —> Nagios - мониторинг сети

Nagios - мониторинг сети

Автор: Al.


В один прекрасный день задался идеей построить какую-никакую систему мониторинга серверов сети и основных их сервисов. Изначально хотел написать скрипт на shell, который бы запускался по крону и подавал какие-нибудь сигналы, если сервер не ответил. Но, немного погуглив, понял, что велосипед изобретен уже давно и прогресс не стоит на месте. Итак, Nagios – система мониторинга сети и основных ее сервисов, таких, как ftp,pop,imap,sql и еще много чего (там около 20 модулей + есть возможность дописывать модули мониторинга на shell или perl ). В качестве оповещения может быть использована почта, icq(но я не пробовал) или звуковой сигнал. Также можно прикрутить веб-страничку (говорят, даж есть поддержка wap), на которой будет отображаться  доступность серверов и их сервисов, история сбоев, можно делать отчеты с графиками, а так же создать карту сети. Итак, кто заинтересовался – ставим:

[srv:/usr/ports]#make search name=nagios
Port:   nagios-2.5
Path:   /usr/ports/net-mgmt/nagios
Info:   Extremely powerful network monitoring system

После установки делаем

cat >> /etc/rc.conf
nagios_enable="YES"
Ctrl+<D>

Предполагается,что,веб-сервер apache уже поставлен.Если нет- ставим и запускаем.Если  по-простому,то ничего конфигурить не надо.

в /usr/local/etc/apache21/httpd.conf после

<Directory />
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

добавляем

ScriptAlias /nagios/cgi-bin /usr/local/www/nagios/cgi-bin/

<Directory "/usr/local/www/nagios">
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "Nagios Access"
    AuthType Basic
    AuthUserFile /usr/local/etc/nagios/htpasswd.users
    Require valid-user
</Directory>

Alias /nagios /usr/local/www/nagios/

<Directory "/usr/local/www/nagios/cgi-bin">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "Nagios Access"
    AuthType Basic
    AuthUserFile /usr/local/etc/nagios/htpasswd.users
    Require valid-user
</Directory>

Затем создаем файл паролей и заводим пользователей

#/usr/local/sbin/htpasswd -c /usr/local/etc/nagios/htpasswd.users nagios
#/usr/local/sbin/htpasswd  /usr/local/etc/nagios/htpasswd.users boss

файл /usr/local/etc/nagios/htpasswd.users boss можно расположить в любом месте.В моем примере не самый удачный вариант.

Тепери можно зайти на http://<IP-сервака>/nagios/ ,авторизоваться и полюбоваться интерфейсом.

Конфигурационные файлы нагиос, на мой взгляд, сделаны не самым лучшим образом и их имена могут меняться от версии к версии. Например, описание всех серверов и их сервисов в одном файле я считаю не самым лучшим вариантом, поэтому у меня на каждый сервер – свой файл (проще искать и править, если что-то не так). К счастью, Nagios позволяет менять структуру конфигов.

И так, в папке /usr/local/etc/nagios/  у меня находятся следующие файлы:

cgi.cfg - этот файл в основном содержит разграничение прав доступа к системе через веб. я его не почти не трогал. просто создал пользователей, как там. nagios-пользователь, под которым заходит админ, boss - все остальные. Эти пользователи не системные, так что поменять их потом не составит труда. так же задаются звуки, которые проигрываются в браузере в результате события.
default.cfg - в этот файл я собрал стандартные для всех серверов параметры - объявление периодов времени, группы, контакты и шаблоны
htpasswd.users - этот файлик мы потом создадим для паролей  
resource.cfg - я его не трогал. В стандартном варианте он содержит пути к компонентам (1 путь)
commands.cfg - файл, в котором описаны команды вызова модулей и оповещений. При добавлении нового модуля его надо прописывать именно туда.
hosts - папка, в которой лежат описания хостов
nagios.cfg - основной конфигурационный файл. Его переименовывать нельзя
sample - папка. Туда я скинул дефолтовые файлы конфигурации

Итак, файлы. Подробно расписывать просто нет времени, но там коментов хватает и так. В основном, все понятно

cgi.cfg:

main_config_file=/usr/local/etc/nagios/nagios.cfg
# Путь к www файлам
physical_html_path=/usr/local/www/nagios
# то,что добавляем в браузере после имени сервера
url_html_path=/nagios
show_context_help=1
use_authentication=1
default_user_name=guest
# Раздаем права
authorized_for_system_information=nagios,boss
authorized_for_configuration_information=nagios,boss
authorized_for_system_commands=nagios
authorized_for_all_services=nagios,guest,boss
authorized_for_all_hosts=nagios,guest,boss
authorized_for_all_service_commands=nagios
authorized_for_all_host_commands=nagios
default_statusmap_layout=5
default_statuswrl_layout=4
ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$
refresh_rate=45
# Назначаем звуки. Должни находиться в папке /usr/local/www/nagios/sound 
host_unreachable_sound=hostdown.wav
host_down_sound=hostdown.wav
service_critical_sound=critical.wav
service_warning_sound=warning.wav
service_unknown_sound=warning.wav
normal_sound=noproblem.wav

default.cfg



#Задаем периоды оповещения
define timeperiod{
        timeperiod_name 24x7
        alias           24 Hours A Day, 7 Days A Week
        sunday          00:00-24:00
        monday          00:00-24:00
        tuesday         00:00-24:00
        wednesday       00:00-24:00
        thursday        00:00-24:00
        friday          00:00-24:00
        saturday        00:00-24:00
        }

define timeperiod{
        timeperiod_name workhours
        alias           "Normal" Working Hours
        monday          09:00-17:00
        tuesday         09:00-17:00
        wednesday       09:00-17:00
        thursday        09:00-17:00
        friday          09:00-17:00
        }

define timeperiod{
        timeperiod_name nonworkhours
        alias           Non-Work Hours
        sunday          00:00-24:00
        monday          00:00-09:00,17:00-24:00
        tuesday         00:00-09:00,17:00-24:00
        wednesday       00:00-09:00,17:00-24:00
        thursday        00:00-09:00,17:00-24:00
        friday          00:00-09:00,17:00-24:00
        saturday        00:00-24:00
        }


define timeperiod{
        timeperiod_name none
        alias           No Time Is A Good Time
        }

# Определяем контакты для оповещений, время оповещения(шоб ночью не будил)
# и события, при которых трезвонить
define contact{
        contact_name                    nagios-admin
        alias                           Nagios Admin
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-by-email
        host_notification_commands      host-notify-by-email
        email                           your@e.mail
        }

# Создаем группу контактов. Для каждого сервера можно оповещать 
# Свою группу 
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 nagios-admin
        }

# Стандартные шаблоны хостов
define host{
        name                            generic-host    
        notifications_enabled           1               
        event_handler_enabled           1               
        flap_detection_enabled          1               
        failure_prediction_enabled      1               
        process_perf_data               1               
        retain_status_information       1               
        retain_nonstatus_information    1               
        notification_period             24x7           
        register                        0                
        }

define host{
        # Имя шаблона
        name                            freebsd-server  
        # Какой шаблон используем
        use                             generic-host    
        # Период проверки-круглосуточно
        check_period                    24x7            
        # Макс попыток проверки
        max_check_attempts              10              
        # Как проверяем жив-ли
        check_command                   check-host-alive 
        # Сообщаем о неполадках кпуглосуточно
        notification_period             24x7            
        # С каким интервалом повтор сообщения
        notification_interval           30           
        # читаем маны-забыл.Для каких событий шлем сообщения
        notification_options            d,u,r
        # Кому шлем сообщения           
        contact_groups                  admins          
        # Не регистрируем-это шаблон
        register                        0                
        }

# Группы хостов
define hostgroup{
        #Название
        hostgroup_name  in_servers
        #псевдоним-описание
        alias           Local Servers
        #кого включаем(сервера)
        members         localhost
        }
# групп может быть несколько
# каждую описываем отдельно
define hostgroup{
        hostgroup_name  out_servers
        alias           External Servers
        members         localhost
        }


# Стандартные шаблоны сервисов
define service{
        name                            generic-service         
        active_checks_enabled           1                       
        passive_checks_enabled          1                       
        parallelize_check               1                       
        obsess_over_service             1                      
        check_freshness                 0                        
        notifications_enabled           1                       
        event_handler_enabled           1                       
        flap_detection_enabled          1                       
        failure_prediction_enabled      1                       
        process_perf_data               1                       
        retain_status_information       1                       
        retain_nonstatus_information    1                       
        is_volatile                     0                       
        register                        0                     
        }

define service{
        name                            local-service           
        use                             generic-service         
        check_period                    24x7                    
        max_check_attempts              4                       
        normal_check_interval           5                       
        retry_check_interval            1                       
        contact_groups                  admins   
        # при каких ошбках звонить -warning
        #critical, unknown               
        notification_options            w,u,c,r                 
        notification_interval           60                      
        notification_period             24x7                    
        register                        0                       
        }

commands.cfg:

define command{
        command_name    check_local_disk                        
        command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ 
        }

«command_name    check_local_disk» - как мы назовем эту команду для дальнейшего использования (используется в файле описаний серверов)

«command_line    $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$» - как будем вызывать.$USER1$ - содержит /usr/local/libexec/nagios/, т.е. вызываем /usr/local/libexec/nagios/check_disk. далее передаем аргументы.чтобы узнать,какие ключи использует компонент, набираем /usr/local/libexec/nagios/check_disk -h. Так надо описать каждый компонент,который будем использовать.Изначально описан минимум,в /usr/local/libexec/nagios их больше
Если в файле хостов пишем «check_local_disk!1!2!3», то в итоге будет вызвано «/usr/local/libexec/nagios/check_disk -w 1 -c 2 -p 3»                        


nagios.cfg:

тут я только добавил инклуды моих файлов:

# Host and service definitions for monitoring this machine
cfg_file=/usr/local/etc/nagios/default.cfg

cfg_file=/usr/local/etc/nagios/hosts/localhost.host
#cfg_file=/usr/local/etc/nagios/hosts/server.host

cfg_file=/usr/local/etc/nagios/hosts/server.host - так добавляем файлы с описанием новых серверов

server.host:

define host{
        use                     freebsd-server            
        host_name               localhost
        alias                   localhost
        address                 192.168.93.220
        }



define service{
        use                             local-service         
        host_name                       localhost
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }


define service{
        use                             local-service         
        host_name                       localhost
        service_description             Root Partition
        check_command                   check_local_disk!20%!10%!/
        }

define service{
        use                             local-service         
        host_name                       localhost
        service_description             Current Users
        check_command                   check_local_users!20!50
        }

define service{
        use                             local-service         
        host_name                       localhost
        service_description             Total Processes
        check_command                   check_local_procs!250!400!RSZDT
        }

define service{
        use                             local-service         
        host_name                       localhost
        service_description             Current Load
        check_command                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
        }

define service{
        use                             local-service         
        host_name                       localhost
        service_description             ntp service
        check_command                   check_ntp
        }


define service{
        use                             local-service         
        host_name                       localhost
        service_description             dns service
        check_command                   check_dns
        }

define service{
        use                             local-service         
        host_name                       localhost
        service_description             ftp service
        check_command                   check_ftp
        }

define service{
        use                             local-service         
        host_name                       localhost
        service_description             ssh service
        check_command                   check_ssh!30
        }

define service{
        use                             local-service         
        host_name                       localhost
        service_description             mailqu service
        check_command                   check_mailq!1!3
        }

use local-service - используемый шаблон
host_name localhost - имя хоста,для кот выполняем проверку
service_description mailqu service - описание проверки
check_command check_mailq!1!3 - команда проверки и ее параметры

Вот,впринципе, и все. Писал уже с настроенного сервака,так что могут быть неточности....
Написано довольно криво-сам знаю,но на лучшее просто нету времени..Если кого реально заинтересует-напишу более подробно



размещено: 2007-10-19,
последнее обновление: 2007-10-19,
автор: Al


Roman, 2007-10-18 в 22:54:54

хотелось бы увидеть примеры использования snmptrap

Al, 2007-10-19 в 23:07:07

мне бы тоже:)
я его использую просто как чек-элайв хостов.А для snmp - MRTG. Насколько я знаю,нагиос не очень с снмп....

wiki, 2007-10-20 в 21:48:13

ну почему же, очень даже.
если написать свой скрипт.
с трапами и правда не удобно, а вот опрос - отличная вещь

tutsi, 2007-10-21 в 8:49:36

Зачем писать статью, если
"Итак, файлы. Подробно расписывать просто нет времени, но там коментов хватает и так. В основном, все понятно"

vehn, 2007-10-21 в 20:34:31

нинадо ля-ля, отличная статья

passshok, 2007-10-22 в 13:27:32

Nagios неплохая система мониторинга. Сам пользовался. И плагины писать предельно просто.

daimon_p, 2007-10-22 в 18:10:44

tutsi, 2007-10-21 в 8:49:36

Зачем писать статью, если
"Итак, файлы. Подробно расписывать просто нет времени, но там коментов хватает и так. В основном, все понятно"


Дык прочитал - кто не знал - и себе попробовал. А если чел не слышал об этом пакете ??

Al, 2007-10-24 в 14:56:48

Ну,сделал,как смог.......
Если че непонятно-пишите в асю или на мыло.Если знаю-отвечу,заодно попытаюсь поправить статью. Про snmp - если кому невзападло - накатайте в личку пару строк вкратце. Попробую дописать еще и про snmp.

Al, 2007-10-24 в 18:19:55

Товарищщи! В качестве обратного адреса в письмах используйте существующие почтовые домены,а лучше пишите в асю(есть на странице авторов).Я не могу ответить на письмо,если для домена отправителя нет почтовика...

AND, 2007-10-28 в 15:52:12

WAP-интерфейс есть сразу - http://server/nagios/cgi-bin/statuswml.cgi

Touch, 2007-10-29 в 13:43:25

> Если че непонятно-пишите в асю или на мыло.
А лучше прочесть вот эту серию статей:
http://onix.opennet.ru/content/view/17/26/

Al, 2007-10-29 в 14:35:28

>А лучше прочесть вот эту серию статей:
>http://onix.opennet.ru/content/view/17/26/
Я читал... кое-что из нее взял.Но там очень много ненужного,так как собирается из исходников(всмысле,не из портов).Притом много файлов,описанных там,в моем нагиосе  я просто не нашел... Видимо,другая версия.
А статья действительно неплохая.Кто хочет разобраться,что откуда,советую почитать

mak_v_, 2007-11-04 в 22:47:29

На днях пришлось ставить нагиос (из портов - ставится 2.9) на фрю (6.2)
столкнулся с такими проблеммами при установке по данному хауту
1)nagios -v /usr/local/etc/nagios/nagios.cfg
Это стандартная опция "-v" - Проверка кофигурационного файла
2)при проверке начал ругатся на отсутствующие комманды (Например:Error: Service check command 'check_ntp' specified in service 'ntp service' for host 'localhost' not defined anywhere!) - свидетельствует о том что команды нигде не описаны - в новой версии изменён формат конфига.
Решилось добавлением строк в nagios.cfg и соответствующих файлов из "файло-примеров"
cfg_file=/usr/local/etc/nagios/checkcommands.cfg
cfg_file=/usr/local/etc/nagios/misccommands.cfg
3)при проверке начал ругатся на отсутствующее описание "неправильных символов"
(Например: Checking misc settings...
Warning: Nothing specified for illegal_macro_output_chars variable!)
Решилось добавлением строк в nagios.cfg
illegal_object_name_chars=`~!$%^&*|'"<>?,()=
illegal_macro_output_chars=`~$&|'"<>
4) ну и соответственно некоторые из команд проверки сервисов не описаны в файлах - я их просто удалил
(например ssh service)/если честно то мне только пингалка да статус-картина хостов надо/

вроде всё, можно в остовной топик добавлять :-)

mak_v_, 2007-11-04 в 22:58:45

З.Ы.
Забыл написать про шедулер в вэб-интерфейсе:
1) для включения проверки "по заказу"(Re-schedule the next check of this host):
Решилось добавлением строк в nagios.cfg
check_external_commands=1

Al, 2007-11-08 в 20:27:25

Ну простите уж меня за такую кривую статью..... Протсто писать реально нет времени.Это даж не статья,а просто набор конфигов,кот работают у меня.
>Error: Service check command 'check_ntp' specified in >service 'ntp service' for host 'localhost' not defined >anywhere
скорее всего,команда не описана в commands.cfg
>check_external_commands=1
у меня так в дефолтовом конфиге было

grinz, 2007-11-21 в 16:27:37

А еще можно нагиос заставить слать смс и спокойно сидеть на парах.

никто, 2007-11-21 в 17:06:22

to grinz
а поподробнее можно?!

Al, 2007-11-28 в 22:53:22

Главное-найти способ слать их из консоли - а дальше суешь этот вызов или скрипт в команду оповещения вместо почты.Еще вариант-слать нетсенды,но для этого нужен smbclient

gruz0, 2007-12-10 в 16:56:24

curl'ом можно "слать" смс-ки. Находите веб-гейт вашего телефонного провайдера, изучаете форму отправки смс, передаете это все параметрами в curl, предварительно изучив man curl.

И, вуаля :-)
К сожалению, дать полный синтаксис для curl'а сейчас не могу, т.к. провайдер поставил "защиту" для веб-интерфейса - каптча, мать его :)

Credo, 2007-12-31 в 12:42:08

В принципе не плохо. Но тема не до конца раскрыта.
Если есть время то распиши пожалуйста более подробно.
   
А так в общем спасибо.

Kitamine, 2008-01-15 в 3:58:51

Помимо как curl'ом можно воспользоваться прогой smssend(вроде так называется она в портах есть). Она отправляет через форму отправки sms провайдера, вроде даже капчи обходит там под каждого оператора свой скрипт, мне на билайн отправляет.

gruz0, 2008-01-15 в 6:13:49

Kitamine, ага, я видел в портах, но почему-то мысль о том, что сейчас на веб-мордах операторов стоят каптчи... Как-то не пошло желание ставить)

У тебя обходит картинки? Ага?

Kitamine, 2008-01-15 в 14:52:30

Вот билайновксая форма с капчей.
http://www.beonline.ru/portal/comm/send_sms/simple_send_sms.sms
Мне через нее усешно отправляет.
p.s. только вроде мегафона, а я к нему недавно подключился из-за не дорогого жопареза.

Olaf72, 2008-02-04 в 17:47:15

Лучше отправлять через свой GSM модем,
зацепил мопедик, выбрал тарифный план чтобы СМС-ки слать без проблем,и вперед.
для Siemens модемов scmxx.

Artem, 2008-02-05 в 17:31:00

SMS!!!

pager   38068808XXXX@sms.beeline.ua

grinz, 2008-02-06 в 14:17:29

у мегафона, смартса и билайна есть почтовые ящики вида номер_телефона@sms.оператор.ru подключаетшь услугу и шлешь все себе в виде смс.

lissyara, 2008-02-06 в 14:24:52

нука скажи мне такой ящик для мегафон-москва....

Тим, 2008-03-07 в 10:21:02

Может быть кто знает систему мониторинга (опенсорс), которая позволяет помимо собственно мониторинга привязывать экшены (ответные действия), которые необходимо выполнять в нештатных ситуациях, и , которые, соответственно, можно запустить из интерфейса системы напрямую.

Kitamine, 2008-03-10 в 3:04:49

Незнаю правильно ли я понял насчет действия. Какие например, типа перегрузить сервис? Если да то нагиос это может.

RomC, 2008-05-05 в 16:02:50

мегафон поволжъе 7927xxxxxxx@sms.mgsm.ru для других регионов нужно искать на форуме мегафона.
mts 917xxxxxxx@volgase.mts.ru
beeline 903xxxxxxx@beemail.ru

mak_v_, 2008-05-05 в 16:50:29

К сожалению мой оператор не поддерживает смс-шлюз :-(
Life Ukraine - вот и сплю спокойно :-)

Elektron, 2008-11-28 в 9:54:26

Ребят а если смысл слать уведомления через sms шлюзы, ну к примеру если канал отвалиться с инетом, то что, это хорошо когда есть резерв но очень часто его нет... лично я выкрутился из положения поставив GSM модуль MC35i и прогой scmxx, просто отпраляю смски
примерно такой командой из нагиоса
/usr/local/bin/scmxx --device /dev/cuad0 --baud 9600 --send --sms -n $CONTACTADDRESS1$  --direct -t "$NOTIFICATIONTYPE$: $SERVICEDESC$ for $HOSTNAME$ ($HOSTADDRESS$) is $SERVICESTATE$ ($SERVICEOUTPUT$) $SHORTDATETIME$"

Allan_Sundry, 2009-02-19 в 18:48:44

Отличная статья (скорее правда набросок), но без чтения официальной документации - никак

Евгений, 2009-03-07 в 18:39:23

Статья рабочая, но хотелось бы дополнить с учетом FreeBSD 7.1 (Nagios 3.0.6 с портов)
1. service_notification_commands   notify-by-email
  host_notification_commands      host-notify-by-email
изменить на service_notification_commands   notify service-by-email
host_notification_commands      notify-host-by-email
2.Папка со звуками /usr/local/www/nagios/media(теперь так она называется) пустая.И не знаю, откуда их брать.Поэтому сироки,подключающие звук пришлось закоментировать.
Возникли такие вопросы:
1.Как заставить Nagios проверять не 22 порт SSH, а например 33(у меня SSH висит на нестандартном порту)?
2.Как подставить,например, логин и пароль для авторизации при проверке Web-сервера(конечно,можно отключить оповещение и пусть себе желтым светит(Warning)?(аналогично с MySQL)
3.Как при подключении очередного сервера для мониторинга, включить его в hostgroup(есть member localhost в default.conf.Пытался просто дописать через запятую или пробел - не подхватывает)?

adre, 2009-03-13 в 8:17:21

>Lissyara
На мегафонDV есть ящики, активируются смс, и шли себе с серваков сообщения об том как они работают...

sheva.sv, 2009-04-14 в 16:45:02

to Евгений
в commands.cfg в разделе # 'check_ssh' command definition есть строка  command_line    $USER1$/check_ssh -p ХХХ $ARG1$ $HOSTADDRESS$ вот в ней вместо ХХХ ставишь свой порт, а вообще в каталоге /usr/local/libexec/nagios/ есть все проверки, когда запустишь их с ключем -h все станет ясно)

Anaxion, 2010-03-22 в 12:34:48

Кому удобнее конфигурить через веб-интерфейс есть [NagiosQL=http://www.nagiosql.org]

pr0x1ndei, 2010-04-01 в 9:13:32

http://ws.edu.isoc.org/workshops/2008/apricot2008/netmanage/presos/nagios/nagios-config.png
карта взаимосвязи файлов
наглядно и просто

Алексей, 2010-08-23 в 23:28:00

Я уже 2 года пользуюсь xymon http://www.xymon.com/. Скрипты писать легко. Работает стабильно. Работает с windows и unix серверами. Можно snmp прикрутить.

o2x, 2010-09-14 в 17:36:37

Кто-нибудь отпишет, как конфигурировал перезапуск сервисов?

DyuS Novikov, 2011-09-29 в 15:55:21

Столкнулся с проблемой сборки p5-Crypt-DES и p5-Crypt-CBC
Нужно убить pkg_delete -f perl-5.8.*** и только тогда устанавливать perl-5.10***



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0688 секунд
Из них PHP: 51%; SQL: 49%; Число SQL-запросов: 77 шт.
Исходный размер: 68798; Сжатая: 15246