Мониторинг серверов c Grafana и Influxdb
Есть меня несколько серверов которые бы мне хотелось постоянно мониторить на предмет оперативной памяти, диского пространства и т.п. Хотя сами сервера расположены в разных местах все они объединены между собой по openvpn. Для того чтобы решить задачку мой выбор пал на связку influxdb+grafana.
Influxdb это так называемая timeseries база данных, в которой мы можем хранить данные которые изменяются во времени. Grafana - это универсальный UI который удобно использовать для визуального представления таких данных. InfuxDB и Grafana поднимаются на при помощи docker-compose. К при этом для того, чтобы послать данные состояния сервера используется баш скрипт который периодически запускается через cron и при помощи curl посылает данные на сервер
Таким образом я всегда могу видеть состояние того или иного сервера. Все системы будем подымать в докере для этого достаточно склонировать репозиторий с docker-compose который содержит в себе 3 образа - influxdb, grafana и chronograph.
git clone git@github.com:maxistar/docker-compose-influxdb-grafana.git
cd docker-compose-influxdb-grafana
git checkout influx1_8
docker-compose up -d
Influxdb версии 2.x требует авторизации и поэтому я использовал версию 1.8. Исправленный docker-compose.yaml живет в ветке influx1_8 где я использую именно эту версию, возможно в будущем разберусь как использовать и последнюю версию.
После того как InfluxDB и Grafana запущены, на сервере, который будем мониторить, создаем bash скрипт (script.sh).
#!/bin/bash
dbName="db0"
stat=`free | awk -v RS="" '{print "memory,host=acentauri used=" $9 "\nmemory,host=acentauri total=" $8 "\nmemory,host=acentauri swap=" $15 "\nmemory,host=acentauri swapused=" $16}'`
curl -s -i -XPOST "http://10.8.0.100:8086/write?db=db0" \
--data-binary "$stat"
делаем файл исполнимым и добавляем команду для запуска скрипта в cron:
chmod +x script.sh
contab -e
в открывшимся файле добавляем следующую строчку:
* * * * * /home/maxim/infrastructure/utils/memusage/script.sh
После того как данные начали посылаться на сервере настраиваем dashboard и наслаждаемся.
После того как начал мониторить состояние asterisk сервера он волшебным образом перестал зависать! Возможно его зависания были связаны с тем что зависает wifi модуль и я его перестаю видеть по сети.
Быстрый тест на кароновирус
Любой житель Берлина, неважно граждан или приезжий, имеет право на еженедельный, бесплатный тест на короновирус. То есть, ты можешь совершенно бесплатно каждую неделю делать новый тест. А людям, работающим с людьми, например учителям, бесплатный тест положен два раза в неделю.
Для этого по всему Берлину открыты десятки центров где можно сделать тест. Один такой центр находится у нас прямо под окнами. Вчера проверили как это работает.
Для этого достаточно просто зарегистрироваться на специальном сайте, и прийти к выбранному времени. Для прохождения тестирования надо принести любое удостоверение личности и емайл с подверждением времени приема, который можно даже не распечатывать. Больше никаких документов не надо. Не нужна даже карта медицинской страховки которая обычно требуется при любом посещении врача.
Все посетители в центре тестирования обязаны быть в маске и держать дистанцию полтора-два метра.
Буквально сразу после тестирования на электронную почту пришел пароль для доступа к результатам теста. А еще через полчаса пришел и сам тест в виде PDF файла.
Берегите себя и оставайтесь здоровыми!
Лайфхак
Вам надоела однообразная контекстная реклама в интернет? Надоела навязчивая и неинтересная реклама онлайн курсов? Достали предложения диванных экспертов купить их говнокнижку?
Зайдите на сайт lаmoda и положите пару шмоток в корзину - и..., ваша контекстная выдача волшебным образом преобразится! Не благодарите.
Доступ к домашнему фотоархиву
Домашний фотоархив у меня хранится на удаленном сервере в папке на дисках объединенных программным RAID5. Одна маленькая проблемка - сервер хоть и доступен по ssh, физически, находится в другом месте и, вообще в другой стране, поэтому, я давно ищу способ просматривать фотоархив через браузер.
Существует большое количество решений органайзеров для фотоальбомов, но все они либо медленные, либо хотят переименовать и переконвертировать мой фотоархив на свой лад, а это мне не подходит.
Задался вопросом, почему я не могу найти решение которое бы мне подходило? Возможно, я просто не то ищу.
Что мне, собственно, нужно? Мне нужен веб интерфейс для фотоальбома, который будет генерироваться на основе картинок, разложенных по папкам и будет доступен по сети. Желательно чтобы решение работало максимально быстро и не требовало мощного железа. На что это похоже? На статический генератор сайтов!
Вчера попробовал несколько проектов статических фотогалерей и остановился на Sigal.
Sigal это статический генератор фотогалерей который создает статический сайт из папки с изображениями. Написан на Python 2.x, поддерживает субдиректории, имеет несколько тем и умеет работать со всеми основными медиаформатами.
Для установки достаточно набрать:
pip install sigal
Теперь, чтобы сгенерировать сайт наберем:
sigal build /path/to/your/images/
В результате выполнения в текущей директории появится папка _build которая будет содержать html файлы и превьюшки. Можно сразу скормить эту папку апачу или нджинксу или воспользоваться встроенной командой сигала:
sigal serve _build
Открываем адрес http://localhost:8000/ в браузере и наслаждаемся!
Конвертирование 617 гигабайт картинок заняло примерно четыре часа и финальный сайт с превьюшками весит примерно 5 гигабайт, то есть чуть меньше процента от реального размера фотоархива. Странички загружаются довольно шустро, даже несмотря на то, что трафик идет из России через openvpn с сервером в США и открывается в Германии через реверсивный прокси подняный на Raspberry pi Zero W.
А как вы храните свой фотоархив?