27.06.2017 Сервер Статистики aka Автоматизация измерений Эпизод II
Ustinov (обсуждение | вклад) |
Ustinov (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
</summary> | </summary> | ||
− | + | :'''Д'''анная страница продолжает дело создания Сервера Статистики и написана по мотивам нескольких статей: [https://www.srns.ru/wiki/Blog:Boldenkov/06.04.2017_%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BC%D0%B5%D1%80%D0%B5%D0%BD%D0%B8%D0%B9 этой], [https://www.srns.ru/wiki/Blog:Boldenkov/10.04.2017_%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_Javad_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D1%81%D0%B5%D1%82%D1%8C этой] и [https://www.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu этой]. Написана она для того, чтобы подвести итог и чтобы потом не забыть, как это сделано и работает сейчас. | |
Пути улучшения, как всегда, есть, но это дело будущего. | Пути улучшения, как всегда, есть, но это дело будущего. | ||
== Что за Сервер Статистики такой? == | == Что за Сервер Статистики такой? == | ||
− | '''Сервер Статистики''' - отдельно выделенный компьютер, работающий круглосуточно, к которому подключены различные приемники, в свою очередь, решающиеся по одной антенне. На данный момент подключены '''Javad Lexon GGD''', '''Swift Navigation Piksi''' и наш '''Oryx''' в <s>серой коробке</s> походном исполнении. Далее в статье Oryx фигурирует под мейнстримовым названием '''MCR'''. IP сервера '''192.168.0.94''', кодовое имя '''Evaluator''', пользователь '''srtt''', пароль известен. | + | '''Сервер Статистики''' - отдельно выделенный компьютер, работающий круглосуточно, к которому подключены различные приемники, в свою очередь, решающиеся по одной антенне. На данный момент подключены '''Javad Lexon GGD''', '''Swift Navigation Piksi''' и наш '''Oryx''' в <s>серой коробке</s> походном исполнении. Далее в статье Oryx фигурирует под мейнстримовым названием '''MCR'''. IP сервера [https://srns.ru/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_IP '''192.168.0.94'''], кодовое имя '''Evaluator''', пользователь '''srtt''', пароль известен. |
На протяжении суток Сервер Статистики пишет логи себе в ''/tmp'', а в начале каждых суток (00:00) решается по ним, строит картинки, делает некоторые статистические (вот почему Сервер Статистики, а не логов) вычисления и шлет это на заданные почтовые адреса типа '''@gmail.com'''. | На протяжении суток Сервер Статистики пишет логи себе в ''/tmp'', а в начале каждых суток (00:00) решается по ним, строит картинки, делает некоторые статистические (вот почему Сервер Статистики, а не логов) вычисления и шлет это на заданные почтовые адреса типа '''@gmail.com'''. | ||
Строка 18: | Строка 18: | ||
Необходимые '''программы''' в папке ''/home/CommonFiles/progs''. | Необходимые '''программы''' в папке ''/home/CommonFiles/progs''. | ||
+ | |||
+ | == Как заставить приемники делиться логами? == | ||
+ | Для этого существуют скрипты. | ||
+ | |||
+ | '''Javad''' не имеет ethernet возможностей, потому для него два скрипта. | ||
+ | |||
+ | Первый, настраивает приемник и запускает трансляцию данных в сеть - ''broadcast_javad:'' | ||
+ | <source lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | PORT=/dev/ttyUSB0 | ||
+ | |||
+ | stty -F $PORT raw | ||
+ | stty -F $PORT 115200 cs8 -parenb -cstopb -ixon | ||
+ | |||
+ | echo "em,,def:{1,,}" > $PORT | ||
+ | echo "em,,jps/gd" > $PORT | ||
+ | echo "em,,jps/qd" > $PORT | ||
+ | echo "em,,jps/WD" > $PORT | ||
+ | |||
+ | nc -l -p 3500 < $PORT | ||
+ | </source> | ||
+ | |||
+ | Второй скрипт пишет логи - ''start_javad_log:'' | ||
+ | <source lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | IP=127.0.0.1 | ||
+ | TcpPort=3500 | ||
+ | |||
+ | DIR=/tmp/ | ||
+ | FILE=javad.log | ||
+ | |||
+ | curl $IP:$TcpPort > $DIR/$FILE | ||
+ | </source> | ||
+ | |||
+ | |||
+ | '''MCR''' транслирует по сети протокол BINR через порт 3491. Для записи логов - ''start_mcr_log:'' | ||
+ | <source lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | IP=192.168.0.163 | ||
+ | TcpPort=3491 | ||
+ | |||
+ | DIR=/tmp/ | ||
+ | FILE=mcr.log | ||
+ | |||
+ | curl $IP:$TcpPort > $DIR/$FILE | ||
+ | </source> | ||
+ | |||
+ | |||
+ | '''Piksi''' пишет лог с помощью GUI программы ''swift_console'' в формате JSON, скрипт ''start_piksi_log:'' | ||
+ | <source lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | IP=192.168.0.222 | ||
+ | TcpPort=55555 | ||
+ | DIR=/tmp | ||
+ | FILE=piksi.log | ||
+ | |||
+ | echo /home/CommonFiles/progs/swift_console_v1.0.A_linux/console -t -p $IP:$TcpPort -l -o $DIR --logfilename $FILE | ||
+ | DISPLAY=:1 /home/CommonFiles/progs/swift_console_v1.0.A_linux/console -t -p $IP:$TcpPort -l -o $DIR --logfilename $FILE | ||
+ | </source> | ||
+ | Сервер Статистики не имеет экрана, но должен запускать GUI приложение, по крайней мере на данный момент так. Потому на нём поднят виртуальный X-сервер, который называется '''Xvfb''', он загружается автоматически при старте системы. Сделано это [https://www.srns.ru/wiki/Blog:Boldenkov/12.05.2017_Headless_Ubuntu так]. Посмотреть на виртуальны экран можно командой ssvncviewer 192.168.0.94:5900 |
Версия 12:50, 27 июня 2017
- Данная страница продолжает дело создания Сервера Статистики и написана по мотивам нескольких статей: этой, этой и этой. Написана она для того, чтобы подвести итог и чтобы потом не забыть, как это сделано и работает сейчас.
Пути улучшения, как всегда, есть, но это дело будущего.
Что за Сервер Статистики такой?
Сервер Статистики - отдельно выделенный компьютер, работающий круглосуточно, к которому подключены различные приемники, в свою очередь, решающиеся по одной антенне. На данный момент подключены Javad Lexon GGD, Swift Navigation Piksi и наш Oryx в серой коробке походном исполнении. Далее в статье Oryx фигурирует под мейнстримовым названием MCR. IP сервера 192.168.0.94, кодовое имя Evaluator, пользователь srtt, пароль известен.
На протяжении суток Сервер Статистики пишет логи себе в /tmp, а в начале каждых суток (00:00) решается по ним, строит картинки, делает некоторые статистические (вот почему Сервер Статистики, а не логов) вычисления и шлет это на заданные почтовые адреса типа @gmail.com.
После этого для Javad и Oryx логи копируются в папку /home/CommonFiles/logs, затем стираются. Логи для Piksi, в настоящее время, слишком тяжелы, потому они просто стираются без копирования.
Необходимые скрипты находятся в папке /home/CommonFiles/scripts.
Необходимые программы в папке /home/CommonFiles/progs.
Как заставить приемники делиться логами?
Для этого существуют скрипты.
Javad не имеет ethernet возможностей, потому для него два скрипта.
Первый, настраивает приемник и запускает трансляцию данных в сеть - broadcast_javad:
PORT=/dev/ttyUSB0
stty -F $PORT raw
stty -F $PORT 115200 cs8 -parenb -cstopb -ixon
echo "em,,def:{1,,}" > $PORT
echo "em,,jps/gd" > $PORT
echo "em,,jps/qd" > $PORT
echo "em,,jps/WD" > $PORT
nc -l -p 3500 < $PORT
Второй скрипт пишет логи - start_javad_log:
IP=127.0.0.1
TcpPort=3500
DIR=/tmp/
FILE=javad.log
curl $IP:$TcpPort > $DIR/$FILE
MCR транслирует по сети протокол BINR через порт 3491. Для записи логов - start_mcr_log:
IP=192.168.0.163
TcpPort=3491
DIR=/tmp/
FILE=mcr.log
curl $IP:$TcpPort > $DIR/$FILE
Piksi пишет лог с помощью GUI программы swift_console в формате JSON, скрипт start_piksi_log:
IP=192.168.0.222
TcpPort=55555
DIR=/tmp
FILE=piksi.log
echo /home/CommonFiles/progs/swift_console_v1.0.A_linux/console -t -p $IP:$TcpPort -l -o $DIR --logfilename $FILE
DISPLAY=:1 /home/CommonFiles/progs/swift_console_v1.0.A_linux/console -t -p $IP:$TcpPort -l -o $DIR --logfilename $FILE
Сервер Статистики не имеет экрана, но должен запускать GUI приложение, по крайней мере на данный момент так. Потому на нём поднят виртуальный X-сервер, который называется Xvfb, он загружается автоматически при старте системы. Сделано это так. Посмотреть на виртуальны экран можно командой ssvncviewer 192.168.0.94:5900
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.