Grafana & influxdb на banana pi

Дома крутится медиа сервер, к которому я и решил прикрутить немножко мониторинга.
Пока это датчик температуры и давления на шине I2C

Сервер – это Banana PI. У него есть SATA разъем для жесткого диска, и, что самое главное, GPIO ноги, на которые можно вешать разные устройства.

В качестве фронтэнда для мониторинга я решил взять Grafana. Это ограничило варианты хранилища данных.
Графана поддерживает Graphite, CloudWatch, ElasticSearch, InfluxDB, KairosDB, OpenTSDB, Prometheus.
Graphite – Не осилил документацию :(
CloudWatch – Облако от Amazon. Я не хотел полагаться на внешние сервисы
ElasticSearch – Java
InfluxDB – Написана на golang
KairosDB – Java поверх Cassandra
OpenTSDB – Java поверх HBase
Prometheus – Работает по pull модели. Он сам собирает данные. Мне это не понравилось

Java – не вариант. Мне не нравится экосистема Java, от нее пахнет корпоративным душком. Плюс, JVM сожрет больше ресурсов, чем я хочу.

В итоге остановился на InfluxDB – то, что все собирается в бинарный код мне показалось весьма уместным для слабого сервера. Более того, возможности писать в базу разнообразны и удобны. Простой HTTP интерфейс, просто UDP и т.п.

Сначала все показалось простым – забрать код, собрать и запустить.
На деле это конечно не так.

Начнем с golang. Его ставить совсем не очевидно. Самый свежий go1.5.x для установки хочет go1.4.x :)
После нескольких попыток поставил gvm, это сильно помогло. gvm, как и его братья из других языков rvm & nvm умеет ставить и переключать версии golang

Нельзя просто взять и сбилдить проект на golang, как я понял. ARM пока вызывает проблемы в golang. Дело еще и в том, что я не сильно знаком с этим стеком. Собирал grafana & influxdb долго и муторно. В установке сильно помогли следующие странички:
http://gridengine.eu/index.php/other-stories/229-installing-influx-db-on-raspberry-pi-2-2015-10-18
http://docs.grafana.org/project/building_from_source/

С этого момента уже легче. Есть БД и фронтэнд к ней.

Совсем бесплатно дался мониторинг состояния системы сервера. InfluxDB отлично интегрируется с кучей систем, в том числе и с collectd. Пришлось поменять всего пару конфигов.

Осталось прочитать данные с датчика. У меня был заранее закуплен датчик bmp180. Забегая заранее – датчик – это чрезвычайно просто.

bmp180

bmp180

Если кратко
– ставим библиотеку python для работы с i2c шиной
– скачиваем готовый скрипт для своего датчика :)
– пришлось адаптировать скрипт для записи непосредственно в InfluxDB через UDP
– пришлось адаптировать скрипт, чтобы он писал не миллибары, а миллиметры ртутного столба

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

Готовенький скрипт для работы
Как подключить датчик и поставить пакеты

А вот и пример датчика, висящего на i2c шине –

root@bananas:~# ls -l /dev/i2c*
crw-rw---T 1 root i2c 89, 0 Jan 1 2010 /dev/i2c-0
crw-rw---T 1 root i2c 89, 1 Jan 1 2010 /dev/i2c-1
crw-rw---T 1 root i2c 89, 2 Jan 1 2010 /dev/i2c-2
crw-rw---T 1 root i2c 89, 3 Jan 1 2010 /dev/i2c-3
crw-rw---T 1 root i2c 89, 4 Jan 1 2010 /dev/i2c-4
root@bananas:~# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77

Адаптированный скрипт лежит на гитхабе – https://github.com/Gromina/home_monitoring

Spotify на Kodi

Правильная инструкция по установке spotlight для kodi@rpi2.
spotlight позволяет слушать музыку со Spotify на своем kodi.
Нужно иметь Premium Spotify аккаунт. В противном случае Spotify не позволяет подключаться сторонним клиентам.

Arduino toolchain in OS X

Давно уже не возился с Arduino. Настолько давно, что обнаружил на обоих маках отсутствие тулчейна Ардуино :(

Я предпочитаю программировать Arduino непосредственно на С/C++ без всяких там IDE (если не считать vim за IDE). Как все это установить на мак написано ниже:

brew tap osx-cross/avr
brew install avr-libc
brew install avrdude --with-usb

Более подробно можете почитать тут.

avr-libc собирается довольно долго, не пугайтесь. Более того, оно может падать примерно так:

configure: updating cache ./config.cache
configure: creating ./config.status
config.status: creating Makefile
config.status: creating po/Makefile.in
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
make: *** [all] Error 2

Это тоже не беда. Просто вы не установили системные хедеры. Это делается так –


xcode-select --install

Подробнее про это

Happy coding!

arduino loves servo

arduino loves servo

Да, собираю я все проекты при помощи Make файла, позаимствованного отсюда и немного доработанного.

Управление FB с клавиатуры

Как оказалось, ФБ уже умеет понимать управление с клавиатуры. Наконец-то! Отключаю vimium на ФБ..

j , k — Scroll between News Feed stories
p — Post a new status
l — Like or unlike the selected story
c — Comment on the selected story
s — Share the selected story
o — Open attachment of the selected story
enter — See More of the selected story
/ — Search
q — Search chat contacts
? — Show this help dialog

Прага – на заметку

1 Связь+Интернет

Взял прямо в аэропорту симку Vodafone. Стоила что-то типа 8 евро. Брал только для интернета, звонить не планировал. Принимал входящие редиректы со скайпа. Но надо было брать с исходящими, например, такси вызывать. Инет почти был везде, быстрый. На неделю хватило.

2. Такси

Как объяснили местные – лучшее такси – Tick Tack. Гоняют на белых Ауди. В машине вода (попить), Интернет, USB подзарядка. В общем, всё классно. Парадоксально то, что они из самых дешёвых такси.

3. Еда

Не осилил тягаться с местными коллегами. Порции сильно больше московских, лучше не рисковать заказом более, чем одного блюда

Пиво, на мой неизощрённый вкус, такое же как и везде.

В целом посидеть покушать стоит в 2-4 раза дешевле чем в нерезиновой.

4. Посмотреть

Да просто надо дойти в центр города и бродить. Вышеград тоже ничего. Особых целей по посещению достопримечательностей не было, поэтому обошлись походами куда глаза глядят. Собственно, вокруг Карлова моста основная туристическая тусовка.

20140528-162028.jpg

Вид на Карлов мост с Petrin Tower

5. Общественный транспорт

Ходит хорошо, состояние нормальное. Билеты общие, действуют по времени – при первой поездке пропечатываешь билетик в автомате. безбилетников, говорят, наказывают сильно рублём.

Метро достаточно просторное, коридоры большие. Ходит пореже московского, но нормально.

 

 

 

Мак с ретиной долго включается

Думал, что просто новые маки стали говном и поэтому при открытии крышки показывают логин, но тормозят

Мой тормозил секунд 8-10. Уже почти смирился, но решил погуглить проблему

Оказывается, новые маки агрессивно экономят электричество. Соответственно, когда закрываешь крышку, он через небольшое время уходит в хибернацию.

Посмотреть политику своего мака можно так –

pmset -g

Установить хибернацию только после 24 часов сна (86400 – это секунды)

sudo pmset -a standbydelay 86400

По умолчанию мой мак выключался через час с небольшим

Оригинальные рекомендации