• Как отправлять API запрос с сервера?

    jorix
    @jorix
    sysadmin
    если вас беспокоят API запросы, которые каждый пользователь или устройство посылает каждые 10 секунд, то от этого вы не избавитесь, если хотите давать пользователям актуальную информацию. Или увеличьте интервал запросов или масштабируйте ресурсы, чтобы была возможность обрабатывать такое количество запросов. А лучше правильно настроить кеш. Если он есть, то для железа отдать тысячу ответов из кеша по нагрузке эквивалентна одному рабочему запросу
    Ответ написан
    Комментировать
  • Как настроить резервное копирование серверов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Был в десятке разных компаний. У всех - по разному.
    Бэкап это по большей части организационный вопрос. Главное что в этом топике вам никто правильно не ответит.

    Нужно спрашивать ваш бизнес о требованиях к базе. Например:

    1) Как долго бизнес согласен ждать восстановления? Это влияет например на стратегию делания инкрементальных кумулятивных и полных бэкапов для БД. Разумеется все БД - в режиме arhivelog/wal.
    2) От чего мы страхуемся? От физических повреждений. Или еще нужно предохранится от неверно поставленного обновления на базу. Тут - надо прикупить дополнительных дисков или магнитных накопителей.

    Самое главное что у вас должны быть учебные тревоги. Тоесть вы должны реально откатать бэкап+восстановление хотя-бы несколько раз. Иначе то что вы делаете будет фейком. Часто видел такое. Бэкап делает какой-то сисадмин средствами Акрониса например. Но этот сисадмин и понятия не имеет как работает Oracle и что вообще нужно предварительно подготовить чтоб бэкапные файлы не стали ненужным балластом.
    Ответ написан
    Комментировать
  • Можно ли экспортировать активность git?

    akelsey
    @akelsey
    Клонируете с gitlab:
    git clone %gitlab_url%
    Создаете репозиторий в github и меняете remote url:
    git remote set-url origin %github_url%
    git push


    Все ваши коммиты в github.
    PS
    Само собой gitlab/github аккаунты должны быть настроены.
    Ответ написан
    Комментировать
  • Как организовать изолированную среду выполнения собранного dotnet приложения?

    vabka
    @vabka Куратор тега .NET
    Токсичный шарпист
    Кажется, что прощё сделать софт как SaaS, а хостинг на серверах заказчика сделать только для тех ситуаций, когда это заказчику действительно необходимо и за индивидуальный прайс.
    Даже в случае утечки будет сразу ясно, кто это сделал и набутылить.

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

    Никакие софтовые решения (обфускация, контейнеры, шифрованные виртуалки, передача критичного исполняемого кода по сети) не спасут от тех людей, которые хотят с вами конкурировать или осознанно хотят нарушить соглашения.
    Ответ написан
    4 комментария
  • Как организовать изолированную среду выполнения собранного dotnet приложения?

    @Voland69
    ИМХО вариант только хостить у себя.
    Всякая виртуалка в шифрованном томе не выход, т.к. чтобы оно запустилось, у клиента так или иначе должен быть ключ.
    Ответ написан
    1 комментарий
  • Как лучше организовать доменную сеть и централизованную аутентификацию?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Присутсвует ли LDAP сервер в решении Samba DC? Подходит ли Samba для организации централизованной аутентификации?

    Да, присутствует. Более того - он и в AD присутствует :) Любой контроллер домена можно открыть любым LDAP-браузером и ldapsearch работает прекрасно.
    Да, подходит.
    Samba AD DC несовместима с OpenLDAP?

    В смысле? openldap - часть самбы (в том смысле, что используется в ней, а не часть проекта). Вы совместимы со своей рукой?
    Прочитал что Samba AD DC функционирует на уровне контроллера доменов Windows 2008 R2. Что это значит с точки зрения возможного функционала?

    Что домен MS увидит в самбе контроллер домена уровня w2k8
    Например из документации гитлаба, в перечне поддерживаемых служб каталогов, Samba DC отсутствует

    Самба не является отдельной уникальной службой каталогов, это просто AD не на Windows. Причем AD, лишенная многих виндовоспецифичных фишек и поэтому довольно бесполезная. Годится только с голодухи для импортозамещения
    Единственное, известное решение кроме самбы - это IPA.
    Все, кто поддерживает AD - поддерживает и самбу (а вот причем тут openvpn - я не понял)
    Ответ написан
    4 комментария
  • Есть ли какой монитор изменения прав доступов к папке и файлам?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Чаще всего такое бывает из-зза совокупности неочевидных проблем в конфигурации логов, скриптов запуска логгируемуго софта и сиетемы ротации или бэкапа логов.
    Например, описанная вами ситуация может быть порождена следующим стечением ошибок и обстоятельств.
    Бывает, что на бэкенде в один и тот же лог-файл пишут несколько скриптов. Это уже конкуренный доступ к файлам и не есть хорошо. Такое случается, когда по образцу одной проги с логгированием потом делают другую, а конфигурация логгирования не предусматривает такую ситуацию. Вот когда два таких скрипта работают и логи в конфликтный файл пишутся не часто, могут случиться такие проблемы.
    Ещё один из таких скриптов может запускаться под рутовыми правами, а другой после него под пользовательскими. Если запущщеный от рута скрипт вызвал ротацию лог-файла, то новый файл мог создаться уже с рутовыми правами по умолчанию, а это значит, что другой скрипт (или этот же, но запущеный от обычного пользователя) уже не сможет в него писать.

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

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

    Важно. чтобы в каждый отдельный лог-файл писал один и только один процесс. Он же занимался его ротацией (если, к примеру, вы логгируете стандартной питонячьей либой). Ещё хорошая идея не засталять софт писать логи в файлы, пусть пишет логи в stderr и/или stdout, а оттуда вы их на уровне системы перенаправите куда положено и отфильтруете как надо. если необходимо.

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

    UPD:
    Почему-то не обратил внимания, что речь о логах mysql. Но всё по-прежнему: конфиг логгирования и ротации, распсиание и механизм ротации и бэкапа, поиск по конфигам фрагментов этого пути на предмет аномалий и повторов.
    Ответ написан
    Комментировать
  • Какую базу выбрать для bigdata?

    @alexdora Автор вопроса
    Топ-менеджер
    Я прошу прощения что не-про-лайкал, но за темой следил. Утонули в работе. Хочу ответить к чему все пришло, кому будет интересно

    Еще как тема создалась, мы сразу пробовали различные варианты которые тут советовали.

    Clickhouse – не зашел, кажется что он слишком простой, но он требует инженерить. Это все не так просто оказалось как 1,2,3.
    Да, быстро читает
    Да, чуть сэкономил место на тестовом стенде (2%)
    Но: кучу геморроя с настройкой и потребуется вложить время в переделку всего (ч.к деньги). А у нас никто им не владеет

    Kafka Немного не под эту задачу, но взяли её в оборот на будущие доработки внутри микросервисов

    Далее отвлеклись, а когда вернулись к вопросу с холодной головой оказалось что купить Б/У сервера с новыми NVME дисками (нет перезаписи - нет проблем с ресурсом) выгоднее, чем тратить время на оптимизацию. Провели работу над соединениями, основному софту mysql теперь нужно только чтоб сделать старт. Далее база не нужна, а данные читают как читались большими выборками
    Поработали над буфером, добавили mysql серверов и вот нагрузка уже не такая печальная.
    Ответ написан
    Комментировать
  • Как добавить в автозагрузку программу работающую фоном?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Нужно перечитывать конфиг squid каждую секунду или быстрее

    Вы явно что-то делаете не так.
    Ответ написан
    Комментировать
  • Как почистить Git-репозиторий?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Вот несколько фактов, которые помогут понять как работает Git.
    • Файл .gitignore предназначен для описания того, что мы не хотим СЛУЧАЙНО добавить в репозиторий. Либо не хотим случайно удалить переключив ветку.
    • Мы можем ПРИНУДИТЕЛЬНО добавить в репозиторий ЛЮБОЙ файл, даже если он описан в .gitignore.
    • Добавление файла в .gitignore не удалит сам файл из репозитория. Если файл УЖЕ в репозитории, то он продолжит отслеживаться, независимо от наличия .gitignore.
    • Если больше не хотим отслеживать какой-то файл, то просто удаляем его из репозитория. Ключ --cached позволит оставить файл в рабочем каталоге текущего репозитория если он нужен.
    git rm --cached -- '.DS_Store'
    git commit

    Но последний рецепт сработает только на одном компьютере. Если коллеги переключатся на этот коммит, то файл удалится у них из рабочего каталога.
    Ответ написан
    4 комментария
  • Делегаты, зачем?

    MSerhio
    @MSerhio
    Вхожу в IT
    Делегат позволяет ослабить связность кода, а рассматривать их стоит вместе с событиями.
    Я объясню на примере игростроя.
    Популярный в сети пример: во врага попала пуля. Должно случиться сразу много вещей - нужно снять здоровье врага, выяснить, не погиб ли он, проиграть анимацию, уничтожить пулю, начислить очки игроку и еще что-то.
    Если мы будем всё это вызывать напрямую, то быстро запутаемся и ошибемся. А когда будем переделывать, сломаем всё окончательно.
    Вот тут нас выручат делегаты и события. Мы определим событие, которое срабатывает (вызывает свой делегат) в момент попадания пули. И соответственно, определим делегат для этого события.
    Теперь каждый метод, которому это событие интересно, может подписаться на его делегат (внести себя в список вызываемых делегатом методов - их может быть больше одного).
    И теперь мы можем переделывать что угодно. Главное, не забывать подписываться и отписываться.
    Делегат, это как автолавка в деревне: приезжает и сигналит. Кому надо - выходит. При этом ни автолавке ни покупателям не интересно, что происходит у каждой из сторон в отдельности.
    Ответ написан
    Комментировать
  • Как правильно набирать заказчиков на фрилансе?

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

    1) биржи фриланса.
    тут трутся клиенты, ищут исполнителей, соответственно, если размещать там заявки, можно быстро и бесплатно находить клиентов.
    Основная проблема бирж - высокая конкуренция, приходится выделяться среди остальных, долго и нудно прокачивать аккаунт, порой выполняя первые задания условно-бесплатно за отзывы.. но зато не нужно делать свой сайт, сразу виден рейтинг, опытных фрилансер проще находит клиентов, не нужны расходы на рекламу.
    посмотрите вот тут мини курс (бесплатный) по работе на фрилансе, может что-то пригодится из него. Если в двух словах, то клиент будет обращаться, если а) услуга актуальная б) есть + отзывы в) есть портфолио г) цена по карману.

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

    3) сделать многостраничный сайт (блог) и продвигать в поиске.
    сложнее, дольше, надо писать статьи, оптимизировать, больше вложений времени и денег.
    Но зато можно получать клиентов потом вообще бесплатно.
    посмотрите что выбрать сео или реклама, тоже станет понятнее.

    4) сделать аккаунты в соцсетях, какие ещё работают: типа инсты, ютуб, вк и т.п. И туда залить ваши услуги. Можно также получать клиентов бесплатно, но придется готовить контент для соцсетей, там свои стандарты, просто статьи не прокатят.

    5) разместить посты на профильных форумах или ресурсах типа хабр или vс или яндекс дзен и т.п., если есть что рассказать интересное.

    6) сделать спамную емейл рассылку по базе целевых клиентов. Не солидно, но иногда может сработать очень хорошо за минимальные деньги.

    Ну и где ещё подскажет фантазия.
    Общий смысл такой: где присутствует ваша целевая аудитория, - там вы с услугой. И будут заявки.
    Ответ написан
    Комментировать
  • Насколько реально нужен консул девопсу?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Никто не заставляет использовать docker, systemd, ansible и вообще какие угодно системы оркестрации и оптимизации. Необязательно делать шаблоны конфигов или кластерные конфигурации сервисов, необязательно использовать библиотеки настраиваемого логгирования, возиться с балансерами и реприцируемыми базами. Но люди это делают, значит, смысл всё-таки есть?

    Опытный администратор не должен задавать вопрос "нужно ли это вообще?" и исходить из идей вида "любому специалисто в области DevOps нужно вот конкретно это и не нужно конкретно другое". Он должен сам понимать, в какой момент сложность его инфраструктуры достигает того состояния, при котором ей нужно то или иное усложнение. Не рассуждать о том, что консул вообще не нужен или остро необходим, а принять решение о том, что и когда ему нужно для решения практических задач. Прекрасно, что в современном мире существует множество инструментов, которые позволяют достаточно быстро делать различные полезные вещи.

    Консул - это тоже инструмент. Вряд ли хоть кто-то использует его возможности целиком и полностью, тем более что никто не заставляет. Кому-то достаточно того, что у него все сервисы зарегистрированы в одном месте и из коробки имеют автоматическое DNS-имя вида NAME.service.consul. Кто-то использует kv-хранилище для хранения параметров, а кто-то хранит в нём секреты и целые конфиги, настраивает токены с различными acl и скрещивает всё это с consul-template. Вообще, необязательно использовать именно консул, есть и другие инструменты для подобных задач. Например, zk/etcd.

    Консул чаще используют совсем не с ансиблом, а с инструментами оркестрации, в которых сервисы могут расширяться и сворачиваться, перезагружаться и мигрировать. Скажем, пусть у нас есть условный сервис rabbitmq на три ноды. Тогда у нас может быть три контейнера rabbitm{1..3}, при запуске они регистрируются в консуле скриптом запуска вместе с проверками, а далее consul отдаёт их все три в виде имени rabbitmq.service.consul. Если какой-то из них вдруг упадёт, consul оперативно это обнаружит и исключит из DNS проблемный узел. Если вдруг управляющий всем этим администратор или автоматическая система оркестрации посчитает нужным добавить новые узлы или перенести их куда-то ещё в кластере, то consul также отразит все нужные изменения. При этом использующее rabbitmq приложение должно будет знать только адрес rabbitmq.

    Конечно, любую задачу можно обвесить скриптами, костылями и даже самописными плейбуками без использования готовых инструментов, а потом повторно решать десятки задач, которые уже сто раз решены до тебя опытными людьми, но зачем?
    Ответ написан
    1 комментарий
  • Как детально проверить SAS диски под linux?

    hint000
    @hint000
    у админа три руки
    SMART совершенно скудную информацию выдает

    https://qna.habr.com/q/1069110
    У SCSI и SAS-дисков нет SMART в "классическом" понимании этого слова.
    Ответ написан
    1 комментарий
  • Какой стек технологий лучше всего подойдет для работы с объемными базами данных?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    исходя из вышеизложенного, какой бы стек технологий вы бы выбрали как разработчик чтобы решить вышеописанную задачу?

    Для начала немного контекста - 2 важных примечания:
    1) Описанная задача решается на любом упомянутом стеке, + еще десяток возможных вариантов (Java/Spring, питон, нода, дотнет, голанг и т.д.).
    2) Быстродействие системы зависит от ее самой медленной части, и в 95% случаев самая медленная часть - БД, просто в силу специфики работы: много данных со сложными связями, выборки с сортировкой и фильтрацией из большого массива и вот это все, в то время как язык бэкенда в основном выполняет достаточно простые манипуляции с уже готовыми наборами данных (за редчайшими исключениями, которых в вашем кейсе нет, или они не описаны в вопросе).

    В вашем случае:
    - база можно сказать совсем небольшая, до 1 миллиона записей условный мускуль ворочает весьма шустро, если железо соответствует.
    - задача сбора метрик достаточно тривиальная, особого ума в сохранении действий пользователя не надо, бОльшая часть работы - вывод в красивые графики и написание быстрых запросов с хитрыми выборками/агрегациями, немного пошаманить с формулами, возможно делать какие-то сводные выборки с денормализованными результатами для отчетов и прочие мелочи. Работа не сложная, но нудная, и ее много.

    Насчет стоимости и условий:
    полный самопис 150к+ (я это не тяну) или же сайт на Laravel +MySQL а дальше варьируется.
    полный самопис - либо маркетинг, либо идиотизм, писать на голом языке не будет ни одна нормальная студия, в принципе в данном случае либо используется фреймворк и заказчику преподносится как "сделано вручную программистами девственниками под светом серебряной луны", либо разработчики идиоты, мнящие себя круче всех (нет). В первом случае это то же что и "сайт на Laravel +MySQL" (норма и стандарт для среднего уровня студий), во втором - развод на мани на пустом месте и попытка продать г**но в обертке "иксклюзивнасти".

    По цене - на сегодняшний день, если я не ошибаюсь, 150к деревянных это +- 1000уе. Цена приемлемая за нормальную работу, если найдете дешевле "на Laravel" - думаю будет вообще ок. Опять же, цены штука такая, кто-то за копейки сделает хорошо, кто-то за дорого каку сляпает. Влияет так же регион, понятно что в Мск цена будет серьезно больше чем в условном Челябинске...

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

    UPD:
    проект планируется на 100 к+ посетителей в месяц...
    предупреждают что если аудитория достигнет условных 100 тысяч в месяц Лара начнет потихонечку задыхаться от нагрузки,
    ок, пусть будет 200к для наглядности.
    В среднем, если это маркетплейс, то постоянных посетителей будет не много, думаю около 10%, так что ими можно пренебречь. Условно - 200к / 30 дней = 6600 в сутки, при активных 10-12 часах посещения это ~600 в час. Пусть на 1 посетителя будет 5 запросов страниц, это 600*5=3000 в час = 50 в минуту или менее 1 запроса в секунду.
    Даже если умножить это на 30 (допустим такая пиковая нагрузка), 30rps вообще "ниачем". Не знаю кто там вам считал то это проблема, любое современное железо среднего уровня вытягивает без напряга.
    Ответ написан
    2 комментария
  • Скейлинг в терраформ. Как?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    тот же terraform plan вам напишет почему он хочет заменить инстансы - какие параметры общей для инстансов конфигурации изменились, при невозможности их замены на лету
    Если вы меняете важный элемент в настройке, который невозможно заменить без пересоздания инстанса, его надо игнорировать через lifecycle -> ignore changes
    Однако так вы потенциально можете получить исключительно увеличение количества объектов
    Если вы деплоите в AWS то ASG может помочь - она не пересоздает инстансы без надобности, при добавлении необходимого количества инстансов. При уменьшении, базовая политика удаления инстансов - удалять наиболее старый.
    Ответ написан
    Комментировать
  • Как правильно организовать работу серверов?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1. API
    2. Сервера могут общаться через базу данных
    3. Сервера могут общаться через брокер очередей
    4. Можно подумать насчет общего стораджа - S3, распределенная файловая система, просто сетевой диск замапленный на каждый сервер.

    Вопрос не в том, чтобы "как связать", вопрос зачем вам это надо, как вы себе представляете "связывание" и какая у него цель?
    Ответ написан
    1 комментарий
  • Ошибка при изменении класса хранилища объекта. Почему?

    @Looka Автор вопроса
    Отвечу частично сам.
    Восстановление работает командой:
    $ aws s3api restore-object --bucket awsexamplebucket --key dir1/example.obj --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'

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

    Понять статус объекта можно так:
    $aws s3api head-object --bucket looka1 --key 1Cv77_Bin.zip
    { "AcceptRanges": "bytes",
    "Restore": "ongoing-request=\"true\"",
    "LastModified": "2019-11-01T10:50:19+00:00",
    "ContentLength": 10771150,
    "ETag": "\"f4fc5cdcfeccf75b3a432c1ae6c540f9\"",
    "VersionId": "CefbquFTCKrUa0xf5TEKv.2UdWCXNuNs",
    "ContentType": "application/zip",
    "Metadata": {},
    "StorageClass": "DEEP_ARCHIVE"
    }

    Обратить внимание:
    "Restore": "ongoing-request=\"true\""
    true - идет восстановление, falsh - восстановлен, есть доступ.

    Соответсвенно тоже самое делает в веб интерфейсе пункт Initial restore
    Но пункт доступен только для файлов, если в списке есть папка Dir\ то интерфейс не нает выбрать опцию восстановления, только изменить класс, который не работает для этого класса.

    А для  CLI решения для рекурсивного вызова не нашел, только. скрипты, а усложняется еще наличием кирилицы и пробелов в именах. В этом смысле вопрос остается. БУду признателен за подсказку и помощь.

    А кирилица не причем
    Ответ написан
    Комментировать
  • Как настроить PITR PostgreSQL?

    Melkij
    @Melkij
    PostgreSQL DBA
    Для pitr вам нужен:
    - basebackup как основа, должно быть завершено его снятие до датывремени требуемого восстановления pitr
    - непрерывный архив всех и абсолютно каждого сегмента wal без пропусков от момента checkpoint перед снятием используемого в восстановлении basebackup и до требуемой точки восстановления

    database system was shut down at 2022-02-10 13:31:25 UTC
    starting point-in-time recovery to 2022-02-10 07:00:00+00

    Это, конечно, невозможно даже с корректным архивом WAL.
    У postgresql REDO recovery, а не UNDO. Pitr только вперёд от текущей позиции. И не раньше достижения точки консистентности состояния (окончания снятия basebackup)

    Чтобы не ходить по граблям консистентности ещё и файловой системы, basebackup предпочтительнее снимать с самого postgresql, а не снимком блочного устройства. Но в целом вариант предусмотренный, ничем неотличимый от обычного crash recovery вроде старта после пропадания электричества (лишь бы fsync работал на всех уровнях корректно и не игнорировался).
    Ответ написан
    6 комментариев
  • Будет ли недоступность сайта при смене DNS-серверов?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    Нет, не будет если Вы не удалите зону со всеми записями со "старого" dns-хостинга, пока ns-сервера "нового" dns-хостинга (куда Вы зону скопировали) кэшируются везде.
    Ответ написан
    Комментировать