Всегда можно столкнуться с тем, каким бы Вы себя не считали специалистом в своем деле, что-то для Вас будет неожиданным. Вот так сейчас, у нас на работе, сотрудник отдела информационных технологий предложил в роли системы мониторинга за инфраструктурой использовать такое приложение, как Dude. Вот только я с ним никогда не работал да и слышал честно говоря впервые, мне же больше по душе использовать Zabbix (было много практического опыта). Ну да ладно решил и согласился на Dude. Итог Dude на Windows развернут, вот только коллега как-то уж очень быстро если что-то туда заведено все показывает — если честно я не успеваю — и да если ты это хоть раз сам сделал, то все действия по настройке происходят у тебя на автомате, а если нет. Вот я и хочу посмотреть самостоятельно, что же представляет из себя Dude, но разворачивать я его буду на Ubuntu 12.04.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)
Ввожу характерные идентификационные данные для подключения:
- Mode: remote
- User Name: admin
- Password: ничего не указываю
- Remember Password: Отмечают галочкой
- Connect To: указываю IP&DNS адрес системы где я разворачиваю серверную часть Dude
- Port: 2210 (по умолчанию)
Как только настройки подключены произведены нажимаю «Connect»
И вот клиентская часть 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) и FreeWifi — Add — Link, следом щелкаю левой кнопкой мыши по 10.7.8.63 и тяну линию до второго объекта и заполняю поля связки:
На заметку: синим цветом (как на представленном скриншоте ниже) отмечают параметры которые я изменил.
- Device: 10.7.8.63
- Mastering Type: snmp
- Interface: wlan1 (2) — интерфейс на котором у меня работает FreeWifi
- Type: wireless (изображение как соединено устройство и сеть)
И вот информация получаемая информация по использованию интернета.
Вот что мне и было интересно разобрать самим. Получилось. Да удобно, только вот использовать 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.