ar
Feedback

لا تقع ضحية للمخادعين! تيليمتريو يكتشف ويُميّز هذه القنوات 👉 إذا كنت تريد رؤية العلامة، اشترك

DevOps | Вопросы собесов

DevOps | Вопросы собесов

الذهاب إلى القناة على Telegram
5 572
المشتركون
-224 ساعات
لا توجد بيانات7 أيام
+1430 أيام
أرشيف المشاركات
🤔 Как и где посмотреть логи какого-нибудь сервиса? Обычно хранятся в каталоге /var/log. Также многие современные дистрибутивы используют систему журналирования systemd для управления и просмотра логов. 🚩Способы просмотра 🟠Просмотр логов в /var/log Каталог /var/log содержит логи большинства системных сервисов и приложений. Логи системных сообщений /var/log/syslog: Содержит общие системные логи. /var/log/messages: Содержит общие системные сообщения (не во всех дистрибутивах).
cat /var/log/syslog
less /var/log/syslog
tail -f /var/log/syslog
Логи конкретных сервисов Apache: /var/log/apache2/ или /var/log/httpd/ Логи доступа: /var/log/apache2/access.log или /var/log/httpd/access_log Логи ошибок: /var/log/apache2/error.log или /var/log/httpd/error_log
tail -f /var/log/apache2/access.log
tail -f /var/log/apache2/error.log  
Nginx: /var/log/nginx/ Логи доступа: /var/log/nginx/access.log Логи ошибок: /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log 
MySQL: /var/log/mysql/ или /var/log/mysqld.log
tail -f /var/log/mysql/error.log 
SSH: /var/log/auth.log или /var/log/secure
tail -f /var/log/auth.log 
🟠Использование `journalctl` для системных логов journalctl — это утилита для просмотра и управления журналами systemd. Она позволяет фильтровать логи по различным критериям, таким как время, сервис и уровень логирования. Основные команды journalctl Просмотр всех журналов
journalctl  
Логов конкретного сервиса
journalctl -u nginx.service  
Последних логов и продолжение просмотра в реальном времени
journalctl -f
journalctl -u nginx.service -f
Логов за определённый период
journalctl --since "2024-07-25 12:00:00" --until "2024-07-25 13:00:00" 
Логов с определённым уровнем логирования
journalctl -p err
journalctl -p warning  
🚩Примеры использования 🟠Просмотр логов Apache Логи доступа
tail -f /var/log/apache2/access.log  
Логи ошибок
tail -f /var/log/apache2/error.log 
🟠Просмотр логов Nginx Логи доступа
tail -f /var/log/nginx/access.log
Логи ошибок
tail -f /var/log/nginx/error.log  
🟠Использование `journalctl` для просмотра логов Nginx Все логи Nginx
journalctl -u nginx.service  
Последние логи Nginx в реальном времени
journalctl -u nginx.service -f
Ставь 👍 и забирай 📚 Базу знаний

Свой ИИ-агент на вашем сервере. Без утечки данных Сотрудники втайне скармливают ChatGPT коммерческую тайну и базы клиентов? П
Свой ИИ-агент на вашем сервере. Без утечки данных Сотрудники втайне скармливают ChatGPT коммерческую тайну и базы клиентов? Пора вернуть контроль IT-департаменту. Разверните изолированного ИИ-агента Hermes в закрытом контуре вашей компании на локальном VPS. Технические особенности: ✅ Безопасность: Вся история запросов, файлы и память хранятся строго у вас. Полное соответствие 152-ФЗ. ✅ Защита: Настроено автоматическое обезличивание данных перед обработкой и защита от prompt injection. ✅ Интеграция: Работает напрямую с вашими внутренними базами данных, 1С, CRM и закрытыми архивами документов через Element-чат. ✅ Выгода: Разовая оплата за внедрение и поддержку. ✅ Никаких плат за лицензии пользователей. Запишитесь на 30-минутное демо — покажем работу агента на вашем процессе. Узнать больше #реклама 16+ agent.itliga.ru О рекламодателе

