Как Получить Данные Для Mrtg Не Запуская SNMP-Сервер?
5 Apr2006

Рисование графиков загрузки сетевых интерфейсов – это, наверное, одно из самых популярных занятий UNIX-администраторов. ;-) Отличным инфтрументом для этого является утилита mrtg. Она может быть без проблем настроена на создание графиков загрузки интерфейсов любого поддерживающего SNMP устройства (в том числе и Linux-сервера с запущенным на нем snmpd). Но, иногда, мы не можем запустить snmp-демон на Linux сервере из-за маленького обхема оперативной памяти или еще по каким-то объективным причинам. Как же быть в такой ситуации, если графики все-таки нужны, но нет SNMP?

Когда я устанавливал свой домашний сервер для подключения домашней сети к Internet, на машине было очень мало оперативной памяти и тратить ее на запуск snmpd было просто не допустмимо. В качестве решения в этой ситуации я написал маленький Perl-скрипт, который получает информацию из /proc/net/dev и передает ее скрипту mrtg.

Если у Вас есть желание попробовать этот скрипт в действии, Вам нужно выполнить всего несколько простых шагов на Вашем сервере:

  1. Скачайте мой скрипт, переименуйте его в get_if_stats.pl и положите в каталог /usr/local/bin на Вашем сервере.
  2. Сделайте его исполняемым:

    # chmod +x usr/local/bin/get_if_stats.pl
    

  3. Добавьте новую запись в mrtg.conf (приведенный пример предназначен для интерфейса eth0):

    Title[new_graph]: World channel (eth0)
    PageTop[new_graph]: <h1>Some new mrtg graph (eth0)</h1>
    Target[new_graph]: `/usr/local/bin/get_if_stats.pl eth0`
    MaxBytes[new_graph]: 100000000
    

Вот и все! Теперь Вы можете создавать различные графики для любых сетевых интерфейсов не держа постоянно в памяти сервера огромного демона snmpd.