Серверная часть Dude на Ubuntu Precise

Posted by

Всегда можно столкнуться с тем, каким бы Вы себя не считали специалистом в своем деле, что-то для Вас будет неожиданным. Вот так сейчас, у нас на работе, сотрудник отдела информационных технологий предложил в роли системы мониторинга за инфраструктурой использовать такое приложение, как Dude. Вот только я с ним никогда не работал да и слышал честно говоря впервые, мне же больше по душе использовать Zabbix (было много практического опыта). Ну да ладно решил и согласился на Dude. Итог Dude на Windows развернут, вот только коллега как-то уж очень быстро если что-то туда заведено все показывает — если честно я не успеваю — и да если ты это хоть раз сам сделал, то все действия по настройке происходят у тебя на автомате, а если нет. Вот я и хочу посмотреть самостоятельно, что же представляет из себя Dude, но разворачивать я его буду на .5 Server amd64 — просто поклонник данной системы. Работу с Windows я оставлю кому нибудь еще.

ekzorchik@srv-mon:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-mon:~$ uname -a && lsb_release -a

Linux srv-mon 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 12.04.5 LTS

Release: 12.04

Codename: precise

ekzorchik@srv-mon:~$ sudo apt-get install wine xvfb x11vnc -y

, где xvfb — эмулятор для монитора

ekzorchik@srv-mon:~$ wget http://download2.mikrotik.com/routeros/6.34rc45/dude-install-6.34rc45.exe

ekzorchik@srv-mon:~$ Xvfb :1 -screen 0 800x600x16 &

[1] 11227

ekzorchik@srv-mon:~$ [dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!

[dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!

[dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!

[dix] Could not init font path element /usr/share/fonts/X11/Type1, removing from list!

Исправляем появление данных сообщений на консоль установкой недостающих пакетов:

ekzorchik@srv-mon:~$ ps aux | grep Xvfb

1000 11227 0.0 0.7 111308 15752 pts/0 Sl 07:50 0:00 Xvfb :1 -screen 0 800x600x16

ekzorchik@srv-mon:~$ kill -9 11227

ekzorchik@srv-mon:~$ sudo apt-get install x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic xserver-xorg-core -y

Пробую запуск еще раз:

ekzorchik@srv-mon:~$ Xvfb :1 -screen 0 800x600x16 &

[2] 11764

[1] Killed Xvfb :1 -screen 0 800x600x16

ekzorchik@srv-mon:~$ [dix] Could not init font path element /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType, removing from list!

Ага вот и еще один недостающий пакет, до устанавливаю:

ekzorchik@srv-mon:~$ killall Xvfb

ekzorchik@srv-mon:~$ sudo apt-get install -y x-ttcidfont-conf cabextract ttf-mscorefonts-installer

ekzorchik@srv-mon:~$ sudo dpkg-reconfigure --default-priority x-ttcidfont-conf

Пробую еще раз:

ekzorchik@srv-mon:~$ Xvfb :1 -screen 0 800x600x16 &

, но вот странно ничего не помогает, все равно выдает то же самое информационное сообщение:

ekzorchik@srv-mon:~$ Xvfb :1 -screen 0 800x600x16 &

[1] 1541 Xvfb :1 -screen 0 800x600x16

ekzorchik@srv-mon:~$ [dix] Could not init font path element /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType, removing from list!

ekzorchik@srv-mon:~$ x11vnc -display :1 -bg -forever

Далее стартую установку Dude:

ekzorchik@srv-mon:~$ export DISPLAY=:1

ekzorchik@srv-mon:~$ export WINEPREFIX=/opt/dude

ekzorchik@srv-mon:~$ sudo mkdir /opt/dude

ekzorchik@srv-mon:~$ sudo chown -R ekzorchik:ekzorchik /opt/dude

ekzorchik@srv-mon:~$ wine dude-install-6.34rc45.exe

Затем с другой системы (в моем случае это рабочая Ubuntu 12.04.5 Desktop amd64) посредством клиента remmina я настраиваю подключение к серверной системе (ее IP 10.7.8.120) и передо мной предстает окно мастера инсталляции скачанного и запущенного пакета через wine:

Шаг: License Agreement — нажимаю I Agree

Шаг: Choose Components — отмечаю все (The Dude (required) & Start Menu Shortcuts) — нажимаю Next >

Шаг: Choose Install Location — путь установки оставляю по умолчанию — нажимаю Install

Шаг: Installation Complete — нажимаю Close

Теперь нужно запустить dude в системе, как сервис:

ekzorchik@srv-mon:~$ sudo nano /etc/init.d/dude

#!/bin/bash

### BEGIN INIT INFO

# Provides: dude

# Required-Start: $remote_fs $syslog

# Required-Stop: $remote_fs $syslog

# Default-Start: 2 3 4 5

# Default-Stop:

# Short-Description: Dude Server

### END INIT INFO

action=${1}

# ----------------------------------------------

# User Options

# ----------------------------------------------

xvfb_pidfile='/var/run/dude-xvfb.pid'

wine_pidfile='/var/run/dude-wine.pid'

virtual_display=':1'

dude_path='/opt/dude'

# ----------------------------------------------

export DISPLAY=$virtual_display

export WINEPREFIX=$dude_path

start ()

{

echo -n 'Starting Dude virtual display: '

Xvfb $virtual_display &> /dev/null &

echo $! > $xvfb_pidfile

echo 'ok'

echo -n 'Starting Dude Server: '

sleep 5

wine 'c:\Program Files (x86)\Dude\dude.exe' --server &> /dev/null &

echo $! > $wine_pidfile

echo 'ok'

}

stop ()

{

echo -n 'Stopping Dude Server: '

kill $(cat $wine_pidfile)

rm -f $wine_pidfile

sleep 5

echo 'ok'

echo -n 'Stopping Dude virtual display: '

kill $(cat $xvfb_pidfile)

rm -f $xvfb_pidfile

echo 'ok'

}

case "$action" in

start)

start

;;

stop)

stop

;;

*)

