27.06.2017 Сервер Статистики aka Автоматизация измерений Эпизод II

Материал из SRNS
Перейти к: навигация, поиск
Строка 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 этой]. Написана она для того, чтобы подвести итог и чтобы потом не забыть, как это сделано и работает сейчас.
+
:'''Д'''анная страница продолжает дело создания Сервера Статистики и написана по мотивам нескольких статей: [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:

#!/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

Второй скрипт пишет логи - start_javad_log:

#!/bin/bash

IP=127.0.0.1
TcpPort=3500

DIR=/tmp/
FILE=javad.log

curl $IP:$TcpPort > $DIR/$FILE


MCR транслирует по сети протокол BINR через порт 3491. Для записи логов - start_mcr_log:

#!/bin/bash

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:

#!/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
Сервер Статистики не имеет экрана, но должен запускать GUI приложение, по крайней мере на данный момент так. Потому на нём поднят виртуальный X-сервер, который называется Xvfb, он загружается автоматически при старте системы. Сделано это так. Посмотреть на виртуальны экран можно командой ssvncviewer 192.168.0.94:5900

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты