Yellow Leaf

Yellow Leaf


Поиск по сайту


Вход
Правила портала
Регистрация
Забыли пароль?
О команде проекта
Справка по оформлению постов


Последние комментарии к новостям и статьям
Re: С днём системного администратора!
Re: Вышел новый номер v10.07(2) компьютерного журнала UserAndLINUX.
Re: Отчет о первом "Runtu InstallFest" в Екатеринбурге
Re: OpenVPN сервер для офисного шлюза на FreeBSD
Re: Релиз Runtu LXDE 10.04!
Ещё комментарии >>>


Новые файлы
Debian: cue2tracks_0.2.11_all (Дополнение для CUE 2 Tracks v0.2.11)
Gentoo: cue2tracks-0.2.11 (Дополнение для CUE 2 Tracks v0.2.11)
CUE 2 Tracks v0.2.11
Jabber-Shell 20090303
EasySoft AutoRun 0.4.1


Новое на форуме
Движок сайта. версия 2.0
Нужен логопед, срочно
Словить процесс
проблемы с разделом жесткого диска
планировщик, веб интерфейс


Проекты
Jabber-Shell
Qmmp
QStarDict
PHPSAAdmin


 
   


Друзья сайта
 Open Kazan - Казанское сообщество пользователей OpenSource 


Посетителей с 08.09.2006

4671561


Внешний вид портала


RSS-Ленты
Новости
Файлы


 

   
  Яндекс цитирования  

«Жёлтый Лист» - cайт о мире юникс
Новости Форум Статьи Файлы Пользователи
   

Мониторинг загрузки интерфейса OpenVPN с помощью MRTG

MooSE 2009-03-29 18:56:56

Многие системные системный администраторы используют для удалённого доступа сотрудников в офис OpenVPN, который создаёт на сервере виртуальный tap-интерфейс.

Иногда возникает необходимость следить за трафиком, проходящим через OpenVPN, например с помощью MRTG. Если OpenVPN сервер и MRTG установлены на одном и том же сервере - задача решается с помощью несложных скриптов, которые уже описывались. Однако этот способ не подойдёт в том случае, если MRTG работает на отдельном сервере и наблюдает за интерфейсами офисного шлюза "издалека".

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

Как всегда начальные условия:

  • Офисный шлюз с внутренним адресом 192.168.2.1 под управлением Ubuntu Server 8.10, имеющий два интерфейса: внешний - eth0 и внутренний - eth1. На нём так же развёрнут OpenVPN-сервер, который использует интерфейс tap0.
  • Сервер мониторинга под управлением Debian Sid с IP-адресом 192.168.2.10.

Переходим к решению задачи. Для начала установим snmpd на офисном шлюзе:

apt-get install snmpd

Далее приводим файл /etc/default/snmpd к виду:

export MIBDIRS=/usr/share/snmp/mibs
SNMPDRUN=yes
SNMPDOPTS='-c /etc/snmp/snmpd.conf'
TRAPDRUN=no
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
SNMPDCOMPAT=yes

Затем приводим файл к виду:

syslocation   Work
syscontact    user@some.host
sysservices   0
sysservices   12
rocommunity   public  192.168.2.10
syslocation:  Systemland, USA

И перезапускаем службу:

invoke-rc.d snmpd restart

Если у вас используются другие адреса - здесь и далее подставляйте свои значения.

Переходим к серверу мониторинга. Для начала установим на него mrtg:

apt-get install mrtg

Создадим начальную конфигурацию:

cfgmaker public@192.168.2.1 > /etc/mrtg.cfg

Далее выбросим из файла конфигурации всё то, что не относится к интерфейсам eth0 и eth1. Возможно вы так же захотите переопределить параметр WorkDir, определяющий место, куда MRTG будет складывать графики.

А вот теперь встаёт вопрос: что же делать с интерфейсом tap0? При сборе статистики по snmp к интерфейсам обращаются по их индексам, однако у tap0 индекс меняется с каждым перезапуском сервиса openvpn, а информация об имени интерфейса в snmp отсутствует.

Решение приходит в виде описанных ранее скриптов, которые с незначительными модификациями можно использовать и для решения этой задачи.

В модифицировнном вариате скрипт будет заходить на шлюз по SSH и уже там запускать утилиту ifconfig для получения информации об интерфейса tap0. Для этого нам понадобиться создать отдельного пользователя на шлюзе и настроить авторизацию по ключу.

Создаём на шлюзе пользователя:

adduser mrtg

Затем на сервере мониторинга от имени пользователя root гененируем новый ключ:

ssh-keygen -t dsa

Копируем его на шлюз:

ssh-copy-id -i ~/.ssh/id_dsa.pub mrtg@192.168.2.1

Теперь создаём скрипт, который будет забирать информацию со шлюза:

#!/bin/sh

IFACE="tap0"
INPUT=`ssh moose@192.168.2.1 /sbin/ifconfig ${IFACE} | grep bytes | awk '{print $2;}' | cut -d ':' -f2`
OUTPUT=`ssh moose@192.168.2.1 /sbin/ifconfig ${IFACE} | grep bytes | awk '{print $6;}' | cut -d ':' -f2`
DATE=`date +%s`
echo $INPUT
echo $OUTPUT
echo $DATE
echo $IFACE

И сохраняем его на сервер мониторинга под именем: /root/scripts/mrtg_get_openvpn_info.sh. Так же его нужно сделать исполняемым:

chmod +x /root/scripts/mrtg_get_openvpn_info.sh

После чего добавляем в файл конфигурации mrtg следующие строки:

Target[openvpn]: `/root/scripts/mrtg_get_openvpn_info.sh`
MaxBytes[openvpn]: 10000000
#XSize[openvpn]: 600
#YSize[openvpn]: 160
Title[openvpn]: OpenVPN
PageTop[openvpn]: <h1>OpenVPN traffic graph</h1>

Теперь у нас среди прочих графиков появится ещё и график загрузки интерфейса OpenVPN.

На этом всё. Приятной работы!

Ключевые слова: mrtg openvpn ssh ifconfig

Версия для печати

Возможно вас заинтересуют следующие товары:


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

Содержание*:
=

При копировании материалов с этого сайта ссылка на источник обязательна! Уважайте труд авторов!


Если материалы с этого сайта оказались вам полезны - Вы можете поддержать этот проект переведя на его счёт любую сумму, какую сочтёте нужным.

рублей


Обратная связь


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