echo "Usage: $0 {start|stop}"

;;

esac

# -----------------------------------------------------------------------
ekzorchik@srv-mon:~$ sudo chmod +x /etc/init.d/dude

ekzorchik@srv-mon:~$ sudo service dude start

Starting Dude virtual display: ok

Starting Dude Server: ok

ekzorchik@srv-mon:~$ sudo update-rc.d dude defaults

update-rc.d: warning: dude stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (none)

Adding system startup for /etc/init.d/dude …

/etc/rc0.d/K20dude -> ../init.d/dude

/etc/rc1.d/K20dude -> ../init.d/dude

/etc/rc6.d/K20dude -> ../init.d/dude

/etc/rc2.d/S20dude -> ../init.d/dude

/etc/rc3.d/S20dude -> ../init.d/dude

/etc/rc4.d/S20dude -> ../init.d/dude

/etc/rc5.d/S20dude -> ../init.d/dude

, но вот в чем беда, серверная часть не прослушивает требуемый порт:

  • Port: 2210
  • Secure Port: 2211

Внимательный анализ показал, что я скорее всего накосячил с пакетом dude который я скачал с официального сайта, а потому нужно использовать заметку где я ставил клиентскую часть:

ekzorchik@srv-mon:~$ sudo rm /etc/init.d/dude

ekzorchik@srv-mon:~$ sudo update-rc.d dude remove

ekzorchik@srv-mon:~$ wget http://download.mikrotik.com/dude-install-3.6.exe

ekzorchik@srv-mon:~$ export DISPLAY=:1

ekzorchik@srv-mon:~$ export WINEPREFIX=/opt/dude

ekzorchik@srv-mon:~$ wine dude-install-3.6.exe

ekzorchik@srv-mon:~$ wine "/opt/dude/drive_c/Program Files (x86)/Dude/dude.exe" -server

ekzorchik@srv-mon:~$ sudo netstat -tulpn | grep 2210

tcp 0 0 0.0.0.0:2210 0.0.0.0:* LISTEN 2773/wineserver

Чтобы проверить, что dude сервис поднят понадобиться произвести подключение клиентом либо с Windows системы, либо с Ubuntu системы. Ранее на своем блоге я разбирал, как поставить клиентскую часть dude к себе на рабочую станцию (Ubuntu 12.04.5 Desktop amd64 рабочее окружение Gnome Classic) по заметке.

Приложения — Wine — Programs — The Dude — запускаю The Dude, нажимаю по значку с молнией (Connect)

Подключаюсь клиентской частью Dude к серверной

Ввожу характерные идентификационные данные для подключения:

  • Mode: remote
  • User Name: admin
  • Password: ничего не указываю
  • Remember Password: Отмечают галочкой
  • Connect To: указываю IP&DNS адрес системы где я разворачиваю серверную часть Dude
  • Port: 2210 (по умолчанию)

Как только настройки подключены произведены нажимаю «Connect»

Настраиваю подключение к Dude Server part

И вот клиентская часть Dude успешно подключилась к серверной части Dude развернутой на серверной операционной системе Ubuntu 12.04.5 Server amd64