🤔 В чём причина, если мы запускаем сервисы с ReplicaSet, меняем версию nginx, и поды не перезапущены? Причина: - Selector не изменился, а PodTemplate тоже не изменился. - ReplicaSet не обновляет поды сам при изменении образа. Нужно использовать Deployment, который пересоздаёт поды при изменении spec.template. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что сделать если зависает ssh? Если SSH завис, не стоит сразу закрывать терминал. Есть несколько причин и решений. 🚩Проверить, можно ли выйти без разрыва сессии Если SSH завис, но сессия не разорвана, попробуйте выйти без закрытия терминала:
~.
Переключение в режим управления SSH
~Ctrl+Z
🚩Проверить соединение с сервером Если SSH завис, причина может быть в разрыве соединения. Проверьте: Работает ли пинг до сервера:
ping server_ip
🔹 Открыт ли SSH-порт (22):
nc -zv server_ip 22
🚩Перезапустить SSH-клиент Если только один SSH-клиент завис, попробуйте:
pkill -9 ssh
или
killall -9 ssh
Затем переподключитесь
ssh user@server_ip
🚩Проверить SSH-сервер Если сервер доступен, но SSH зависает, войдите через консоль или другой метод (например, VNC, IPMI). Если SSH не отвечает, перезапустите его:
sudo systemctl restart ssh
или
service ssh restart
🚩Отключить TCP KeepAlive или изменить таймауты Иногда SSH зависает из-за разрыва соединения на роутере или файрволе. Добавьте в ~/.ssh/config на клиенте
Host *
    ServerAliveInterval 60
    ServerAliveCountMax 5
Или в /etc/ssh/sshd_config на сервере
ClientAliveInterval 60
ClientAliveCountMax 5
Затем перезапустите SSH
sudo systemctl restart ssh
🚩Убить зависшую SSH-сессию на сервере Если осталось зависшее подключение, найдите его и завершите:
who  # Показывает активные пользователи
ps aux | grep ssh  # Показывает процессы SSH
pkill -9 -u username  # Завершает все сессии пользователя
Ставь 👍 и забирай 📚 Базу знаний

Авторизованные курсы по оборудованию Eltex от дилера №1 Проводим учебные курсы, включающие практические занятия и лабораторны
Авторизованные курсы по оборудованию Eltex от дилера №1 Проводим учебные курсы, включающие практические занятия и лабораторные работы. По итогу успешной сдачи экзаменов обучающемуся выдаётся официальный сертификат от завода Eltex. ⚡Обучение в офисе или онлайн ⚡Опытный преподавательский состав ⚡Лабораторные работы - 50% времени ⚡Обучение юридических и физических лиц Записаться #реклама 16+ eltexcm.ru О рекламодателе

🤔 Какой будет ID в Podman? Podman использует тот же механизм контейнеризации, что и Docker, но без демона. Если запустить контейнер в Podman, он получит свой уникальный контейнерный ID, аналогично Docker. Это будет хеш, состоящий из символов, идентифицирующих контейнер. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Зачем нужен стейт в Terraform? Файл terraform.tfstate хранит текущее состояние инфраструктуры. Он нужен, чтобы Terraform знал, какие ресурсы уже существуют, и мог правильно управлять изменениями. 🟠Отслеживание ресурсов Terraform использует tfstate, чтобы сопоставлять код с реальными ресурсами. В коде создаем виртуальную машину
hcl  
   resource "aws_instance" "example" {  
     ami           = "ami-123456"  
     instance_type = "t2.micro"  
   }  
Запускаем terraform apply, создается сервер в AWS В terraform.tfstate записывается информация об этом ресурсе При следующем terraform apply Terraform сверяет tfstate с реальными ресурсами и вносит только изменения 🟠Управление зависимостями Когда ресурсы связаны (например, сервер и security group), Terraform понимает связи через tfstate и удаляет ресурсы в правильном порядке 🟠Работа в команде (`remote state`) Когда несколько разработчиков работают с Terraform, tfstate должен храниться в общем месте, например - S3 + DynamoDB (AWS) - Terraform Cloud - GCS + Firestore (GCP) - Azure Storage + CosmosDB (Azure)
hcl  
terraform {  
  backend "s3" {  
    bucket         = "my-terraform-state"  
    key            = "prod/terraform.tfstate"  
    region         = "us-east-1"  
    encrypt        = true  
    dynamodb_table = "terraform-lock"  
  }  
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Если удалить terraform.tfstate, а потом сделать terraform init — что будет? - terraform init не восстановит state. - Terraform не будет знать, что уже развернуто, и при следующем apply может создать ресурсы заново. - Лучше использовать terraform state pull/push или хранить state в remote backend (S3, GitLab, etc). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что касается безопасности где хранить переменные секреты? Хранение секретных переменных, таких как пароли, ключи API, токены доступа и прочие конфиденциальные данные, требует особого подхода для обеспечения безопасности. Ниже описаны рекомендуемые методы и инструменты для безопасного хранения секретных переменных в различных средах разработки и производства. 🟠Использование специализированных хранилищ секретов HashiCorp Vault: Это инструмент для управления секретами и защиты данных. Он позволяет централизованно хранить, доступ к которым строго контролируется, и динамически создавать секреты. Преимущества: Поддержка динамических секретов, интеграция с большинством сред и технологий, высокий уровень безопасности. AWS Secrets Manager и Azure Key Vault: Эти облачные сервисы предоставляют управляемые решения для безопасного хранения и управления доступом к секретным данным, включая автоматическое обновление секретов. Преимущества: Интеграция с облачными сервисами, упрощение ротации секретов, мониторинг и логирование доступа. 🟠Инкапсуляция секретов в среде выполнения Docker Secrets и Kubernetes Secrets: Предлагают встроенные механизмы для безопасного хранения секретов, которые используются контейнерами во время выполнения. Преимущества: Локальная интеграция с системами оркестрации контейнеров, базовое шифрование на диске и управление доступом. 🟠Секреты в контролируемом CI/CD Платформы CI/CD, такие как GitLab и GitHub, предоставляют возможности для безопасного хранения переменных среды и секретов, которые могут быть использованы в процессах автоматизации без разглашения. Преимущества: Простота использования, интеграция с процессами разработки, защита от внешнего доступа. 🟠Шифрование секретов Инструменты шифрования: Использование инструментов, таких как GnuPG (GPG), для шифрования секретов перед их сохранением в системах контроля версий или конфигурационных файлах. Преимущества: Высокий уровень безопасности, контроль доступа к секретам на уровне пользователя. Ставь 👍 и забирай 📚 Базу знаний

🤔 Можно ли на лету изменить настройки DNS в контейнере через CLI? Да, можно: docker exec <container> bash -c "echo nameserver 8.8.8.8 > /etc/resolv.conf" Но после рестарта DNS вернётся. Лучше задать при запуске. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

REKONFA: что интересного вас ждёт 15 октября 15 октября встречаемся на REKONFA — большой конференции Яндекс Рекламы. На сцене
REKONFA: что интересного вас ждёт 15 октября 15 октября встречаемся на REKONFA — большой конференции Яндекс Рекламы. На сцене: — Глеб Доброрадных — о рекламном рынке и эффективности в сложных условиях — Алексей Штоколов — о новых продуктах и технологиях — Лиза Смирнова — о 360°-форматах и новых точках контакта — Александр Пушной — о человеке и ИИ — Александр Умаров — о персональном подходе, который помогает влюблять клиентов в бренд — Яна Чурикова — об актуальных задачах предпринимателей — Татьяна Мужицкая — о целях и энергии — Антон Беляев — об индивидуальности и проектах, которые любят зрители Вне сцены — зона продуктов Яндекс Рекламы, три игры, викторина, зоны Яндекс Ярда и eLama и нетворкинг. 15 октября, Москва, ВТБ Арена и онлайн. Участие бесплатное. Зарегистрироваться #реклама 18+ ya.rekonfa.ru О рекламодателе

🤔 Из чего состоит ELK стек? ELK (Elasticsearch, Logstash, Kibana) – это стек для сбора, обработки, хранения и визуализации логов. Он помогает DevOps-инженерам анализировать логи в реальном времени и выявлять проблемы в системе. 🚩Elasticsearch – хранилище и поиск логов - Хранит структурированные и неструктурированные данные (логи, метрики) - Поддерживает быстрый полнотекстовый поиск - Использует кластеризацию для высокой доступности
json  
GET /logs/_search  
{  
  "query": {  
    "match": { "message": "error" }  
  }  
}  
🚩Logstash – обработка и отправка логов - Собирает логи из файлов, TCP, Kafka, Beats - Фильтрует и преобразует данные перед отправкой в Elasticsearch - Поддерживает шифрование и маршрутизацию
yaml  
input {  
  file {  
    path => "/var/log/nginx/access.log"  
    start_position => "beginning"  
  }  
}  
filter {  
  grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }  
}  
output {  
  elasticsearch {  
    hosts => ["http://elasticsearch:9200"]  
  }  
}  
🚩Kibana – визуализация и анализ - Позволяет строить дашборды и графики - Делает поиск по логам и метрикам - Визуализирует реальное время работы системы
  
message: "error" AND @timestamp:[now-24h TO now]  
🚩Как ELK-стек работает вместе? Logstash собирает и обрабатывает логи Отправляет их в Elasticsearch Kibana визуализирует данные
yaml  
version: "3"  
services:  
  elasticsearch:  
    image: docker.elastic.co/elasticsearch/elasticsearch:8.5.0  
    environment:  
      - discovery.type=single-node  
    ports:  
      - "9200:9200"  

  logstash:  
    image: docker.elastic.co/logstash/logstash:8.5.0  
    depends_on:  
      - elasticsearch  
    volumes:  
      - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf  
    ports:  
      - "5044:5044"  

  kibana:  
    image: docker.elastic.co/kibana/kibana:8.5.0  
    depends_on:  
      - elasticsearch  
    ports:  
      - "5601:5601"
Ставь 👍 и забирай 📚 Базу знаний

Как зарабатывать на мобильной игре Как привлекать пользователей, работать с монетизацией и развивать мобильную игру в 2026 го
Как зарабатывать на мобильной игре Как привлекать пользователей, работать с монетизацией и развивать мобильную игру в 2026 году? Обсудим вместе с экспертами игровой индустрии России на RuStore Mobile GameDev Conf. 2 ноября, Москва + онлайн. Участие бесплатное, по регистрации Зарегистрироваться #реклама 16+ rustore.ru О рекламодателе

🤔 На CentOS Linux ceilings — он везде отключён или активен? Скорее всего, имеется в виду cgroup cpu ceiling — ограничение CPU. По умолчанию в CentOS могут быть активны базовые значения cgroup, но ручная настройка нужна для контроля ресурсов, особенно в контейнеризированных окружениях. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

2 курса в подарок при обучении команды — Я.Практикум Расширьте навыки команды без доплат. Получите 3 курса Яндекс Практикума
2 курса в подарок при обучении команды — Я.Практикум Расширьте навыки команды без доплат. Получите 3 курса Яндекс Практикума по цене 1 Развивайте команду по трём направлениям — платите за одно. Так тоже можно. Оформите обучение в Практикуме для себя или сотрудников до 31 октября и получите бесплатно 2 курса: ✅ «Базовые навыки работы с ИИ» — о том, как применять ИИ в ежедневных рабочих задачах. ✅ «Экономика и бизнес-модель продукта» — о юнит-экономике и способах монетизации продуктов. Подберите обучение под любой запрос: в каталоге Практикума 180+ актуальных программ по ИИ, разработке, менеджменту, аналитике и другим направлениям. С нами уже сотрудничают 6000+ компаний. Начните и вы развивать команду с фокусом на бизнес-результат. Оставить заявку и получить бонусы Узнать больше #реклама 16+ practicum.yandex.ru О рекламодателе

🤔 Почему плохо запускать контейнер от рута? Запуск контейнеров от имени пользователя root (рута) в Docker является обычной практикой, но это может привести к серьезным проблемам безопасности. Вот основные причины, почему это считается плохой практикой: 🟠Повышение рисков безопасности: Эксплуатация уязвимостей: Если злоумышленник получает доступ к контейнеру, запущенному от имени root, он может легко использовать уязвимости контейнера для атаки на хост-систему. Злоумышленники: Контейнеры могут содержать уязвимые или злонамеренные коды, которые при запуске с привилегиями root могут получить доступ к чувствительной информации или вызвать сбои. 🟠Отсутствие изоляции: Гостевая изоляция: Контейнеры должны быть изолированы от хост-системы. Запуск контейнера от имени root нарушает эту изоляцию, так как root внутри контейнера — это также root на хосте. Повышенные привилегии: Контейнеры, запущенные от имени root, могут иметь доступ к системным ресурсам, что увеличивает риск нарушения безопасности. 🟠Нарушение принципа наименьших привилегий: Принцип наименьших привилегий: Этот принцип гласит, что процесс должен иметь только те привилегии, которые необходимы для выполнения его задач. Запуск контейнера от имени root нарушает этот принцип, предоставляя ему избыточные права. 🚩Примеры проблем 🟠Повышение привилегий: Если в контейнере, запущенном от имени root, найдена уязвимость, злоумышленник может использовать ее для выполнения команд с привилегиями root на хосте, что может привести к серьезным нарушениям безопасности. 🟠Доступ к файловой системе хоста: Контейнер, запущенный от имени root, может получить доступ к критически важным файлам хостовой системы, изменять их или удалять, что может привести к нарушению работы всей системы. 🚩Как избежать запуска контейнеров от рута Использование непривилегированных пользователей: В Dockerfile можно создать пользователя с ограниченными привилегиями и переключиться на него.
FROM ubuntu:20.04
RUN useradd -m myuser
USER myuser
CMD ["myapp"]     
Использование флага --user: При запуске контейнера можно использовать флаг --user, чтобы указать непривилегированного пользователя.
docker run --user 1000:1000 myapp
Использование механизмов безопасности Docker: Использование профилей seccomp для ограничения системных вызовов. Использование AppArmor или SELinux для ограничения доступа контейнеров к системным ресурсам. Ставь 👍 и забирай 📚 Базу знаний

🤔 Динамическая маршрутизация и разные протоколы динамической маршрутизации, eBGP, iBGP, константы BGP. На чём сейчас принято строить BGP-пиринги? Это основной протокол для маршрутизации в интернете. - eBGP (external BGP) – используется для связи между автономными системами (AS). - iBGP (internal BGP) – применяется внутри одной автономной системы. Константы BGP: - AS_PATH – список пройденных автономных систем. - MED (Multi-Exit Discriminator) – предпочтение пути. - LOCAL_PREF – приоритет маршрута внутри AS. Сейчас BGP-пиринги строятся на базе FRRouting (FRR), Bird, ExaBGP, Cisco IOS, Juniper JunOS. Для балансировки используются Route Reflectors и ECMP (Equal-Cost Multi-Path Routing). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как заставить процесс отпустить файловые дескрипторы? Если процесс удерживает файловые дескрипторы и вам нужно их освободить, то есть несколько способов это сделать. 🟠Завершение процесса Самый простой способ — завершить процесс, который удерживает файловые дескрипторы.
kill <PID>
или принудительно
kill -9 <PID>
Чтобы найти процессы, удерживающие файлы
lsof | grep <filename>
или
fuser <filename>
🟠Закрытие дескриптора вручную Если вы хотите закрыть файловый дескриптор, не завершая процесс, можно использовать lsof и /proc 1⃣Найдите открытые дескрипторы процесса:
ls -l /proc/<PID>/fd/
2⃣Закройте конкретный дескриптор:
exec 3>&-
🟠Использование `gdb` для вмешательства в процесс Если процесс нельзя перезапустить, но вы имеете к нему доступ, можно закрыть дескриптор через gdb:
gdb -p <PID>
(gdb) call close(<FD>)
(gdb) detach
(gdb) quit
🟠Перемонтирование файловой системы Если файл удален, но все еще удерживается процессом, можно принудительно перемонтировать файловую систему:
mount -o remount /
Или использовать lsof для очистки удаленных файлов
lsof | grep deleted
🟠Использование `systemctl restart` для сервисов Если файлы удерживаются службой (например, Nginx, Apache, MySQL), можно перезапустить службу
systemctl restart <service>
или
service <service> restart
Ставь 👍 и забирай 📚 Базу знаний

🔥 Скрытые вакансии с удаленной работой для DevOps, которые нигде больше не публикуются. Напрямую от компаний, с контактами р
🔥 Скрытые вакансии с удаленной работой для DevOps, которые нигде больше не публикуются. Напрямую от компаний, с контактами рекрутеров. 🔹 DevOps Jobs | Вакансии 🔸 Все каналы с вакансиями

Срочно требуются дизайнеры в FIGMA. Обучим с нуля. Онлайн-программа с наставником и чатом. Внимание! 80% практики. ✅По результату обучения у вас будет портфолио из нескольких работ. ✅Сертификат о прохождении курса. ✅Возможность пройти полное обучение и получить карьерное сопровождение! Учитесь дизайну у профессионалов в Yudaev Shool. Переходи по кнопки: "Подробнее" и начинай свое обучение. Доступ 0 руб. Узнать больше #реклама 16+ yudaevschool24.online О рекламодателе