UMGUM.COM 

Squid3 + SNMP + Zabbix ( Особенности SNMP-мониторинга Squid3 применительно к Zabbix. )

30 ноября 2011  (обновлено 15 августа 2016)

OS: Debian GNU/Linux Lenny/Squeeze.

Для того, чтобы SNMP-клиент мог начать работать со Squid необходимо включить поддержку этого протокола в программе.

После того, как поддержка SNMP в Squid обеспечена, проверяем, отдаст ли сервер данные по запросу члена community (Squid не отдаёт список всех своих переменных на неопределённый запрос, как это делают модемы, например; нужно запрашивать именно то, что нужно, конкретный корневой OID: .1.3.6.1.4.1.3495.1):

# /usr/bin/snmpwalk -c [community] -v 2c [host]:[port] .1.3.6.1.4.1.3495.1

SNMPv2-SMI::enterprises.3495.1.1.1.0 = INTEGER: 519088
SNMPv2-SMI::enterprises.3495.1.1.2.0 = INTEGER: 4861060
SNMPv2-SMI::enterprises.3495.1.1.3.0 = Timeticks: (9211804) 1 day, 1:35:18.04
....
SNMPv2-SMI::enterprises.3495.1.2.2.0 = STRING: "squid"
....
SNMPv2-SMI::enterprises.3495.1.2.6.0 = STRING: "ordinary.proxy.local"
SNMPv2-SMI::enterprises.3495.1.3.1.1.0 = Counter32: 758
SNMPv2-SMI::enterprises.3495.1.3.1.2.0 = Counter32: 5698280
....

Более "человеко-понятно" SNMP-вывод Squid можно просмотреть с помощью специально приложения, MIB-браузера, сделав это так, как я описывал в этой заметке. Большинство разработчиков приложений, поддерживающих SNMP, создают свои дополнения к дереву параметров SNMP. Squid не исключение. Для того, чтобы погулять по ветвям параметров вывода необходимо применить к "браузеру" файл с описанием дополнительных параметров, который обычно прилагается к дистрибутиву:


# cp /usr/share/squid3/mib.txt /etc/squid3/misc/squid.3.1.6.mib

Копируем MIB файл в директорию "Mibs" нашего "браузера", удаляем файл ".index" и перезапускаем приложение. Получаем стандартное дерево SNMP с дополнениями от разработчиков Squid.

Побродив по дереву отображаемых параметров я нашёл несколько, данные которых вполне можно брать, анализировать и визуализировать в виде графиков или иных способов отчётности:

cacheUniqName ( Cache unique host name )
.1.3.6.1.4.1.3495.1.2.6

cacheNumObjCount ( Number of objects stored by the cache )
.1.3.6.1.4.1.3495.1.3.1.7

cacheProtoClientHttpRequests ( Number of HTTP requests received )
.1.3.6.1.4.1.3495.1.3.2.1.1

cacheHttpInKb ( Number of HTTP KB’s received )
.1.3.6.1.4.1.3495.1.3.2.1.4

cacheHttpOutKb ( Number of HTTP KB’s transmitted )
.1.3.6.1.4.1.3495.1.3.2.1.5

cacheServerRequests ( All requests from the client for the cache server )
.1.3.6.1.4.1.3495.1.3.2.1.10

cacheServerInKb ( KB’s of traffic received from servers )
.1.3.6.1.4.1.3495.1.3.2.1.12

cacheServerOutKb ( KB’s of traffic sent to servers )
.1.3.6.1.4.1.3495.1.3.2.1.13

cacheClients ( Number of clients accessing cache )
.1.3.6.1.4.1.3495.1.3.2.1.15

В случае с сервером мониторинга Zabbix можно создать специальный шаблон (например: t_squid) для работы с сервером Squid, параметры которого в дальнейшем использовать для непосредственного опроса и визуализации.

Основной нюанс в сборе данных счётчика загруженных килобайт. "CacheServerInKb" ( KB’s of traffic received from servers ) - это линейный счётчик загруженых килобайт. Если делать срез раз в восемь секунд, то получим показатель среднего количества килобит, прошедших в секунду, за период в восемь секунд; после этого перемножаем показатель на 1024 и получаем среднюю скорость загрузки Squid в битах за период в восемь секунд).

На практике показатели полученные от Squid3 по SNMP несколько отличаются от показателей, полученных от стоящего за ним Cisco PIX процентов на 5 (пять), причём они плавают, то вверх, то вниз. Я склонен объяснять это использованием кеша.


Заметки и комментарии к публикации:


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