Подключение прошло успешно

Теперь я покажу, как поставить на мониторинг устройство Mikrotik SXT 2 которое организует сервис freewifi для клиентов в зоне ожидания.

Сперва включаем сервис snmp на sxt 2 (10.7.8.63)

Add — Device

  • Address: 10.7.8.63
  • User Name: admin
  • Password: 712mbddr@

В моем случае также отмечаю галочкой пункт Router OS

Нажимаю Next и добавляю сервисы которые я буду мониторить, отобразить их список можно путем нажатия кнопки Discovery (устройство будет опрошено автоматически).

Опрашиваю добавленное устройство на предмет наличия сервисов на нем

Нажимаю Finish и вот оно первое устройство на мониторинге

Первое устройство на мониторинге

Если щелкнуть по нему правой кнопкой мыши и перейдя на меню Tools — Winbox — запустится оснастка управления устройством которая автоматически подставит идентификационные данные и подключение произойдет.

Также в свойствах поставленного на мониторинг устройства можно предопределить:

  • Тип устройства
  • Профиль удаленного опроса оборудования (SNMP)

Также можно мониторить загруженность выделенной полосы для бесплатного интернета:

в любом произвольном месте на карте создаю еще один объект: Add — Network — Name (FreeWifi) и нажимаю Finish

после соединяю два объекта: устройства (FreeWifi) и FreeWifiAdd — Link, следом щелкаю левой кнопкой мыши по 10.7.8.63 и тяну линию до второго объекта и заполняю поля связки:

На заметку: синим цветом (как на представленном скриншоте ниже) отмечают параметры которые я изменил.

  • Device: 10.7.8.63
  • Mastering Type: snmp
  • Interface: wlan1 (2) — интерфейс на котором у меня работает FreeWifi
  • Type: wireless (изображение как соединено устройство и сеть)

Настраиваю связь между двумя устройствами в Dude Server

И вот информация получаемая информация по использованию интернета.

Визуализированное изменения трафика между устройством и организуемым сервисом бесплтаного Wifi

Вот что мне и было интересно разобрать самим. Получилось. Да удобно, только вот использовать Zabbix как-то все же ближе и лучше все же поставить если уж очень понадобиться, то Dude только на Windows — проблем и зависимостей намного меньше, просто нажимай «Далее», «Далее» делов то.

Но я все же хочу добить момент разворачивания серверной части Dude на Ubuntu 12.04.5 Server amd64, перезагружаю систему и вижу, что серверная часть Dude не стартует автоматически — это надо поправить.

ekzorchik@srv-mon:~$ sudo chown -R root:root /opt/dude/

ekzorchik@srv-mon:~$ sudo nano /opt/dude/dudes

killall Xvfb

Xvfb :1 -screen 0 800x600x16 &

x11vnc -display :1 -bg -forever

export DISPLAY=:1

export WINEPREFIX=/opt/dude

wine "/opt/dude/drive_c/Program Files (x86)/Dude/dude.exe" --server &> /dev/null &

exit

ekzorchik@srv-mon:~$ sudo chmod +x /opt/dude/dudes

ekzorchik@srv-mon:~$ sudo nano /etc/rc.local

/opt/dude/dudes

exit 0

после перезагрузки системы

ekzorchik@srv-mon:~$ sudo reboot

проверяю, что Dude-сервис серверной части запущен и VNC сервер тоже:

ekzorchik@srv-mon:~$ sudo netstat -tulpn | grep -E '(:5900|:2210)'

tcp 0 0 0.0.0.0:2210 0.0.0.0:* LISTEN 1034/wineserver

tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 1026/x11vnc

tcp6 0 0 :::5900 :::* LISTEN 1026/x11vnc

Отлично, а потому и подключение через клиент Remmina и Dude клиент также успешно проходит.

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

И вот только потом понимаешь, что можно было бы использовать минимальный графический интерфейс xfce (без использования Xvfb) чтобы когда подключаешься через remmina к хосту видеть экран и все остальное, а не просто черный экран как у меня сейчас. Хотя сейчас по части выделенной оперативной памяти на систему используется всего лишь навсего 420 Мегабайт и это очень хорошо.

Подведу итог: поставленную самому себе задачу я выполнил, разобрал как добавлять хосты на мониторинг, как настраивать связь между хостами. Необходимый пласт знаний у меня образовался, в дальнейшем опираясь на эту заметку я буду расписывать все более и более интересные для меня вещи, а пока собственно и всё, с уважением автор блога — ekzorchik.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

один × 1 =