|
Целью данной статьи является описание настройки MRTG для мониторинга состояния вашего прокси.
Будем считать, что вы знакомы с пакетом MRTG, принципом его работы и конфигурирования, т.е. я не буду отвлекаться на
описание установки самого MRTG и проблемы, которые могут при этом возникнуть.
Для тех, кто раньше не имел с ним дела и хочет детально ознакомится со всеми тонкостями, могу предложить зайти на сайт авторов этого проекта
Multi Router Traffic Grapher. Также советую прочитать неплохую статью Вячеслава Калошина
о том, что может MRTG и как его заставить эти возможности раскрыть :) Кроме того я перевел раздел Squid FAQ, касающийся настройки поддержки SNMP,
обязательно прочитайте !!!. Также хочется думать, что у вас установлена последняя стабильная версия Squid или хотя бы не
младше 2.2, т.к я буду рассматривать именно такой вариант. Настройка для Squid 2.1 несколько отличается, а кто-нибудь еще использует такой раритет ? :) Тогда
загляните в FAQ.
Теперь, когда все вводные даны, перейдем к делу. Опрос состояния Squid осуществляется по SNMP, поэтому прежде
всего нужно проверить, была ли включена поддержка SNMP при сборке вашего Squid-а. Начиная с версии 2.5, опции при сборке можно посмотреть при помощи
ключа -v:
%/usr/local/squid/sbin/squid -v
Squid Cache: Version 2.5.STABLE9
configure options: --enable-delay-pools --enable-snmp
|
В данном случае наличие ключа --enable-snmp свидетельствует о том, что все в порядке и поддержка SNMP включена. Если у вас
подобного ключа нет, то придется пересобрать Squid с его указанием:
%cd /usr/local/src/squid-source-dir/
%./configure --enable-snmp [прочие опции]
%make clean
%make all
%make install
|
Дело сделано. Теперь необходимо поправить squid.conf, а именно описать
acl c с указанием сообщества, которому разрешен доступ по SNMP, к примеру
|
acl My_SNMP snmp_community squidmrtg
|
описывает сообщество squidmrtg. Вы можете указать любое имя как для списка доступа
так и для сообщества.
Далее указываем номер порта, на котором Squid будет слушать SNMP-запросы.
Для snmp_port по умолчанию предлагается использовать значение 3401. Если нет необходимости его менять,
просто оставляем его без изменений:
Только не забывайте снять комментарий со строки snmp_port. Если в вашем конфиге параметра snmp_port нет, то его нужно обязательно указать !
Теперь опишем каким хостам можно к Сквиду по SNMP обращаться, т.к. по умолчанию доступ
запрещен всем:
acl myhost src 192.168.0.50/255.255.255.255
snmp_access allow My_SNMP myhost
snmp_access deny all
|
т.е. разрешаем запросы с хоста 192.168.0.50, всем остальным - запрещено.
Если есть необходимость можно привязать SNMP-агента к определенному IP, что
осущесталяется изменением следующих директив:
#snmp_incoming_address 0.0.0.0
#snmp_outgoing_address 255.255.255.255
|
Обращаю ваше внимание, что по умолчанию оба параметра закоментарены.
Теперь можно запускать Squid и проверять работоспособность наших настроек.
При запуске прокси в cache.log вы должны увидеть строку:
|
2003/03/13 11:51:12| Accepting SNMP messages on port 3401, FD 16.
|
Я считаю, что у вас уже установлен пакет ucd-SNMP,
воспользуемся для теста его утилитой snmpwalk. О том, что все в порядке просигнализирует примерно такой вот ответ:
%snmpwalk -p 3401 hostname squidmrtg .1.3.6.1.4.1.3495.1.1
enterprises.3495.1.1.1.0 = 65516
enterprises.3495.1.1.2.0 = 3686398
enterprises.3495.1.1.3.0 = Timeticks: (76421321) 8 days, 20:16:53.21
|
Если вы используете для сбора статистики по SNMP пакет
Net-SNMP 5.x.x, то синтаксис команды немного другой, а именно это будет
выглядеть так:
%snmpwalk -v 1 -c squidmrtg hostname:3401 .1.3.6.1.4.1.3495.1.1
SNMPv2-SMI::enterprises.3495.1.1.1.0 = INTEGER: 98276
SNMPv2-SMI::enterprises.3495.1.1.2.0 = INTEGER: 3276794
SNMPv2-SMI::enterprises.3495.1.1.3.0 = Timeticks: (20306107) 2 days, 8:24:21.07
|
Все, с самим Сквидом разобрались, теперь переходим к настройке собственно MRTG.
Попытаемся соорудить самое нужное - графики количества запросов к прокси, попадания в кеш и
их процентного соотношения, а также входящего/исходящего http-трафика. Про cfgmaker
можно забыть - файл конфигурации придется писать руками или взять мой
squid.cfg.
Немножко прокомментирую то, что получилось:
#Не забывайте создать WorkDir перед тем как пускать в дело indexmaker
WorkDir: /usr/local/apache/htdocs/mrtg/squid
#Если вы не хотите подгружать MIB-файл , то вам необходимо скопировать его
#в директорию, где хранятся MIB-файлы пакета ucd-SNMP под именем SQUID-MIB.txt.
#У меня, к примеру это /usr/local/share/snmp/mibs. Обращаю ваше внимание,что в
#версии 2.5 MIB-файл по умолчанию находится в директории squid/share .
LoadMIBs: /usr/local/squid/etc/mib.txt
#Я предпочитаю демоном MRTG запускать
RunAsDaemon: Yes
#Опрашиваем каждые 5 мин
Interval: 5
#Комментарии к графикам по-русски (koi8-r)
Language: russian
#Обязательно укажите SNMP-порт вашего прокси, в противном случае MRTG будет пытаться
#получить данные со 161-го и ничем особым это не закончится.
Target[cacheHits]: cacheHttpHits&cacheProtoClientHttpRequests:squidmrtg@detotam.com: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
#dorelpercent необходим для того, чтобы получить отношение хитов к запросам
Options[cacheHits]: nopercent, perminute, dorelpercent
#HTTP In/Out Kb
Target[squid-inout]: cacheHttpInKb&cacheHttpOutKb:squidmrtg@detotam.com:3401
Title[cacheServerInOutKb]: HTTP In/Out Kb
PageTop[cacheServerInOutKb]: <H1>proxy Cache Statistics: HTTP InKb / OutKb</H1>
MaxBytes[cacheServerInOutKb]: 10000000
Suppress[cacheServerInOutKb]: y
LegendI[cacheServerInOutKb]: HTTP InKb
LegendO[cacheServerInOutKb]: HTTP OutKb
Legend1[cacheServerInOutKb]: HTTP InKb
Legend2[cacheServerInOutKb]: HTTP OutKb
ShortLegend[cacheServerInOutKb]: Kb/min
Options[cacheServerInOutKb]: nopercent, perminute
|
Примечание.Если есть желание видеть статистику по HTTP In/Out в b/s, немного поправьте конфиг,
а именно измените строки:
Target[cacheServerInOutKb]: cacheHttpInKb&cacheHttpOutKb:squidmrtg@detotam.com:3401 * 1024
YLegend[cacheServerInOutKb]: Bytes/sec
ShortLegend[cacheServerInOutKb]: Bytes/s
Options[cacheServerInOutKb]: nopercent
|
Осталось создать index.html:
|
%/usr/local/mrtg/bin/indexmaker squid.cfg > /usr/local/apache/htdocs/mrtg/squid/index.html
|
Теперь ваш MRTG готов к запуску. Что должно получиться в результате его работы можно глянуть
здесь.
См. также:
19.01.2002
Вадим Веремеенко Copyright © 2002-2012
|