Мониторинг использования squid в реальном времени с помощью mrtg

()

Иногда возникает необходимость в реальном времени наблюдать за использованием кэша прокси-сервера squid. Удобнее всего для этого настроить рисования графика количества запросов в секунду, количества запросов из кэша и процентного отношения этих двух значений.

Прежде чем приступить к решению задачи немного конкретизируем начальные условия: у нас есть прокси-сервер под управлением Ubuntu Server 8.10, на котором установлен, настроен и запущен пакет squid3, он имеет IP-адрес 192.168.2.1. Так же у нас есть сервер мониторинга под управлением Debian Lenny, имеющий IP-адрес 192.168.2.10.

Для рисования графика удобнее всего использовать mrtg, а данные снимать по snmp. На самом деле ничего нового изобретать не нужно, всё что необходимо описано в этой статье. Фактически здесь мы просто адаптируем её под конкретные условия.

Первым делом нам нужно настроить squid таким образом, чтобы он отдавал нам данные по snmp. Для этого достаточно добавить в конец файла конфигурации (/etc/squid3/squid.conf) строки:

# Порт, с которого будем собирать данные по snmp
snmp_port 3401

# имя snmp-community. пусть будет public
acl snmp_monitoring snmp_community public

# сервер мониторинга
acl monitoring src 192.168.2.10

# разрешаем доступ к snmp-community public с хоста monitoring
snmp_access allow snmp_monitoring monitoring

запрещаем доступ к snmp во всех остальных случаях
snmp_access deny all

Посылаем squid команду перечитать конфигурацию:

squid3 -k reconfigure

На этом конфигурация прокси-сервера заканчивается. Единственное что - нужно скопировать с прокси-сервера файл /usr/share/squid3/mib.txt и разместить его в одной из директорий на сервере мониторинга. Автор предпочёл создать директорию /etc/mrtg и сохранить его в ней под именем squid.mib. Этот файл пригодиться нам чуть позже, а сейчас установим mrtg на сервер мониторинга (если его там ещё нет):

apt-get install mrtg

Если mrtg на сервере мониторинга до этого не был сконфигурирован, то создадим файл конфигурации /etc/mrtg.cfg с минимальными настройками:

WorkDir: /var/www/mrtg
EnableIPv6: no

Если же mrtg уже настроен то этот шаг нужно пропустить.

Теперь у нас есть уже настроенный mrtg, в конфигурацию которого осталось только настроить подгрузку нужного mib-файла и добавить рисование нужного графика. Сначала настроим загрузку нужного mib-файла, для этого добавим в файл конфигурации mrtg строку:

LoadMIBs: /etc/mrtg/squid.mib

И вот теперь финальный шаг. Добавляем секцию для рисования нужного графика:

Target[cacheHits]: cacheHttpHits&cacheProtoClientHttpRequests:public@192.168.2.1:3401
Title[cacheHits]: HTTP Hits
PageTop[cacheHits]: <H1>Proxy Cache Statistics: HTTP Hits / Requests</H1>
MaxBytes[cacheHits]: 10000000
Suppress[cacheHits]: y
LegendI[cacheHits]: HTTP hits
LegendO[cacheHits]: HTTP requests
Legend1[cacheHits]: HTTP hits
Legend2[cacheHits]: HTTP requests
YLegend[cacheHits]: perminute
ShortLegend[cacheHits]: req/min
Options[cacheHits]: nopercent, perminute, dorelpercent 

В итоге на графике будет три кривые:

  1. Синяя: количество обращений к прокси-серверу за единицу времени.
  2. Зелёная: количество ответов на запросы, вышедшие из кэша.
  3. Янтарная: процентное отношение второго к первому

Первые результаты появятся на графике минут через пятнадцать-двадцать после сохранения файла конфигурации. У автора этих строк график выглядит так:

Пример графика

Если вдруг график не рисуется, то первым делом нужно проверить отдаёт ли squid данные по snmp. Для этого нужно установить на сервер мониторинга пакет snmp:

apt-get install snmp

И попробовать опросить squid с помощью snmpwalk:

snmpwalk -v 1 -c public 192.168.2.1:3401 .1.3.6.1.4.1.3495.1.1

Вывод должен выглядеть примерно вот так:

SNMPv2-SMI::enterprises.3495.1.1.1.0 = INTEGER: 8148
SNMPv2-SMI::enterprises.3495.1.1.2.0 = INTEGER: 92156
SNMPv2-SMI::enterprises.3495.1.1.3.0 = Timeticks: (16730204) 1 day, 22:28:22.04

Если же snmpwalk выдаст примерно вот такую ошибку:

Timeout: No Response from 192.168.2.1:3401

То либо squid не настроен отдавать данные по snmp (нужно вернуться на прокси-сервер и проверить все настройки), либо нужный порт на прокси-сервере (в данном случае это 3401/udp) просто закрыт файрволлом (в этом случае его нужно открыть).

Приятной работы!

Ключевые слова: squid, snmp, mrtg.

Комментарии:

Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE