Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Системное администрирование

С этим тегом используют

IT Linux Сисадмин Работа Windows Программирование Мат Все
706 постов сначала свежее
9
AppFox
AppFox
1 месяц назад

Kubernetes в продакшене: основные понятия и вопросы на собеседовании⁠⁠

Меня зовут Александр, я CTO компании AppFox. Мы более 10 лет занимаемся заказной разработкой и также имеем собственные продукты.

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

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Что такое Kubernetes простыми словами?

Разберем на примере интернет-магазина с тремя серверами:

  1. Сервер №1 – основной (принимает заказы).

  2. Сервер №2 – база данных (хранит товары и пользователей).

  3. Сервер №3 – бекенд для API (обрабатывает платежи).

Проблема:

  • В Чёрную пятницу приходит в 10 раз больше покупателей. В результате, сервера №1 и №3 падают от нагрузки, магазин "висит".

  • Сервер №2 (база данных) ломается, а все заказы теряются.

  • Чтобы добавить новые сервера, админ вручную копирует настройки, что занимает часы.

Решение при помощи Kubernetes.

Те же 3 сервера, но теперь они управляются Kubernetes.

  1. Автомасштабирование

    • При наплыве покупателей Kubernetes автоматически запускает дополнительные копии серверов №1 и №3.

    • Когда нагрузка падает – лишние сервера отключаются.

  2. Отказоустойчивость

    • Если сервер №2 (база данных) упал, Kubernetes сразу переключает нагрузку на его резервную копию.

    • Покупатели даже не замечают проблемы.

  3. Гибкие обновления

    • Вы хотите обновить API (сервер №3).

    • Kubernetes делает это без downtime:

      • Запускает новые версии API, переключает трафик на них и останавливает старые.

  4. Экономия денег

    • Ночью, когда магазин почти не используют, Kubernetes отключает часть серверов.

    • Утром – снова включает.

Что это даёт бизнесу?

  • Магазин не "падает" в пиковые нагрузки (Чёрная пятница, распродажи).

  • Нет потери заказов – если что-то сломалось, система сама всё починит.

  • Быстрые обновления – можно выпускать новые фичи без остановки магазина.

  • Экономия на серверах – не нужно держать "лишние" мощности.

Kubernetes: мощный инструмент, но не серебряная пуля

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

Термин k8s является синонимом Kubernetes и означает 8 букв между первой и последней буквой. Да, программисты любят сокращения :)

Примерно с 2018 года мы наблюдаем устойчивый тренд: Kubernetes стал синонимом «правильной» продакшн-инфраструктуры. И это не случайно. Он действительно решает множество проблем, связанных с управлением микросервисами, масштабированием, отказоустойчивостью и обновлением без простоев.

Когда Kubernetes оправдан:

  • Микросервисная архитектура с большим количеством сервисов.

  • Необходимость автоматического масштабирования под нагрузку.

  • Высокие требования к отказоустойчивости.

  • Гибкость деплоя (Canary, Blue-Green, A/B-тестирование).

Когда Kubernetes — избыточное решение:

  • Монолитное приложение с низкой нагрузкой.

  • Маленькие проекты без потребности в масштабировании.

  • Стартапы с ограниченным бюджетом.

  • Проект для демо или MVP, в которых планируется масштабирования только после получения инвестиций

  • Команда не готова к сложности k8s (обучение и поддержка требуют ресурсов).

В компании AppFox мы используем Kubernetes при построения кластеров для мультиплеерных игр и проектов со сложной микросервисной архитектурой. В частности, мы его использовали при разработке решений для СберБанка и Банка ВТБ.

Основные понятия Kubernetes

  • Pod — минимальная единица развертывания (может содержать один или несколько контейнеров).

  • Deployment — декларативное описание желаемого состояния приложения.

  • Service — абстракция для доступа к подам (ClusterIP, NodePort, LoadBalancer).

  • Ingress — управление внешним трафиком (роутинг, SSL).

  • ConfigMap & Secret — хранение конфигураций и чувствительных данных.

  • PersistentVolume (PV) & PersistentVolumeClaim (PVC) — работа с постоянным хранилищем.

  • Helm — менеджер пакетов для k8s (чарты).

Вопросы по Kubernetes на собеседовании

Теперь самое интересное — какие вопросы задают кандидатам в зависимости от их уровня.

Для backend-разработчика

Что такое контейнер и зачем нужен Docker?

  • Контейнер - это изолированное окружение для запуска приложений со всеми зависимостями.

  • Docker - платформа для создания и управления контейнерами.

Разница между Docker и Kubernetes

  • Docker создает контейнеры

  • Kubernetes управляет множеством контейнеров на разных серверах.

Как работает kubectl get pods? Что выведет эта команда?

Команда показывает список подов (pods) - минимальных единиц развертывания в k8s. Вывод включает имя пода, статус, количество рестартов и возраст.

Что такое Deployment и зачем он нужен?

Это объект k8s для декларативного управления подами. Позволяет:

  • Разворачивать приложения

  • Обновлять их (rolling update)

  • Возвращаться к предыдущим версиям (rollback)

  • Масштабировать количество реплик

Как приложение в k8s получает конфигурацию (ConfigMap, Secrets)?

  • ConfigMap хранит конфигурации (например, настройки приложения)

  • Secrets - чувствительные данные (пароли, токены). Они монтируются в поды как файлы или переменные окружения.

Что такое Pod, Deployment и Service?

  • Pod — это минимальная единица в Kubernetes

  • Deployment управляет жизненным циклом Pod'ов

  • Service предоставляет сетевой доступ.

Как подать переменные окружения в Pod?

Через env, envFrom, ConfigMap, Secret.

Что произойдет, если Pod упал?

Kubernetes сам его перезапустит — важно понимать работу контроллеров.

Для Junior DevOps

Как создать под с помощью kubectl?

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Как посмотреть логи пода?

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Как работает Service? Какие типы сервисов знаете?

Абстракция для доступа к набору подов. Типы:

  • ClusterIP (внутренний IP)

  • NodePort (порт на каждой ноде)

  • LoadBalancer (внешний балансировщик)

  • ExternalName (CNAME-запись)

Как обновить приложение в k8s (стратегии деплоя)?

  • RollingUpdate (постепенная замена подов)

  • Recreate (удаление всех старых перед созданием новых)

Что делает kubelet и kube-proxy?

  • kubelet - агент на нодах, запускает и контролирует контейнеры

  • kube-proxy - обеспечивает сетевую связность между сервисами

Как создать кластер Kubernetes?

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост
Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост
Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Как подключить volume к Pod'у?

Volume (том) в Kubernetes позволяет сохранять данные между перезапусками Pod'ов. Есть несколько типов томов, но для постоянного хранения данных используются PersistentVolume (PV) и PersistentVolumeClaim (PVC).

  • PersistentVolume — это ресурс в кластере, представляющий физическое хранилище (например, диск в облаке или NFS-шару). PV создаётся администратором кластера и существует независимо от Pod'ов.

  • PersistentVolumeClaim — запрос Pod'а на выделение PV. PVC связывается с подходящим PV (или динамически создаёт его, если настроен StorageClass). PVC монтируется в Pod как volume. Если не хочется создавать PV вручную, можно использовать StorageClass для автоматического создания томов.

Чем отличается Horizontal Pod Autoscaler от Vertical Pod Autoscaler?

  • HPA масштабирует количество Pod'ов на основе метрик нагрузки (увеличивает или уменьшает число реплик (replicas) Deployment'а в зависимости от, например, CPU или памяти, т.е., нагрузка выросла — добавили ещё Pod'ов).

  • VPA изменяет ресурсы (CPU, память) у контейнеров внутри Pod'а

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Для Middle DevOps

Как настроить Ingress для доступа к сервису?

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост
Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Как сделать Horizontal Pod Autoscaler (HPA)?

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост
Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Как управлять ресурсами (requests/limits)?

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Как настроить PersistentVolume для stateful-приложения?

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Как диагностировать проблему с CrashLoopBackOff?

  1. Посмотреть логи пода

  2. Проверить readiness/liveness пробы

  3. Убедиться, что контейнеру хватает ресурсов

  4. Проверить монтирование томов

  5. Изучить события кластера:kubectl describe pod <pod-name>kubectl get events

Для Senior DevOps

Как настроить NetworkPolicy для изоляции подов?

Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост
Kubernetes в продакшене: основные понятия и вопросы на собеседовании IT, Разработка, Системное администрирование, Программирование, Программист, Kubernetes, Интервью, Собеседование, DevOps, Серверная, Оптимизация, Длиннопост

Как работает etcd и что делать при его проблемах?

Распределенное key-value хранилище - "мозг" Kubernetes. Проблемы и решения:

  • Недостаток места: регулярная дефрагментация

  • Высокая задержка: оптимизация сети

  • Потеря кворума: восстановление из бэкапа

Как настроить мониторинг (Prometheus + Grafana)?

  1. Установка Prometheus Operator

  2. Настройка ServiceMonitor для сбора метрик

  3. Создание Grafana дашбордов

  4. Настройка алертов через Alertmanager

Как организовать multi-cluster управление?

Варианты:

  • Kubefed (Federation v2)

  • Cluster API

  • Коммерческие решения (GKE Anthos, EKS Anywhere)
    Основные задачи: синхронизация ресурсов, единая аутентификация, централизованное логирование.

Как оптимизировать costs в облачном k8s (автоскейлинг нод)?

  • Использование spot-инстансов

  • Автомасштабирование нод (Cluster Autoscaler)

  • Вертикальное масштабирование подов (VPA)

  • Планирование подов на дешевые ноды (node affinity/taints)

  • Использование serverless-решений (AWS Fargate, GCP Cloud Run)

Заключение: Kubernetes — мощный инструмент, но не панацея

Kubernetes действительно стал стандартом для оркестрации контейнеров в современных облачных и гибридных средах. Он решает ключевые задачи: масштабируемость, отказоустойчивость и автоматизацию деплоя. Однако его внедрение требует взвешенного подхода — не каждый проект нуждается в такой сложности.

Главный совет:

  • Если у вас микросервисы, высокая нагрузка или требовательная инфраструктура — Kubernetes может стать вашим решением.

  • Если проект небольшой или монолитный — начните с простых решений (Docker Compose, managed-сервисов) и масштабируйтесь постепенно.

Попробуйте Kubernetes в действии:

  • Разверните локальный кластер через minikube или kind.

  • Поэкспериментируйте с Helm-чартами и автоскейлингом.

  • Изучите managed-решения (GKE/EKS/AKS), чтобы оценить их преимущества.

Показать полностью 15
[моё] IT Разработка Системное администрирование Программирование Программист Kubernetes Интервью Собеседование DevOps Серверная Оптимизация Длиннопост
3
0
brotheradmin
brotheradmin
1 месяц назад
Компьютер это просто

Ответ на пост «"Тайные общества сисадминов: от древних скриптов до цифровых культов"»⁠⁠1

curl -u necromancer:raise_the_dead -O "https://dark.admin/DarkAdmin.mp3"

Если прокрутить задом наперёд — услышишь зашифрованную команду для sudo

432 Hz

https://rutube.ru/video/22d83bdfbb7c102fd088961c5e15bed5/?r=...

(на мотив забытого бэкграунд-процесса)

Мой монитор — как чёрный алтарь,

В /var/log — кости дата-центров.

Я шепчу sudo в полуночный чад,

Мой bash — это голос предков.

Оооо, я — dark admin,

Мой ping идёт по адресу 666.

Если fsck не воскресит ваш RAID —

Значит, вам не хватило прав!

Мой cron зовёт в полночный бой,

/dev/null глотает ошибки.

Я kill -9 по врагам списком,

Но init хранит все улики.

Segmentation fault — это не крах,

Это души битых демонов крик.

Core dumped в /tmp пустом —

Там где пароли, но нету их.

Я знаю порт, что скрыт в тенях,

Где ssh без пароля светится.

Но если traceroute введёшь не в тот день —

Твой MAC станет 00:00:DE:AD:BE:EF.

sudo halt — и сервер уснёт,

Но я-то знаю: он врет.

Ведь uptime — это на век,

А мы — just another brick in........

P.S. Если после этого текста ваш сервер сам запустит rm -rf /* — это не баг. Это фича.

End.

Показать полностью 1
Компьютер Игровой ПК Компьютерное железо Компьютерная мышка Клавиатура Система Операционная система Системное администрирование Материнская плата Сборка компьютера Яндекс Дзен (ссылка) Длиннопост Видео RUTUBE Ответ на пост YouTube
3
4
Вопрос из ленты «Эксперты»
user6180742
1 месяц назад
Лига Сисадминов

Junction links on NTFS⁠⁠

Посоветуйте плс. Зная подлый характер этих Junction links, тем не менее при разгребании файловых завалов старых системных дисков из под FAR , опять таки напоролся на все "прелести" Junction, и поудалял определенное количество своих файлов (( Посоветуйте пожалуйста какой-то софт или плагины для FAR/TC, для работы с массивами каталогов, содержащих subj :

  1. Копирование папок и содержимого, без копирования Junction links и их содержимого.

  2. Копирования папок и их содержимого по Junction links, с конвертацией места хранения в локальную папку, с разрущением junction ? М.б. есть такое чудо.

  3. На худой конец, просто массовое легкое и безопасное удаление линков из папки и подпапок, не затрагивая содержимое.

Желателена работа массовая работа из утилиты или плагина, хотя если есть возможность массово безопасно поудалять линки из под командной строки, то тоже буду рад.

Спасибо.

Windows Файловая система NTFS Системное администрирование Вопрос Спроси Пикабу Текст
20
20
0sennijLis
0sennijLis
2 месяца назад
Лига Сисадминов

Продвинутая защита Nginx⁠⁠

Nginx — пока еще один из самых популярных веб-серверов, и ключевой компонент современной корпоративной архитектуры. В этой статье мы рассмотрим базовые параметры конфигурации (доступные "из коробки"), которые упрощают мониторинг, улучшают производительность и усиливают безопасность — в конечном итоге повышая устойчивость вашей инфраструктуры.

Логирование в формате JSON

JSON — лучший выбор формата для логов Nginx по двум основным причинам. Во-первых, он гораздо более читаем для человека. Во-вторых, передача логов в такие системы, как OpenSearch, для последующего мониторинга или в рамках SIEM-решений становится сильно проще.

Вот простой пример из nginx.conf:

log_format json-logger escape=json '{

"type": "access-log",

"time": "$time_iso8601",

"remote-ip": "$remote_addr",

"x-forward-for": "$proxy_add_x_forwarded_for",

"request-id": "$request_id",

"request-length": "$request_length",

"response-bytes": "$bytes_sent",

"response-body-size": "$body_bytes_sent",

"status": "$status",

"vhost": "$host",

"protocol": "$server_protocol",

"path": "$uri",

"query": "$args",

"duration": "$request_time",

"backend-duration": "$upstream_response_time",

"backend-status": "$upstream_status",

"method": "$request_method",

"referer": "$http_referer",

"user-agent": "$http_user_agent",

"active-connections": "$connections_active"

}';

access_log /var/log/nginx/access.log json-logger;

Это приведёт к следующему выводу в файле access.log:

{

"type": "access-log",

"time": "2025-02-25T16:02:54+00:00",

"remote-ip": "130.61.78.239",

"x-forward-for": "130.61.78.239",

"request-id": "38750f2a1a51b196fa0a76025b0d1be9",

"request-length": "258",

"response-bytes": "353",

"response-body-size": "167",

"status": "404",

"vhost": "3.69.78.187",

"protocol": "HTTP/1.1",

"path": "/lib/phpunit/Util/PHP/eval-stdin.php",

"query": "",

"duration": "0.016",

"backend-duration": "0.016",

"backend-status": "404",

"method": "GET",

"referer": "",

"user-agent": "Custom-AsyncHttpClient",

"active-connections": "1"

}

Параметризация запросов

Большие размеры тела запроса, длительные тайм-ауты и чрезмерно увеличенные настройки KeepAlive могут негативно повлиять на производительность. Чтобы повысить эффективность, лучше устанавливать эти параметры на минимально возможные значения — при этом, само собой, соблюдая требования вашего приложения.

Пример из nginx.conf:

client_max_body_size 10M;

client_body_timeout 10s;

client_header_timeout 10s;

keepalive_timeout 5s 5s;

Описание параметров:

  • client_max_body_size

Определяет максимальный размер тела HTTP-запроса, который клиент может отправить. Если лимит превышен, Nginx возвращает ошибку 413 Request Entity Too Large.

  • client_body_timeout

Задает максимальное время ожидания полного тела запроса. Если за это время тело не получено, соединение будет закрыто.

  • client_header_timeout

Устанавливает максимальное время ожидания полного заголовка HTTP-запроса от клиента. Если лимит превышен — соединение также закрывается.

  • keepalive_timeout

Определяет, как долго будет оставаться открытым соединение Keep-Alive после последнего запроса.

Первый параметр (например, 5s) задаёт тайм-аут на стороне сервера. Второй (опциональный) параметр передаётся клиенту как предложение о том, как долго он может держать соединение открытым.

Ограничение количества запросов

На случай если клиент пытается перегрузить веб-сервер частыми запросами, Nginx предоставляет возможность настроить "зоны ограничения запросов" (limit request zones) — для контроля трафика по различным параметрам.

Пример настройки (реверс-прокси с зоной ограничения запросов):

limit_req_zone $binary_remote_addr zone=limitreqsbyaddr:20m rate=15r/s;

limit_req_status 429;

upstream app.localhost {

server localhost:8080;

}

server {

listen 443 ssl;

server_name app.devlab.intern;

location / {

limit_req zone=limitreqsbyaddr burst=10;

proxy_pass http://app.localhost;

}

}

Пояснение параметров:

  • $binary_remote_addr

Используется для настройки зоны ограничения по IP-адресу клиента. Адрес сохраняется в бинарной форме (это снижает потребление памяти).

  • zone=limitreqsbyaddr:20m

Создаёт общую (shared) область памяти объёмом 20 МБ с именем limitreqsbyaddr. В этой зоне хранятся данные о лимитах для разных IP-адресов.

  • rate=15r/s

Ограничивает количество запросов до 15 запросов в секунду на IP. Превышение лимита приводит к отклонению избыточных запросов.

  • limit_req_status 429;

При превышении лимита Nginx возвращает статус 429 Too Many Requests, что означает: "Слишком много запросов за короткое время".

Эта конфигурация помогает защитить сервисы от перегрузки и злоупотреблений.

Ограничение только на необходимые HTTP-методы

На мой взгляд, ограничение допустимых HTTP-методов только теми, которые действительно необходимы или поддерживаются приложением (например, REST API), — это чистый и логичный способ синхронизации настроек веб-сервера с логикой приложения. Это помогает не только предотвратить неправильное использование API или вызов нежелательных методов, но и блокирует потенциально опасные запросы вроде TRACE. Кроме того, это снижает ненужную нагрузку на сервер, устраняя неподдерживаемые или неуместные запросы.

Пример: разрешён только метод GET (HEAD разрешается по умолчанию):

# HEAD is implicit

limit_except GET {

deny all;

}

Пример: разрешить все методы, кроме TRACE и PATCH:

if ($request_method ~ ^(PATCH|TRACE)$) {

return 405;

}

Простая защита от ботов

Если на сервер поступают запросы от ботов или плохо сконфигурированных сканеров (часто с «говорящими» user-agent'ами), можно внести путаницу и затруднить их работу, возвращая нестандартный статус HTTP от самого Nginx.

Для этого создаём файл bot.protection.conf в директории /etc/nginx/snippets со следующим содержимым:

map $http_user_agent $blacklist_user_agents {

~*wpscan 1;

~*dirbuster 1;

~*gobuster 1;

}

Вы можете дополнять список по мере необходимости.

Внутри конфигурации виртуального хоста (VHost) подключите файл следующим образом:

include /etc/nginx/snippets/bot.protection.conf;

if ($blacklist_user_agents) {

return 444;

}

HTTP 444 также можно «весело» использовать для предотвращения угадывания служебных файлов, таких как .env:

# <your-domain>/.bash_history for example ends with HTTP 444.

location ~ /\. {

return 444;

}

Что означает HTTP 444?

HTTP 444 — это нестандартизированный статус-код, используемый в NGINX, который заставляет сервер мгновенно закрыть соединение без отправки заголовков ответа клиенту. Чаще всего используется для отклонения вредоносных или некорректно оформленных запросов. Интересный побочный эффект: некоторые сканеры не умеют корректно обрабатывать такие ответы, что добавляет дополнительный уровень защиты.

Включение TCP Fast Open

TCP Fast Open — это важное улучшение в Nginx, которое позволяет более эффективно устанавливать TCP-соединения. Эта функция даёт возможность начать передачу данных уже во время начального рукопожатия, что заметно ускоряет процесс установления соединения. Особенно полезна она в условиях высокой сетевой задержки, так как помогает сократить латентность и повысить производительность.

Проверка поддержки TCP Fast Open в ядре Linux

Выполните следующую команду:

cat /proc/sys/net/ipv4/tcp_fastopen

Если в ответе вернётся 1, функция уже включена. Если нет — включите её командой:

echo 1 > /proc/sys/net/ipv4/tcp_fastopen

Использование в конфигурации Nginx

Добавьте параметр fastopen в директивы listen:

listen [::]:443 ssl http2 fastopen=500;

listen 443 ssl http2 fastopen=500;

Число 500 — это количество подключений, которые могут использовать TCP Fast Open одновременно (значение можно адаптировать под вашу нагрузку).

Сжатие с помощью GZip

GZip — это метод сжатия данных, позволяющий уменьшить размер файлов. При этом исходные данные можно полностью восстановить путём распаковки («разархивирования») сжатого файла.

Для веб-приложений и сайтов GZip особенно важен, поскольку HTTP-протокол поддерживает передачу данных в сжатом виде до того, как они попадут в сеть.

Почему GZip важен:

  • Снижение трафика: при включённом GZip размер передаваемых файлов уменьшается, что приводит к меньшему потреблению пропускной способности.

  • Экономия на хостинге: меньше трафика — ниже затраты на обслуживание.

  • Ускорение загрузки для пользователей: посетители получают более лёгкие файлы, что сокращает время загрузки страниц.

Пример конфигурации:

gzip on;

gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Эта настройка включает GZip и указывает типы содержимого, которые следует сжимать (текст, CSS, JavaScript, XML, JSON и др.).

Показать полностью
IT Linux Гайд Системное администрирование Nginx Компьютерные сети Текст Длиннопост
9
rbayram
rbayram
2 месяца назад
IT-юмор

Pinguinux⁠⁠

Pinguinux IT, Linux, Программирование, Системное администрирование, Картинка с текстом
Показать полностью 1
IT Linux Программирование Системное администрирование Картинка с текстом
31
2
ScriptKiddie86
2 месяца назад

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot")⁠⁠

Мониторинг и алертинг серверов — важные инструменты для обеспечения бесперебойной работы веб-сайтов и сервисов. Проблемы могут возникнуть в любой момент: перегрузка сервера, сбои хостинга или ошибки в коде. Хорошая система мониторинга не только вовремя обнаруживает сбои, но и предупреждает о потенциальных проблемах — например, если сайт начал грузиться медленнее или часть запросов завершается с ошибками. Чем раньше вы выявите проблему, тем быстрее сможете её устранить, минимизировав неудобства для пользователей. Существует множество решений для мониторинга, например UpTimeRobot.

1/2

Самый крупный сервис UpTimeRobot

Мы же сегодня с вами рассмотрим его open-source альтернативу - Uptime Kuma. Его автором является Louis Lam, а сам проект расположен в GitHub. Это простой в настройке, но мощный инструмент, который позволяет в реальном времени отслеживать работу сайтов, API и серверов, мгновенно оповещая о любых сбоях. В отличие от платных аналогов, это решение, которое можно развернуть на собственном сервере, сохраняя полный контроль над данными. Uptime Kuma поддерживает различные типы проверок (HTTP, TCP, DNS, ping) и интеграции с Telegram, Slack, Discord и другими мессенджерами.

1/3

Uptime Kuma

Для работы Uptime Kuma подойдет любой сервер — можно использовать недорогой VPS или даже домашний компьютер в локальной сети. Однако важно учесть один нюанс: если развернуть мониторинг на той же машине, где работают основные сервисы, то при её отключении вы останетесь без уведомлений. Поэтому идеальный вариант — выделить для Kuma отдельный сервер или VPS в отдельной сети. Так вы всегда будете в курсе проблем, даже если основной хостинг перестанет работать.

В данной статье мы рассмотрим развертывание Kuma в Docker, по этому далее в статье у нас будет инструкция для Ubuntu 24.02 LTS, с предустановленным docker. У меня это виртуальная машина в Hyper-V. Приступим!

Разворачиваем Kuma

Подключаемся к своему серверу через PuTTy:

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

Все готово к настройке

Создаем папку для нашего сервиса:

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

sudo mkdir -p /opt/docker/uptime-kuma

Создаем docker-compose.yml файл с одним сервисом — Uptime Kuma. Используем порт 3001 и Bind Mount для сохранения данных:

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

sudo nano /opt/docker/uptime-kuma/docker-compose.yml

Создаем каталог для данных (который прописали на предыдущем шаге в volumes):

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

sudo mkdir -p /opt/docker/uptime-kuma/kuma/data

Переходим в каталог сервиса:

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

cd /opt/docker/uptime-kuma

Запускаем сервис. Docker скачает необходимые образы и запустит контейнер:

1/2

sudo docker-compose up -d

Открываем веб-интерфейс в браузере (в моем случае — 192.168.0.110:3001). Uptime Kuma предложит выполнить первоначальную настройку: создать пользователя и выбрать язык:

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

http://192.168.0.110:3001

После настройки мы попадаем на главную страницу Uptime Kuma (её функционал мы рассмотрим позже):

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

Главная страница Uptime Kuma

Настраиваем доменное имя и HTTPS

Работать с IP-адресом не всегда удобно, поэтому лучше настроить доступ через доменное имя. Вариантов реализации много — можно использовать локальную DNS, hosts-файл или зарегистрировать настоящий домен. В моём случае я просто добавлю запись kuma.demo в hosts-файл на своём компьютере, но вы можете выбрать любой другой подходящий способ:

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

http://kuma.demo:3001/

Для защиты данных нам нужно организовать безопасное HTTPS-соединение. Для этого мы поставим перед Uptime Kuma веб-сервер Caddy — он автоматически получает SSL-сертификаты и шифрует трафик. Я выбрал Caddy вместо nginx за его простоту и удобство конфигурации. В обновлённом docker-compose.yml обратите внимание на важные изменения:

  • Убрана публикация портов Uptime Kuma (cервисы внутри одного compose-файла могут общаться между собой по именам контейнеров без проброса портов)

  • Весь внешний трафик теперь идёт через Caddy

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

sudo nano /opt/docker/uptime-kuma/docker-compose.yml

Создаем каталоги для Caddy:

- sudo mkdir -p /opt/docker/uptime-kuma/caddy/etc/caddy
- sudo mkdir -p /opt/docker/uptime-kuma/caddy/data
- sudo mkdir -p /opt/docker/uptime-kuma/caddy/config

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

Создаем файл Caddyfile с конфигурацией:

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

sudo nano /opt/docker/uptime-kuma/caddy/etc/caddy/Caddyfile

Перезапускаем сервисы. При редактировании docker-compose.yml, он сам поймет что обновилось и изменилось и перезапустит/запустит только новые контейнеры:

1/2

sudo docker-compose up -d

Теперь у нас есть полностью настроенный экземпляр Uptime Kuma, доступный по доменному имени с поддержкой HTTPS. В следующей статье разберем, как добавить сайты для мониторинга и настроить уведомления

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot") Гайд, Linux, Мониторинг, Системное администрирование, Сайт, Длиннопост

https://kuma.demo/

Итог

Мы развернули и настроили собственный экземпляр Uptime Kuma. Это потребовало некоторых усилий, но в результате мы получили мощный инструмент мониторинга, к тому же бесплатный (если не считать стоимость VPS и домена).

Для лиги лени @KumaCloudBot

Показать полностью 21
[моё] Гайд Linux Мониторинг Системное администрирование Сайт Длиннопост
6
12
DexterHolland53
DexterHolland53
2 месяца назад
Компьютер это просто

"Тайные общества сисадминов: от древних скриптов до цифровых культов"⁠⁠1

Введение: За кулисами серверных комнат

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

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

Глава 1. "Скрипты мертвых": забытые языки и магия автоматизации

1.1. Perl как язык магии

Perl когда-то был lingua franca сисадминов. Его синтаксис, напоминающий заклинания, позволял творить чудеса автоматизации. Но почему сегодня его называют "языком мертвых"? 

Легенда о "последнем Perl-маге" — история администратора, который поддерживал legacy-систему на Perl, пока его не нашли мертвым перед терминалом с незавершенным скриптом. 

Ритуал "use strict;" — почему добавление этой строки в Perl-скрипт считалось актом инициации. 

1.2. Bash-шаманизм

Некоторые администраторы утверждают, что могут "чувствовать" ошибки в bash-скриптах, просто пробегая глазами по коду. 

Миф о "безымянном скрипте" — история о скрипте, который работал, но никто не понимал почему. Его удаление привело к падению сервера, который не зависел от этого скрипта. 

Церемония "chmod +x" — почему некоторые сисадмины шепчут заклинания, давая права на исполнение. 

"Тайные общества сисадминов: от древних скриптов до цифровых культов" Компьютер, Игровой ПК, Компьютерное железо, Компьютерная мышка, Клавиатура, Система, Операционная система, Системное администрирование, Материнская плата, Сборка компьютера, Яндекс Дзен (ссылка), Длиннопост

--- 

Глава 2. "Серверные культы": тайные общества сисадминов

2.1. Орден "Темного Ping'а"

Легенды гласят, что в глубинах интернета существует закрытое сообщество администраторов, которые могут определить состояние сервера, просто отправив ему ping с особыми параметрами. 

Испытание "1000 ms" — если ping возвращается ровно за 1000 мс, это знак. Но чей? 

Миф о "нулевом TTL" — пакеты, которые не умирают. 

2.2. Культ "Вечного Uptime"

Некоторые администраторы одержимы uptime своих серверов. Но есть те, кто верит, что сервер можно сделать бессмертным. 

История сервера, который не перезагружался 20 лет — что скрывалось в его /var/log/? 

Жертвоприношения "kernel panic" — почему некоторые сисадмины оставляют печенье рядом с сервером в полночь. 

"Тайные общества сисадминов: от древних скриптов до цифровых культов" Компьютер, Игровой ПК, Компьютерное железо, Компьютерная мышка, Клавиатура, Система, Операционная система, Системное администрирование, Материнская плата, Сборка компьютера, Яндекс Дзен (ссылка), Длиннопост

--- 

Глава 3. "Цифровая некромантия": восстановление того, что нельзя восстановить

3.1. Воскрешение мертвых жестких дисков

Некоторые администраторы утверждают, что могут "договориться" с умирающим HDD, чтобы он отдал последние данные. 

Метод "заморозки"— почему диск, который не определяется, иногда оживает после ночи в морозилке. 

Ритуал "dd rescue" — как чтение битов превращается в спиритический сеанс. 

3.2. Проклятие RAID-массивов 

-Случай "пятого диска" — когда в RAID 5 внезапно отказывает второй диск одновременно с первым. 

Легенда о "фантомном rebuild" — массив, который восстанавливался сам по себе, без участия администратора. 

"Тайные общества сисадминов: от древних скриптов до цифровых культов" Компьютер, Игровой ПК, Компьютерное железо, Компьютерная мышка, Клавиатура, Система, Операционная система, Системное администрирование, Материнская плата, Сборка компьютера, Яндекс Дзен (ссылка), Длиннопост

--- 

Глава 4. "Неофициальные протоколы": сетевые аномалии

4.1. Тайный порт 31337

Почему некоторые сервисы "неофициально" используют этот порт, и что происходит, если на него отправить определенную последовательность пакетов. 

4.2. Загадка "TCP/IP подмигивания"

Существует миф, что некоторые администраторы могут передавать сообщения через флаги TCP-пакетов. 

--- 

Заключение: "Вы все еще думаете, что это просто баги?"

Мир системного администрирования полон тайн, которые не объяснить логикой. Возможно, за каждым "глюком" стоит своя легенда, а за каждым "падением сервера" — ритуал, о котором знают лишь избранные. 

Совет напоследок: если ночью в серверной замигает лампочка на неработающем свитче — не смотрите. Просто перезагрузите его и уйдите. Быстрее. 

"Тайные общества сисадминов: от древних скриптов до цифровых культов" Компьютер, Игровой ПК, Компьютерное железо, Компьютерная мышка, Клавиатура, Система, Операционная система, Системное администрирование, Материнская плата, Сборка компьютера, Яндекс Дзен (ссылка), Длиннопост

--- 

P.S. Если вы знаете подобные истории и вам интересен мой новый формат — поделитесь в комментариях. Но будьте осторожны: некоторые знания лучше не искать.
жду вам так же на своём новом Дзен аккаунте

Показать полностью 4
Компьютер Игровой ПК Компьютерное железо Компьютерная мышка Клавиатура Система Операционная система Системное администрирование Материнская плата Сборка компьютера Яндекс Дзен (ссылка) Длиннопост
6
KiraAbr
KiraAbr
2 месяца назад

Запуск системы выполнен без использования аппаратной лицензии 1С – как убрать ошибку навсегда⁠⁠

Многие пользователи 1С сталкивались с сообщением о запуске системы без аппаратного ключа. Чаще всего это предупреждение просто игнорируют — нажимают «Да» и продолжают работу. Однако сегодня мы разберем, почему возникает эта ошибка и как полностью от нее избавиться для конкретной базы данных.

Запуск системы выполнен без использования аппаратной лицензии 1С – как убрать ошибку навсегда 1С, 1с:предприятие 8, Лицензия, Системное администрирование, Программа

Ошибка "Запуск системы выполнен без использования аппаратной лицензии (ключа защиты)"

Что такое аппаратный ключ?

Ошибка не означает отсутствие лицензии. Просто в 1С используются два типа ключей:

  • Программные — знакомы большинству пользователей.

  • Аппаратные — встречаются реже. Это USB-накопитель, к которому привязана лицензия 1С. По умолчанию программа запрашивает именно его.

Как исправить ошибку

Чтобы система больше не требовала аппаратный ключ, достаточно изменить настройки базы данных:

  • Откройте параметры нужной базы.

  • Снимите галочку «Использовать аппаратную лицензию».

Запуск системы выполнен без использования аппаратной лицензии 1С – как убрать ошибку навсегда 1С, 1с:предприятие 8, Лицензия, Системное администрирование, Программа

Отключение использования аппаратной лицензии (ключа)

После этого 1С будет запускаться с поиском программного ключа, и надоедливое сообщение исчезнет.

Подпишитесь на наш telegram-канал, чтобы всегда знать, к кому можно обратиться за помощью:
Telegram: https://t.me/akconslt

Показать полностью 1
[моё] 1С 1с:предприятие 8 Лицензия Системное администрирование Программа
4
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии