ServerAdmin.ru
28.9K subscribers
304 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
Продолжу вчерашнюю тему про средства удалённого управления и соберу их все в единый пост здесь, чтобы можно было сохранить на память. Заодно разобью на категории и кратко прокомментирую.

📌 Selfhosted Open Source:
ZeroViewer. В качестве сервера для коммутации используется любой SSH сервер. К клиентам (только под Windows) подключение на основе VNC.
Aspia. Хорошее быстродействие удобство использования. Хост можно поставить как на Linux из deb пакета, так и на Windows из msi. То же самое с клиентами.
MeshCentral. Все подключения к клиентам через браузер из личного кабинета. Бесплатных аналогов подобного уровня практически нет. Есть интеграция с бесплатным софтом для инвентаризации Tactical RMM.
RustDesk. Работает как через публичные, так и свой сервер. Умеет открывать TCP туннели. Одно из наиболее популярных решений в этом классе. Часто получал на него рекомендации.
TrustViewer. Работает как через публичные, так и свой сервер. Клиент только под Windows, весом 2 Мб. Из фишек - расширенные права доступа для пользователей. Сервер бесплатный в том числе и для коммерческого использования, но код закрыт.

📌 Selfhosted коммерческий с бесплатной версией:
LiteManager. Хороший коммерческий софт, который можно развернуть на своих серверах. Бесплатная версия позволяет использовать его на 30 компьютерах без каких-либо ограничений.
RMS Удаленный доступ. Простой и легковесный софт. Есть интеграция с AD, возможность собрать свой дистрибутив с настройками. Бесплатная версия на 10 компов.

📌 Услуга как сервис:
DWService. Полностью бесплатный сервис. Поддерживается альтруистами за счёт пожертвований. Есть клиент под все системы. Подключение к клиентам через браузер из личного кабинета.
Getscreen.ru. Качественный сервис для управления клиентами через браузер. Бесплатная версия для двух клиентов. Далее платно, но цены низкие. Многие пользуются, отзывы хорошие.
АССИСТЕНТ. Аналог Anydesk или TeamViewer. Работает по такой же схеме. Для физических лиц полностью бесплатен с поддержкой одного одновременного подключения. Есть проблемы со стабильностью, иногда может не подключаться с первого раза или обрывать соединение.
AeroAdmin. Аналог Ассистента и других подобных программ. Дистрибутив всего 3 Мб, умеет подключаться к rdp сессиям. Ограничения бесплатной версии - 17 часов в месяц к каждому ID, разных ID не более 20. Подключения по IP в локальной сети не лицензируются.

📌 Работа только в локальной сети:
X2Go. Решение под Linux на основе протокола NX, у которого быстродействие лучше VNC. Интересен именно как альтернатива последнему.

#подборка #remote
​​Один читатель посоветовал обратить внимание на интересную российскую программу для мониторинга сети - 10-Страйк Мониторинг Сети. Посмотрел на неё и сразу понял, для чего она и кто целевая аудитория. Похожа, кстати, на Algorius.

10-Страйк Мониторинг Сети работает только под Windows и представляет из себя готовую систему мониторинга, которую не надо специально настраивать и дорабатывать (но можно при желании). Мониторинг простой и работает сразу из коробки. Поддерживает наблюдение за компьютерами, сетевыми устройствами, ИБП, IP камерами, видеорегистраторами и т.д. Все шаблоны, оповещения, графики преднастроены. От администратора требуется только хосты добавлять.

Продукт подойдёт скорее всего для небольших и средних организаций, возможно бюджетных, где работает эникей. Либо для каких-то отдельных отделов с сегментацией функционала и передачей этого добра в доверительное управление каким-то отдельным людям. Например, все принтеры выделить в управление отделу и сделать им свой мониторинг этих принтеров по snmp. Пусть занимаются.

Программа умеет автоматически сканировать и рисовать карту сети с возможностью добавления туда индикаторов. Выглядит всё это симпатично и информативно. Особенность программы в том, что она реально просто и быстро настраивается, плюс, стоит недорого. Тарифицируется по сенсорам. Сколько надо, столько и покупаете. Ненужные сенсоры просто отключаете. Например, мониторинг 500 сенсоров в обычной лицензии стоит 30000 р. Пи этом лицензии бессрочные.

Я посмотрел сайт 10-strike.ru. У них целая куча недорогих программ под Windows. Видно, что компания старая и программы из далёкого прошлого, хотя и развиваются до сих пор. Но интерфейс выдаёт их. Хотя лично я ничего плохого про это не скажу. Мне эти старые нативные программы нравятся больше современных веб интерфейсов. Они более отзывчивы и легковесны.

Сайт / Реестр ПО / Обзор

#мониторинг #отечественное
Существуют программы, которые на основе типа трафика могут направлять его в разные направления. Расскажу вам про одну такую программу - SSLH. Её можно запустить на каком-то TCP порту, например 8080. Если на этот порт направить HTTP трафик, SSLH его перенаправит на веб сервер, если это SSH трафик - на SSH сервер, если OpenVPN, то на его сервер. Таким образом можно маскировать какие-то сервисы, оставляя их при этом полностью доступными.

С одним из вариантов использования подобного подхода я сталкивался сам. Допустим, есть у вас где-то в Америке VPS, там живёт веб сервер. А ещё вам хочется держать там же OpenVPN на 443 порту, чтобы использовать для обхода блокировок и проходить через сети, где всё закрыто, кроме HTTP и HTTPS портов. SSLH отлично решает эту задачу.

Она есть в базовых репозиториях Debian:
# apt install sslh

Далее запускаем:
# sslh-select -f --listen 0.0.0.0:443 \
--tls 127.0.0.1:443 \
--ssh 127.0.0.1:22 \
--openvpn 127.0.0.1:1194

Теперь, если зайти браузером на сервер, то запрос будет перенаправлен на 443 порт веб сервера, если SSH клиентом, то на 22-й порт, если OpenVPN клиентом, то на дефолтный 1194 порт openvpn сервера.

То же самое через Docker:
docker run --rm -it sslh:latest \
 --listen=0.0.0.0:443 \
 --ssh=hostname:22 \
 --tls=hostname:443
--openvpn=hostname:1194

Более функциональный вариант через docker-compose. Пример конфига, где трафик уходит в разные контейнеры:

version: "3"

services:
 sslh:
  image: sslh:latest
  hostname: sslh
  ports:
   - 443:443
  command: --listen=0.0.0.0:443 --tls=nginx:443 --openvpn=openvpn:1194
  depends_on:
   - nginx
   - openvpn

 nginx:
  image: nginx

 openvpn:
  image: openvpn

Исходники

#openvpn #webserver
​​▶️ Чтобы провести в выходные время с пользой, предлагаю вам свежие обучающие видео от realmanual по настройке и подключению к кластеру Proxmox распределённого хранилища Linstor. Для тех, кто не слышал о нём, поясню, что это оркестратор томов для VM на базе технологий LVM или ZFS и DRBD.

Если совсем просто, то с помощью Linstor к виртуальным машинам можно подключать в качестве дисков блочные устройства хранения высокой доступности, или просто кластер блочных устройств. В конечном результате Linstor будет похож на Ceph - те же блочные устройства высокой доступности, но реализация другая. Если кому-то интересно их сравнение, то вот подробная статья.

Proxmox: разворачиваем Linstor хранилище ч.1
Proxmox: разворачиваем Linstor хранилище ч.2
Proxmox: разворачиваем Linstor хранилище ч.3

На выходе у вас будет отказоустойчивый кластер как по вычислительным нодам, так и по хранилищу. И всё это на базе бесплатного open source софта. Да и настройка не особо сложная.

#proxmox #видео #обучение
Не ожидал такой активный отклик на тему заметок по ведению канала. Раз вам интересно узнать, как я его веду, то расскажу. Сегодня остановлюсь на теме написания постов.

Когда я принял решение развивать Telegram канал, сразу для себя задал планку в два содержательных поста на один рекламный. Строго придерживаюсь этого правила на протяжении уже нескольких лет. Регулярный выход постов формирует стабильную статистику, на основе которой удобно анализировать показатели канала. Но об этом будет отдельная публикация.

Если хочется стабильный хороший результат - нужен регулярный созидательный труд. Такой же подход у меня был к написанию статей на сайте. Старался выпускать их регулярно в течении нескольких лет. В итоге добился хорошего результата. Это относится к любым сферам деятельности человека, начиная от непосредственно трудовой и заканчивая личными отношениями и воспитанием детей.

📌 Основные источники информации для статей:

1️⃣ Моя непосредственная деятельность в качестве системного администратора. Если сталкиваюсь с чем-то интересным, рассказываю об этом или делюсь мыслями по каким-то рабочим вопросам. Таких постов не много, так как что-то необычное, интересное, новое случается не так часто. В основном рутина.
2️⃣ Читаю новости, другие каналы, смотрю видео по своей деятельности. Если вижу что-то интересное, записываю в todo лист. Когда нет готовых идей по постам, открываю этот лист и начинаю изучать то, что показалось интересным. Чужая информация это только идея о том, что можно написать. Я начинаю собирать информацию по теме, что-то пробовать, настраивать у себя. Только после этого я формулирую итоговый текст полностью своими словами.
3️⃣ Мои мысли на различные айтишные темы, не связанные непосредственно с какими то событиями или продуктами. Например, как проверять бэкапы, какое выбирать железо, хостинг и т.д. Так как у меня большой практический опыт, всегда есть о чём сказать по существу.
4️⃣ Развлекательный контент на тему IT. Какие-то юморные видео, игры, музыка, что-то ещё. Самая сложная тема, на которую уходит больше всего времени. Не уверен на 100%, что об этом стоит писать, так как не вижу особого отклика. Мне просто кажется, что имеет смысл разбавлять основной контент развлекательным. Нравится разнообразие.
5️⃣ Крупные события популярных брендов. Если выходит что-то новое у Zabbix, Mikrotik, Elastic или кого-то ещё, пишу об этом. Не часто, только если информация действительно интересная и мне есть чем её дополнить от себя, чтобы стало интереснее, чем официальная часть.
6️⃣ Бесплатные обучающие материалы. Если встречаю где-то что-то полезное по тематике канала, то пишу об этом пост.

Главное правило в написании любого поста - наполнить его своими мыслями и трудом. Не бывает такого, чтобы я что-то увидел, скопировал за 5 минут, сунул ссылку на чей-то материал и опубликовал. Для того, чтобы получить хороший отклик от вас, который развивает и формирует канал, я должен что-то дать взамен. Всегда об этом думаю, когда пишу посты. Конечно, не всегда это получается, потому что иногда нет времени, иногда устал, где-то могу и схалтурить, но это исключения. Я всегда держу в уме основную идею равнозначного обмена.

В связи со сказанным выше, могу добавить, что на написание двух постов у меня в среднем уходит 2-4 часа в день. Иногда меньше, иногда больше. Но на длительном интервале средние цифры именно такие - 3 часа каждый день, даже когда болеешь или в отпуске. Ещё один час уходит на всякие технические моменты, связанные с рекламой, бухгалтерией и всем остальным. Так что в среднем 4 часа в день уходят на канал. Если кто-то хочет повторить успех, рассчитывайте на тяжёлый регулярный труд. На обдумывание, написание, вычитку и исправление этого поста ушло где-то 1,5 часа, хотя казалось бы, просто сел и написал.

На этом тему заканчиваю. Надеюсь, получилось её раскрыть за ограничение в 4000 символов на пост. Завтра расскажу про техническую часть.

#развитие_канала
Отказоустойчивая IT-инфраструктура от @Selectel

Усилим надежность инфраструктуры, чтобы снизить репутационные и финансовые риски. Сделаем все, чтобы свести к минимуму простои — будь это небольшие аппаратные сбои или масштабные чрезвычайные ситуации, например наводнение или землетрясение.

Почему в Selectel удобно и безопасно:

◽️Поможем перенести проекты в Selectel: оценим требования, подберем решение и организуем бережный переезд.
◽️Мы резервируем все системы, чтобы ваши сервисы продолжали работать во время сбоев или плановых работ. Следим за питанием, температурой, охлаждением.
◽️ У нас больше 40 сервисов: можно объединить в гибридную инфраструктуру выделенные и облачные серверы, настроить бэкапы, защититься от DDoS и многое другое.
◽️ Чтобы начать работу с нашими сервисами, достаточно зарегистрироваться в панели управления Selectel и пополнить баланс. Это займет пару минут.

Оставьте запрос на сайте, и мы свяжемся с вами в течение рабочего дня: https://slc.tl/iklyd

Реклама. ООО «Селектел»
​​Продолжаю цикл заметок про ведение канала. Сегодня расскажу про техническую часть, которая скрыта от вас.

📌 Очевидно, что для ведения канала нужен какой-то планировщик и редактор. Я предпочитаю бесплатный сервис telepost.me. Чего-то лучше просто не встречал. Меня серьезно смущает, что он полностью бесплатен. В голове всегда гуляет мысль, а где здесь подвох. Я бы предпочёл за него платить. Все остальные сервисы подготовки, планирования и отложенной публикации, которые смотрел, предлагают писать и управлять постами в клиенте Telegram через бота. Мне категорически это не нравится. Писать и готовить посты в браузере лично мне намного удобнее. Получается, что функционал бесплатного telepost.me лучше, чем у платных аналогов. Редко с таким сталкиваешься.

📌 Далее очень важная вещь, без которой я как без рук - календарь публикаций. Там формируется точный список постов на ближайшее время. Иногда сразу на неделю вперёд, но чаще только на несколько дней. Веду его в planyway.com. Это надстройка над Trello. Нравится там в первую очередь наглядный вид сразу всего месяца (пример во вложении). Для каждого поста указано время публикации, реклама выделена отдельным цветом (красный). Как только пост готов и загружен в планировщик, я помечаю его выполненным. Для постов есть возможность внутри сделать подзадачи. Например, к рекламным у меня их 3 - отправил счёт, получил оплату, получил текст. Как только что-то из этого выполняется, подзадачу закрываю.

Сервис очень удобный, попробуйте. Пригодится практически в любой деятельности, где важно планирование наперёд. Я пытался его заменить чем-то другим, так как иногда он может упасть на пару часов, плюс, опасаюсь блокировки. Но так и не нашёл замену. Одно время пользовался Яндекс.Календарём, но он по функционалу сильно не дотягивает до Planyway.

📌 Все посты из Telegram копируются в группу VK. Там, кстати, просмотры в среднем уже догнали показатели этой группы, а чаще стали превышать. Плюс, некоторые посты выстреливают на 20-30 тысяч, а недавно и 60 тысяч просмотров. Это к вопросу о том, что VK умирает. Живее всех живых: люди читают, комментируют, пишут в личку не меньше, чем здесь. Одно время пытался автоматизировать копирование постов туда, но пришлось отказаться, так как часто приходится немного менять текст под VK. Там есть нюансы с зависимостью охвата от содержимого. Так что это всё делается вручную.

По поводу инструментов всё. Больше ничего не использую. Можно упомянуть про Joplin для хранения черновиков и списка постов с разбивкой по категориям, но это уже косвенный инструмент, который используется для разных задач.

#развитие_канала
​​Я как-то раз уже вскользь упоминал о возможности пробрасывать порты через SSH в рамках общей заметки о разных возможностях этого протокола. Сейчас хочу поподробнее остановиться на этом с конкретным примером.

Допустим, у вас есть какой-то веб сервис на удалённом сервере, с которым работаете только вы. Хотя это не обязательно, но для упрощения будем считать, что это так. Вам нужен доступ к этому сервису через интернет, но при этом вы не хотите открывать его через интернет без ограничений. Тогда у вас есть как минимум 2 очевидных решения:

1️⃣ Настроить ограничение на подключение по IP. Это сработает в том случае, если у вас существует список статичных IP адресов, с которых вы подключаетесь, а необходимости подключаться с адресов не из этого списка не возникнет. Тогда всё просто. Настраиваете Firewall и забываете о проблеме. Но для надёжности неплохо было бы настроить мониторинг правил фаревола, так как я неоднократно сталкивался с ситуациями, когда по различным причинам фаервол не работал или необходимые правила в нём не были активны.

2️⃣ Настраиваете VPN туннель и подключаетесь к сервису через него. Тут уже нет ограничений по адресам, но придётся настроить и поддерживать дополнительный сервис, плюс ставить клиента на рабочие машины, с которых будете подключаться.

Рассказываю про третий, наиболее простой вариант. Пробрасываете локальный порт сервиса с сервера к себе на локальную машину с помощью SSH. Данный протокол безопасен и его можно оставлять доступным из интернета, используя авторизацию по сертификатам или сложный пароль. Для надёжности можно прикрыть Fail2ban или чем-то подобным.

Подключаемся с локальной машины по SSH следующим образом:
# ssh -L 8080:127.0.0.1:80 -N -f user@remote.host
8080 - локальный порт машины, с которой подключаемся
127.0.0.1:80 - порт, на котором работает веб сервер, не забудьте его запустить только на localhost, чтобы с других адресов он не был доступен
-N -f - ключи для запуска соединения в фоновом режиме, в WSL оно останется активным даже после закрытия терминала

Теперь можно открыть интерфейс Zabbix через проброшенный порт со своего компьютера: http://127.0.0.1:8080/zabbix/

Не нужно настраивать ни VPN, ни Firewall. На сервере открыт только порт SSH, вы можете подключиться к веб интерфейсу из любого места, где есть возможность использовать SSH соединение.

Все популярные SSH клиенты позволяют настраивать проброс портов и сохранять параметры. Так что достаточно один раз настроить соединение и использовать его. Можно и других людей так же подключать. А создав для каждого из них отдельного пользователя можно получить простой аудит подключений на основе логов SSH.

Берите на вооружение, особенно те, кто не умеет, не хочет, ему не нужно учиться настраивать Firewall, а хочется по-быстрому настроить безопасный доступ к какому-то сервису. Программисты часто грешат тем, что на тестовых серверах вешают базу на внешний интерфейс, чтобы подключаться к ней напрямую. А потом забывают, отключить, поменять дефолтную учётку и т.д. Лично сталкивался с этим и не раз.

Когда соединение станет не нужно, через px axf посмотрите его pid и прибьёте через kill. Подобных подключений можно много открыть на разные локальные порты с разных удалённых серверов.

#linux #ssh
​​Вы в курсе, что существует публичный сервис, на котором можно посмотреть историю всех выпущенных сертификатов для домена? Я мельком видел в комментариях об его упоминании, но лично никогда не проверял. А теперь решил проверить - https://crt.sh.

Он реально помнит все сертификаты и поддомены, для которых они выпускались. Проверил свой технический домен и на глазок показалось, что там весь набор используемых поддоменов отражён. Даже немного стрёмно стало. Там есть даже те домены, что я делал не для публичного использования, а для своих личных целей. Хоть я и закрывал их всегда от постороннего доступа, но всё равно на всякий случай проверил, нет ли где-то ошибки и открытого доступа.

Проверьте себя на всякий случай, а ссылочку сохраните. Сервис реально полезный.

https://crt.sh

#сервис
​​В условиях, когда соблюсти лицензионную чистоту программного обеспечения стало невозможно, приходится прибегать к альтернативным способам активации продуктов Microsoft. Один из вариантов - установка KMS сервера на Debian.

Идею и реализацию подсмотрел в заметке на канале IT-KB, который уже не раз рекомендовал к ознакомлению. Там представлена ссылка на подробную статью с пошаговым руководством. Я проверил её, способ рабочий. Достаточно скопипастить и выполнить все предложенные команды.

Идея простая. Разворачиваете у себя в сети KMS сервер на основе исходного кода проекта vlmcsd. Удивительно, но он спокойно живёт на github. Для установки в систему собирается deb пакет и разворачивается в виде работающей службы. Далее на целевой системе необходимо установить GVLK ключ и указать адрес установленного KMS сервера.

Весь процесс подробно описан в статье, так что особых сложностей возникнуть не должно даже у тех, кто не очень силён в линуксах. Когда исследовал тему, узнал, что оказывается пакеты с KMS сервером есть под множество систем и даже для роутеров. Можете дома у себя развернуть на прошивке OpenWRT.

❗️Отдельно отмечу, что я не сторонник подобных решений, тем более на работе. Вы сами себя подставляете. Так что используйте на свой страх и риск. Ко многим нежелательным решениям нас сознательно подталкивают события последних месяцев. А у кого-то и выбора нет.

#windows
​​Ещё одна заметка на тему адаптации РФ под новые условия стремительно изменяющегося мира. Некоторое время назад через сайт госуслуги была рассылка на тему отечественного магазина приложений RuStore для Android, который разрабатывается при поддержке Минцифры России.

Я его тогда сразу установил и пользуюсь по сей день. У меня нет так много приложений на Android, только самые необходимые. Почти все они есть в RuStore. Сам магазин очень простой - обычный каталог приложений и больше ничего. Никакой рекламы, подписок и чего-то прочего. Лично мне им нравится пользоваться больше, чем Google Play, где до обновления приложений ещё надо постараться добраться. Так что все приложения, что есть в RuStore, обновляю через него.

Я недавно рассказывал про приложение Cams, которое предложил установить через apk или F-Droid. Оказалось, что в RuStore оно присутствует, что меня удивило и порадовало. Теперь успешно обновляется через этот магазин.

Второй момент, на который хочу обратить внимания тех, кто ещё не слышал о новости. Те же gosuslugi запустили бесплатный сервис для выпуска TLS сертификата для сайта. Работает только для юр. лиц, оформляется через личный кабинет юр. лица. Сертификат ничем не отличается от других, только подписан Russian Trusted root CA, которого нет в иностранных браузерах и системах. Из тех браузеров, что известны мне, поддерживает его только Яндекс.Браузер. Он, кстати, у меня уже давно основной. Мне нравится.

#разное
​​В блоге Zabbix некоторое время назад вышла заметка про мониторинг видеопотоков. Я её невнимательно посмотрел и не понял основную идею. Увидел, что предлагают запускать mplayer и мониторить его работу. Подумал, что не очень удобно, а решение показалось каким-то сильно костыльным, требующим ставить иксы и запускать просмотр потока.

На днях внимательнее посмотрел статью и понял, что ошибся. Там на самом деле описан нормальный способ, который не требует ни иксов, ни проигрывания потока. Идея там следующая.

Допустим, у нас есть несколько камер и мы хотим мониторить наличие видеопотоков, которые с них идут. Для этого на сервер ставим mplayer:
# apt install mplayer

И запускаем его без вывода видеопотока. Это можно сделать в обычной консоли, без графического окружения:
# mplayer -vo null http://158.58.130.148/mjpg/video.mjpg
Это рабочая ссылка, привожу её для примера. На ней можно тестить. Если у вас свои камеры и вы хотите мониторить rtsp поток, то запускаем так:
# mplayer -vo null 'rtsp://user:pass@192.168.88.23/rtsp'

Если поток живой, то процесс с mplayer будет запущен. Как только поток отваливается, mplayer завершает работу. На основе этих данных создаётся айтем и триггер в Zabbix. Если камера одна, то можно использовать функцию айтема proc.num, как в примере в статье. Если камер много, то надо будет придумать какую-то другую проверку. В любом случае это не трудно, дело техники. Главное идея.

Я давно размышлял на тему того, как мониторить не просто работу камеры по пингу или ответу по http, а именно проверять наличие видеопотока. Вот хороший и простой в настройке способ. И главное, ровно то, что нужно.

В статье дополнительно даётся совет, как получить скриншот с камеры во время движения. Mplayer умеет принимать внешние команды. Если есть датчик движения, необходимо с него каким-то образом отправлять сигнал на Zabbix Server. Реализация будет зависеть от возможностей датчика. После этого Zabbix Server будет выполнять удалённую команду, посылая mplayer информацию о том, что надо сделать скриншот потока и положить его в какую-то директорию. Если её подключить к веб серверу, то картинку можно добавить на дашборд Zabbix через URL виджет. Схема сложная, но в целом рабочая. Не вижу каких-то серьёзных затруднений с реализацией.

Если вам приходилось настраивать мониторинг видеопотоков в Zabbix, расскажите, как реализовывали это.

#zabbix
Небольшая информация из практической деятельности. Мне давно знакома проблема, когда не устанавливается SIP соединение для регистрации пира или транка с регистрацией. Возникает она в моём случае либо после проблем с интернетом или переключения каналов, либо при работе через VPN вместе с указанными выше проблемами. В общем, когда возникают какие-то неполадки со связью, есть небольшая вероятность, что внешне транки и пиры отвалятся.

При этом какие-либо действия со стороны Asterisk не помогают. Есть можно перезапускать, перезагружать сервер, но регистрации как не работали, так и не будут работать. Когда я первый раз столкнулся с подобной ситуацией, очень сильно напрягся. Потратил примерно день, прежде чем нашёл решение. С тех пор его запомнил и проверяю в первую очередь.

Если у вас по неведомым причинам не регистрируются транки и пиры, проверьте активные соединения на шлюзе, связанные с SIP и удалите их. Отфильтруйте либо по адресу voip сервера, либо по адресу внешнего сервера, либо просто по портам, к примеру, 5060, если используется стандартный.

В роутерах Mikrotik это делается на вкладке:
IP ⇨ Firewall ⇨ Connections

Если у вас шлюз на Linux, то соединения можно посмотреть в /proc/net/nf_conntrack:
# cat /proc/net/nf_conntrack
Либо с помощью утилиты conntrack (ставится из реп, либо как conntrack, либо как conntrack-tools). Смотрим:
# conntrack -L -p udp --src 10.1.4.23 --dport 5060
и удаляем:
# conntrack -D -p udp --src 10.1.4.23 --dport 5060
После этого регистрации успешно состоятся.

В чём причина подобных проблем, я не знаю. Теорию не изучал и не исследовал. Просто знаю, что вот это помогает. Возможно есть другое решение. Лично сталкивался с подобными проблемами только с VOIP.

Если кто-то знает, в чём может быть причина подобных проблем и как с ними бороться, буду благодарен любой содержательной информации.

#gateway #voip #asterisk
​​Вчера затронул тему мониторинга видеопотока с камер и не дополнил её полезной информацией. Я совершенно забыл, что несколько лет назад выполнял задачу по мониторингу камер, подключенных к видеосерверу Линия (Devline). Рассказываю, как решал задачу.

У меня были две идеи по мониторингу:
1️⃣ Анализ лог файла видеосервера. Он туда пишет всю информацию об изменении состояний камер и потоков.
2️⃣ Анализ веб страниц, которые Линия создаёт для каждой камеры. По конкретному статичному url вы можете увидеть изображение с камеры на момент запроса.

Я выбрал второй вариант. Мониторинг реализовал без анализа самих картинок, но это можно сделать при желании. Вчера в комментариях дали совет на эту тему. Можно анализировать количество разных цветов на изображении. Если с потоком какие-то проблемы, то скорее всего будет просто чёрный кадр.

Я же в итоге просто анализировал ответ веб сервера. Опытным путём узнал, что иногда камера может быть доступна, но картинки по какой-то причине с ней нет. В этот момент веб сервер отдаёт ошибку 500, вместо положенной 200. На основании этой информации я и сделал триггер.

Мне подсказали, что подобная страница с изображением с камеры поддерживается не только регистраторами и видеосерверами, но и многими камерами. Так что это хорошая и более простая альтернатива мониторинга видеопотока. Скорее всего, если скриншот с камеры показывает какую-то картинку, то и поток с большой долей вероятности присутствует. При этом настроить подобный мониторинг не сложно. Намного проще, чем сам поток.

Мониторинг камер видеонаблюдения Линия (Devline) в Zabbix

#zabbix
​​Делюсь с вами малоизвестной, но полезной и функциональной находкой. Речь пойдёт про систему централизованного хранения и управления ключами для подключения по SSH к хостам - ssham. Я настроил её и разобрался, как с ней работать. Несмотря на то, что про ssham нет ни одного упоминания в интернете, кроме репозитория программы, она достойна внимания.

Идея ssham следующая. Вы устанавливаете её на любой Linux хост. Потом с её помощью через веб интерфейс управляете настройками подключения к другим хостам.

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

Вы получаете централизованную систему хранения и управления доступами для SSH ключей. Теперь рассказываю, как её запустить. Документация очень скудная, мне пришлось довольно долго во всём самому разбираться. Поставить можно как напрямую на сервере, так и запустить в Docker. Для простоты описания, запустим всё в Docker.

Копируем репозитоий:
# git clone https://github.com/pacoorozco/ssham.git ssham
# cd ssham
Делаем копию файла с параметрами окружения:
# cp .env.example .env
Заходим в .env и комментируем строку:
#QUEUE_CONNECTION=database
Пока я этого не сделал, у меня не работала синхронизация ключей по хостам. Несколько часов потратил, пока разобрался.

Далее собираем и запускаем образы:
# export DOCKER_SSHAM_UID="$(id -u)"
# docker-compose build
# docker-compose up -d

Устанавливаем в контейнер app зависимости:
# docker-compose exec app composer install
Инициализируем БД и добавляем туда demo данные:
# docker-compose exec app php artisan key:generate 
# docker-compose exec app php artisan migrate:fresh --seed

Дальше идём в веб интерфейс по ip адресу и логинимся под superadmin / superadmin.

Логика работы с ssham следующая. Создаём SSH Key groups, добавляем SSH key и помещаем его в эту группу. Далее создаём Host group, добавляем Host и помещаем его в эту группу. В завершении создаём Rule, где указываем, что созданная SSH Key group имеет доступ к Host group. Или не имеет. Доступ можно как разрешить, так и запретить.

После того, как всё сделали, в Settings смотрим Public key сервера. Его нужно один раз самостоятельно распространить на управляемые хосты, добавив в ./ssh/authorized_keys. После этого идём в консоль сервера, где запущены контейнеры и выполняем синхронизацию:
# docker-compose exec app php artisan ssham:send

После этого на управляемых хостах ключи будут добавлены в authorized_keys. Теперь можно забрать приватные ключи из веб интерфейса и раздать пользователям.

Исходники

#ssh #devops #управление
​​Хочу вам напомнить про отличный продукт для совместной работы над проектами - YouTrack. Это образец качественного, удобного, продуманного программного обеспечения. Если не ошибаюсь, то использую YouTrack уже около 7-ми лет. С тех пор, как первый раз его увидел, неизменно выбираю для совместной работы. Его ещё называют баг-трекер, но мне кажется, он уже давно вырос в более масштабный продукт.

Основное, чем привлёк YouTrack - полнофункциональная версия для 10-ти пользователей. Причём поставить её можно как у себя, так и пользоваться совершенно бесплатно облачной версией. Последнее встречается не часто. Обычно версию для разворачивания у себя делают бесплатной, а вот SaaS уже только за деньги.

Чтобы вы сразу поняли на что похож YouTrack, приведу несколько аналогов - Jira (YouTrack мне видится в разы лучше), Wrike, Redmine, YouGile, Zendesk, условно и Битрикс24 сюда можно добавить, но он больше на бизнес завязан, а YouTrack на IT, поддержку и разработку.

Как я использую YouTrack? Сразу приведу пару примеров. Небольшой IT отдел из нескольких человек. В YouTrack заводятся все задачи (не заявки пользователей, это не для них), всё максимально подробно в них описывается, разбивается на проекты (поддержка, закупка, модернизация и т.д.). В итоге копится база знаний, плюс всегда готов список задач, которые выполняются. При желании даётся доступ руководству, чтобы не было вопросов на тему того, чем вы вообще занимаетесь. Я сначала работал в youtrack как человек, которому ставят задачи, потом сам стал использовать для управления подчинёнными. Удобно работать в обоих ролях. Причём я сам оценил удобство трекера, когда выполнял и описывал решение задач. Сам потом пользовался информацией.

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

Мне YouTrack нравится за удобство, скорость работы и внешний вид. Возможностей у него очень много и по началу трудно всё настроить и понять логику работы. Но я осилил в своё время, так что ничего невозможного. В SaaS версии с этим попроще, многое настроено за вас. Отдельно отмечу качество софта. Он легко разворачивается (работает на Java) на любой платформе, будь то Linux или Windows. Без проблем обновляется на новые версии. Отлично работает встроенный бэкап. Не надо особо заморачиваться с ним. Создаётся единый архив, который потом скармливается чистой установке. У меня ни разу не было проблемы с тем, чтобы бэкап не развернулся. Даже в SaaS версии можно сделать бэкап и потом развернуть его у себя на сервере. Делал так собственноручно, когда проект закрывался, но хотелось сохранить всю документацию по нему. Сделал бэкап и развернул его у себя на сервере.

Не буду рассказывать про установку своего сервера. Для того, чтобы посмотреть на YouTrack проще всего зарегистрироваться в облаке. А если понравится и будет необходимость, развернуть у себя. В документации всё описано.

Отдельно отмечу, что в YouTrack хорошая русификация. Можно смело использовать русский язык. Разработчики возможно русскоязычные, но это не точно, компания JetBrains международная, хоть и основана русскими в 2000-м году.

Сайт / Полномасштабный обзор (2 часа)

#управление_проектами
​​🎓 Если вы всегда считали себя не от мира сего и вас постоянно тянет на что-то странное, то дальнейшая информация может вам показаться полезной.

Если вы вдруг решили, что GitOps, непрерывное развёртывание приложений и Kubernetes это то, что вам нужно, то могу порекомендовать бесплатные курсы на эту тему с сертификацией в конце от codefresh.io.

Они разработали два бесплатных курса по GitOps на базе ArgoCD. Курсы представлены в текстовом виде с реальными лабораторными заданиями на железе организаторов. В конце предлагается пройти экзамен и получить сертификат. Если вам близка эта тема, то не вижу причины, почему бы не пройти их и не получить сертификат, хоть он и будет филькиной грамотой. Можно будет распечатать и повесить на стену.

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

Для прохождения обучения надо уметь хоть немного работать с Kubernetes и понимать, как там всё устроено. Можете мои статьи посмотреть по этой теме и повторить. Будет достаточно первых двух: установка и работа с кластером.

На курсе классно оформлены лабораторные работы. Удобно сделано. Можно кластер потыкать.

https://learning.codefresh.io

#обучение #бесплатно
Следующая по плану статья на тему развития этого Telegram канала будет посвящена рекламе и раскрутке. Это тема, по которой у меня меньше всего информации по существу, потому что заниматься рекламой и маркетингом я не умею и не люблю. Расскажу, что знаю и пробовал.

Системной работы по рекламе канала я никогда не вёл. Много раз собирался, но так и не реализовал ничего, потому что постоянно не хватает на это времени. С предпринимательской точки зрения это полностью провальная тактика и я это понимаю. Наверное предприниматель из меня так себе. Для раскрутки канала я пробовал следующие способы:

1️⃣ Платная реклама в VK через их рекламный кабинет. Сюда было потрачено больше всего усилий. Тестировал разные посты, использовал разные настройки на аудиторию, пробовал как-то всё это анализировать и считать, но слабо получалось. Telegram не даёт никакой обратной связи на тему того, откуда приходят подписчики. В итоге ты тратишь деньги и нет точной информации, какой от них выхлоп. С учётом того, что у меня постоянно идёт приток новых подписчиков, я не могу быть точно уверен, откуда они приходят. В итоге перестал тратить на это деньги.

2️⃣ Пробовал рекламу в Яндекс.Директ. Это вообще чёрная дыра. Деньги улетают моментально, подсчитать эффект невозможно, цена за клик в Яндексе высокая. Показалось вообще не эффективным по сравнению с VK.

3️⃣ На первых порах пробовал взаимный пиар с другими группами. Лично мне не нравится сам формат подобной раскрутки. Мало того, у тебя на канале коммерческая реклама, так ещё посты других групп. Плюс, у меня постоянно выкупаются все запланированные мной под рекламу посты. Для обмена с другими группами просто не остаётся места. Ещё заметил, что очень много групп, где подписчиков вроде много, но посты особо никто не читает. С таких каналов и подписчиков мало. Так что никогда точно не знаешь, будет ли какой-то результат от такого обмена постами. В итоге перестал этим заниматься.

4️⃣ Ссылка на канал с моего сайта serveradmin.ru. Сайт вроде бы много людей посещают (5000-6000 ежедневно в будни), но переходов по ссылке с сайта очень мало. 10-15 переходов в день, а сколько подписчиков - неизвестно. Наверное 5-10, вряд ли больше.

5️⃣ Группа в VK, где периодически в постах встречаются ссылки на посты из Telegram. VK сразу пессимизирует такие публикации, давая показов меньше, чем на посты без ссылки в Телеграм. Но всё равно показы идут. Думаю, это тоже приносит какую-то часть подписчиков.

6️⃣ Закупка рекламных постов в других группах. Поначалу занимался этим. Купил рекламу где-то в 20-30 группах. Но в этом надо разбираться. Очень разные результаты выходят на затраченные деньги. Надо фильтровать каналы, прикидывать, где будет лучше результат. Там обычное дело, когда ты платишь в 2 раза больше, а результат получаешь хуже, чем у рекламного поста в 2 раза дешевле. И так было постоянно. Где-то вообще покупаешь пост, а результата 0. В итоге я бросил это дело, так как не захотел тратить на анализ других групп время.

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

Если у вас есть какие-то идеи или советы по этой теме, буду рад их выслушать. Если есть какие-то вопросы, то можете задавать. Постараюсь ответить.

#развитие_канала
Нашёл у родителей на даче свою книгу из детства "А я был в компьютерном городе". Она вся помята, частично порвана, проклеена скотчем. В общем, книга затёрта до дыр.

В детстве очень её любил. Кто знает, может быть эта книга определила мою судьбу? В школьном возрасте не было сомнений на тему того, кем я хочу стать и куда пойти учиться. Я чётко знал, что хочу работать с компьютерным оборудованием, хотя свой личный компьютер у меня появился только в 10-м классе.

В детстве любил книги, хотя родители их не читали. Никогда не видел их с книгами. Но у советских семей была отличная традиция - держать книжные шкафы, заполненные книгами. Очень любил ходить мимо шкафов и рассматривать корешки. Чуть подрос, стал их читать. В итоге всё детство провёл с книгами. Люблю их читать и по сей день. Всегда в смартфоне есть список непрочитанных книг. Сейчас читаю Тармашева Сергея. За последний год прочитал все его книги.

Вспоминая свой детский опыт, наполнил свою квартиру детскими книгами. Никогда на них не экономлю, покупаю красивые, дорогие книги, энциклопедии. Порой жаль смотреть, как дети ненароком их портят, но мы непременно садимся и чиним их. Младший ещё не умел говорить, но знал, где лежит скотч, которым нужно проклеить случайно порванную страницу.

Чтение книг - обязательный семейный ритуал, через который прошли все дети (у меня трое). Кто знает, может быть случайно подвернувшаяся книга определит судьбу и моего ребёнка. Думаю, это будет неплохо.

#дети