🥷 Как траблшутить и отслеживать приложения с помощью OpenTelemetry
OpenTelemetry — это бесплатный опенсорсный Observability Protocol, который находится на прикладном уровне и экспортирует трассировки, метрики и журналы в серверную часть для наблюдения. Он полезен для разработчиков с точки зрения time-to-detection и time-to-resolution ошибок и неполадок, возникающих на прикладном уровне. Процесс варьируется от обнаружения и оповещения о возникших ошибках (таких как TypeError) до обнаружения того, что конкретный микросервис работал в два раза дольше обычного, вплоть до просмотра выходных данных сервиса и сравнения их с ожидаемыми выходными данными, чтобы найти ошибку в логике работы.
Руководство предназначено для начинающих специалистов и требует минимальный опыт работы с Requests и Flask. Опыта работы с OpenTelemetry не требуется. Важно только иметь четкое представление о трассировках, метриках и журналах.
Смотреть
#видео
OpenTelemetry — это бесплатный опенсорсный Observability Protocol, который находится на прикладном уровне и экспортирует трассировки, метрики и журналы в серверную часть для наблюдения. Он полезен для разработчиков с точки зрения time-to-detection и time-to-resolution ошибок и неполадок, возникающих на прикладном уровне. Процесс варьируется от обнаружения и оповещения о возникших ошибках (таких как TypeError) до обнаружения того, что конкретный микросервис работал в два раза дольше обычного, вплоть до просмотра выходных данных сервиса и сравнения их с ожидаемыми выходными данными, чтобы найти ошибку в логике работы.
Руководство предназначено для начинающих специалистов и требует минимальный опыт работы с Requests и Flask. Опыта работы с OpenTelemetry не требуется. Важно только иметь четкое представление о трассировках, метриках и журналах.
Смотреть
#видео
🔥5❤4👍4
Рассмотрим ситуацию, когда случайно/специально 😱 удалился исполняющийся bash скрипт.
Чтобы не попадать в такие ситуации, всегда храните исходники в git — это избыточно, но бекапы никто не отменял.
Скрипт удалён с диска, но продолжает работать в фоне, значит его можно как-нибудь восстановить.
Создадим подопытный скрипт: touch /tmp/script.sh:
#!/bin/bash
sleep 1000
exit
Делаем исполняемым chmod +x /tmp/script.sh и запускаем в фоне /tmp/script.sh &
Символ & может служить разделителем между командами command & command, две команды выполнятся параллельно.
Скрипт запустили, он крутится в фоне. Удалим сам файл:
rm -f /tmp/script.sh ключ -f удалит без лишних вопросов.
Восстанавливаем:
lsof -c 'script.sh'
На экран выведется простыня, нам нужна строка где в конце указан путь до скрипта, который был удален:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
script.sh 261899 root 255r REG 8,1 51 130773 /tmp/script.sh
Берем PID = 261899, берем FD = 255 и делаем так:
cat /proc/261899/fd/255
А вот и исходник скрипта:
File: /proc/261899/fd/255
#!/bin/bash
sleep 1000
exit
Вот полезная инфа, которая была использована в гайде:
man 5 proc # /proc/[pid]/fd/
man lsof
#гайд
Чтобы не попадать в такие ситуации, всегда храните исходники в git — это избыточно, но бекапы никто не отменял.
Скрипт удалён с диска, но продолжает работать в фоне, значит его можно как-нибудь восстановить.
Создадим подопытный скрипт: touch /tmp/script.sh:
#!/bin/bash
sleep 1000
exit
Делаем исполняемым chmod +x /tmp/script.sh и запускаем в фоне /tmp/script.sh &
Символ & может служить разделителем между командами command & command, две команды выполнятся параллельно.
Скрипт запустили, он крутится в фоне. Удалим сам файл:
rm -f /tmp/script.sh ключ -f удалит без лишних вопросов.
Восстанавливаем:
lsof -c 'script.sh'
На экран выведется простыня, нам нужна строка где в конце указан путь до скрипта, который был удален:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
script.sh 261899 root 255r REG 8,1 51 130773 /tmp/script.sh
Берем PID = 261899, берем FD = 255 и делаем так:
cat /proc/261899/fd/255
А вот и исходник скрипта:
File: /proc/261899/fd/255
#!/bin/bash
sleep 1000
exit
Вот полезная инфа, которая была использована в гайде:
man 5 proc # /proc/[pid]/fd/
man lsof
#гайд
👍32❤6👏4😁3🎉3
This media is not supported in your browser
VIEW IN TELEGRAM
Разработчик сообщает своему пиэму, что задача еще не готова. Пиэм 😳😯, мягко говоря, от такой новости немного удивлён и озадачен 😂😂😂😂
#memes
#memes
😁18❤2🔥2
👣 SRE Roadmap
Даже если не собираетесь переходить полностью в SRE, хорошо бы развиваться постоянно т.к. серое вещество с возрастом теряет свойство работать нормально 😂, да и новые штуки узнавать полезно.
Встретилась нам роудмапа по SRE. Там столько всякого, что не встречается в обычной DevOps-жизни... 😱
#туториал
Даже если не собираетесь переходить полностью в SRE, хорошо бы развиваться постоянно т.к. серое вещество с возрастом теряет свойство работать нормально 😂, да и новые штуки узнавать полезно.
Встретилась нам роудмапа по SRE. Там столько всякого, что не встречается в обычной DevOps-жизни... 😱
#туториал
❤10👍3
⚔️🛡️ О безопасности Open Source кода
В этом ролике Алексей Смирнов, основатель системы композиционного анализа программного обеспечения «CodeScoring», и Любовь Семенович, менеджер по продвижению центра информационной безопасности, расскажут главное о безопасности Open Source.
Зачем смотреть?
🔹 Понять, какие основные аспекты безопасности выделяются при анализе Open Source
🔹 Разобраться, как обеспечить равномерный и непрерывный процесс риск-проверки
🔹 Узнать, что такое автоматизация SCA-процессов и какие решения для этого есть на рынке
#видео
В этом ролике Алексей Смирнов, основатель системы композиционного анализа программного обеспечения «CodeScoring», и Любовь Семенович, менеджер по продвижению центра информационной безопасности, расскажут главное о безопасности Open Source.
Зачем смотреть?
🔹 Понять, какие основные аспекты безопасности выделяются при анализе Open Source
🔹 Разобраться, как обеспечить равномерный и непрерывный процесс риск-проверки
🔹 Узнать, что такое автоматизация SCA-процессов и какие решения для этого есть на рынке
#видео
❤6🥱1
🤔 Очередной #дайджест по DevOps
❇️ Dev, Ops и безопасность — видос о современных практиках безопасной разработки и управления инфраструктурой, о собственном успешном опыте отражения множественных мощных DDoS-атак
❇️ JupyterLab и Docker — обзор архитектуры JupyterLab и как начать использовать JupyterLab в качестве расширения Docker
❇️ Как я использовал тематическое разделение доступа для создания веб-приложения — использование тематического разделения доступа (ТРД) для создания веб-приложения, которое позволяет пользователям обмениваться сообщениями по разным темам
❇️ Видео лекции по тестированию и анализу от РАН и ФСТЭК
❇️ Структура поставщиков цепочки поставок программного обеспечения — анализ текущих подходов для обеспечения безопасности различных аспектов цепочки поставок программного обеспечения
❇️ Dev, Ops и безопасность — видос о современных практиках безопасной разработки и управления инфраструктурой, о собственном успешном опыте отражения множественных мощных DDoS-атак
❇️ JupyterLab и Docker — обзор архитектуры JupyterLab и как начать использовать JupyterLab в качестве расширения Docker
❇️ Как я использовал тематическое разделение доступа для создания веб-приложения — использование тематического разделения доступа (ТРД) для создания веб-приложения, которое позволяет пользователям обмениваться сообщениями по разным темам
❇️ Видео лекции по тестированию и анализу от РАН и ФСТЭК
❇️ Структура поставщиков цепочки поставок программного обеспечения — анализ текущих подходов для обеспечения безопасности различных аспектов цепочки поставок программного обеспечения
❤7👍2
👍24🤔7😁2
🧪🧪GitLab 16.4
🎉🎉🎉 Вышел релиз с настраиваемыми ролями и списком зависимостей для групп.
Владельцы групп и администраторы теперь могут создавать и удалять кастомные роли через пользовательский интерфейс GitLab в меню Роли и разрешения (Roles and Permissions). Чтобы создать новую роль, вы добавляете разрешения поверх существующей базовой роли.
Раньше в GitLab было невозможно создать рабочее пространство для приватного проекта. А при клонировании приватного проекта, вы могли пройти аутентификацию только после создания рабочего пространства.
В GitLab 16.4 вы сможете создать рабочее пространство для любого публичного или приватного проекта. При создании рабочего пространства вы получаете личный токен доступа, с помощью которого вы сможете клонировать приватные проекты и выполнять операции Git без дополнительной настройки или аутентификации.
Подробнее
#новости
🎉🎉🎉 Вышел релиз с настраиваемыми ролями и списком зависимостей для групп.
Владельцы групп и администраторы теперь могут создавать и удалять кастомные роли через пользовательский интерфейс GitLab в меню Роли и разрешения (Roles and Permissions). Чтобы создать новую роль, вы добавляете разрешения поверх существующей базовой роли.
Раньше в GitLab было невозможно создать рабочее пространство для приватного проекта. А при клонировании приватного проекта, вы могли пройти аутентификацию только после создания рабочего пространства.
В GitLab 16.4 вы сможете создать рабочее пространство для любого публичного или приватного проекта. При создании рабочего пространства вы получаете личный токен доступа, с помощью которого вы сможете клонировать приватные проекты и выполнять операции Git без дополнительной настройки или аутентификации.
Подробнее
#новости
❤5👍3
webhook — это легковесный настраиваемый инструмент, написанный на Go, который позволяет вам легко создавать HTTP endpoints (хуки) на вашем сервере, которые можно использовать для выполнения команд. Также можно передавать данные из HTTP-запроса (такие как заголовки, полезная нагрузка или query variables) своим командам. webhook позволяет указать правила, которые должны быть выполнены для срабатывания перехватчика.
Например, если вы используете Github или Bitbucket, вы можете использовать webhook для настройки хука, который запускает сценарий редеплоя всякий раз, когда вносятся изменения в главную ветку проекта.
Установка
Сборка из исходников:
Сначала убедитесь, что у вас Go 1.14 или новее, а затем запустите:
$ go build github.com/adnanh/webhook
Ubuntu и Debian
sudo apt-get install webhook установит версию, упакованную сообществом.
Изучить подробнее
#гайд
Например, если вы используете Github или Bitbucket, вы можете использовать webhook для настройки хука, который запускает сценарий редеплоя всякий раз, когда вносятся изменения в главную ветку проекта.
Установка
Сборка из исходников:
Сначала убедитесь, что у вас Go 1.14 или новее, а затем запустите:
$ go build github.com/adnanh/webhook
Ubuntu и Debian
sudo apt-get install webhook установит версию, упакованную сообществом.
Изучить подробнее
#гайд
❤6👍3
🎉🎉 DevOps meetup
Событие состоится 25 октября в 19:00 в формате онлайн.
Программа
Переходим с Ingress на Gateway API
Доклад представляет собой обзор и анализ различных преимуществ и возможностей, которые предоставляет Gateway API. На этом митапе будут рассмотрены основные причины, по которым стоит рассмотреть переход с Ingress на Gateway API, а также конкретные примеры и сценарии, в которых Gateway API может быть особенно полезным и эффективным, а в каких случаях стоит остаться на старом и стабильном Ingress.
"Serverless" как инструмент для разработчиков без опыта в DevOps
Опытный разработчик поделится своим опытом работы на старте и внедрения DevOps. Его доклад призван помочь разработчикам без опыта в DevOps разобраться в технологиях, выборе путей разворачивания в облаке и поддержке без опыта. Получите ценные советы и инсайты о различиях между Azure и Google.
Переезд в облако из корпоративной инфраструктуры
Спикер поделится опытом переезда в облако, раскроет основные вызовы, с которыми сталкивается команда при таком переходе и расскажет о различиях между корпоративной инфраструктурой и облачными решениями. Узнайте, как изменится жизнь вашей команды и компании после переезда.
#мероприятие
Событие состоится 25 октября в 19:00 в формате онлайн.
Программа
Переходим с Ingress на Gateway API
Доклад представляет собой обзор и анализ различных преимуществ и возможностей, которые предоставляет Gateway API. На этом митапе будут рассмотрены основные причины, по которым стоит рассмотреть переход с Ingress на Gateway API, а также конкретные примеры и сценарии, в которых Gateway API может быть особенно полезным и эффективным, а в каких случаях стоит остаться на старом и стабильном Ingress.
"Serverless" как инструмент для разработчиков без опыта в DevOps
Опытный разработчик поделится своим опытом работы на старте и внедрения DevOps. Его доклад призван помочь разработчикам без опыта в DevOps разобраться в технологиях, выборе путей разворачивания в облаке и поддержке без опыта. Получите ценные советы и инсайты о различиях между Azure и Google.
Переезд в облако из корпоративной инфраструктуры
Спикер поделится опытом переезда в облако, раскроет основные вызовы, с которыми сталкивается команда при таком переходе и расскажет о различиях между корпоративной инфраструктурой и облачными решениями. Узнайте, как изменится жизнь вашей команды и компании после переезда.
#мероприятие
👍5❤2
#вопросы_с_собеседований
Как работает OOM Killer и для чего нужен?
Когда в Linux-е заканчивается память, ядро вызывает OOM для ее освобождения. Это часто встречается на серверах, на которых запущен ряд процессов с интенсивным использованием памяти.
ООМ освобождает память для спасения системы, но чтобы процессы освобождаемые были наименее важны для системы.
У нас не только физическая и виртуальная память может закончиться. А если процесс потребляет страницу определенного размера, то могут быть не очень хорошие вещи.
Ядро Linux дает оценку каждому запущенному процессу, называемому oom_score, которая показывает, насколько вероятно, что он будет остановлен в случае нехватки доступной памяти.
Оценка пропорциональна количеству памяти, используемой процессом. Оценка - 10% процентов памяти, используемой процессом. Таким образом, максимальная оценка составляет 100% x 10 = 1000.
Подробнее об убийце здесь
Как работает OOM Killer и для чего нужен?
👍20🔥12❤4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🛡️ 8 способов защиты от манипуляций на работе
Столкнулись с эмоциональным давлением на работе? Рассказываем, как действуют манипуляторы, и как обезопасить себя.
🔗 Читать статью
🔗 Зеркало
Столкнулись с эмоциональным давлением на работе? Рассказываем, как действуют манипуляторы, и как обезопасить себя.
🔗 Читать статью
🔗 Зеркало
❤7
🤔 Подготовили #дайджест бесплатных курсов по основам разных технологий
⭕ Основы Linux. Курс основан на книге "Фундаментальные основы Linux". Оригинал: Linux Fundamentals.
⭕ GIT Training. Изучите основы GIT: системе контроля версий, настройка GIT, создание веток и репозиториев, отслеживание файлов, GitHub и многое другое.
⭕ Базовый DevOps. Первый шаг к серьезному обучению и сможете чётко определиться с направлением ваших интересов.
⭕ Основы Docker. Научитесь использовать контейнеры, создадите свой первый контейнер Docker. Узнаете, как запускать контейнеры в рабочей среде и решать проблемы оркестрации, такие как high availability, service discovery и reconciliation.
⭕ Введение в Kubernetes. Разберетесь в управлении жизненным циклом приложений, установке, конфигурации и валидации, сетевом взаимодействии, планировании, безопасности, создании и обслуживании кластеров.
⭕ Основы Linux. Курс основан на книге "Фундаментальные основы Linux". Оригинал: Linux Fundamentals.
⭕ GIT Training. Изучите основы GIT: системе контроля версий, настройка GIT, создание веток и репозиториев, отслеживание файлов, GitHub и многое другое.
⭕ Базовый DevOps. Первый шаг к серьезному обучению и сможете чётко определиться с направлением ваших интересов.
⭕ Основы Docker. Научитесь использовать контейнеры, создадите свой первый контейнер Docker. Узнаете, как запускать контейнеры в рабочей среде и решать проблемы оркестрации, такие как high availability, service discovery и reconciliation.
⭕ Введение в Kubernetes. Разберетесь в управлении жизненным циклом приложений, установке, конфигурации и валидации, сетевом взаимодействии, планировании, безопасности, создании и обслуживании кластеров.
👍9👏6❤4🤩4🔥2
💪🔥 Экспорт GCP ресурсов в формат Terraform
У инструмента gcloud есть фича, которая может экспортировать все, что есть в GCP прямо в HCL. К тому же, генерирует terraform import команды, что тоже очень удобно:
gcloud beta resource-config bulk-export --project=PROJECT_ID --resource-format=terraform
Эта штука в beta, не поддерживает 100% ресурсов, например, не может пока экспортировать Cloud Functions, но полностью может потягаться с terraformer.
Читать
#туториал
У инструмента gcloud есть фича, которая может экспортировать все, что есть в GCP прямо в HCL. К тому же, генерирует terraform import команды, что тоже очень удобно:
gcloud beta resource-config bulk-export --project=PROJECT_ID --resource-format=terraform
Эта штука в beta, не поддерживает 100% ресурсов, например, не может пока экспортировать Cloud Functions, но полностью может потягаться с terraformer.
Читать
#туториал
👍7❤4
🔪🔪 sos report — швейцарский нож для диагностических инструментов
Команда sosreport написана на Python и предназначена для сбора всесторонних диагностических данных из системы Linux.
Установка
OL6 и OL7
sudo yum install sos
OL8 и OL9
sudo dnf install sos
Выполнение
Ниже приведены команды, которые гарантируют, что мы получим все файлы журнала из /var/log, а также все данные sar. Несмотря на то, что команды различаются в некоторых версиях OL, собранные данные одинаковы.
OL6 и OL7
sudo sosreport --batch --all-logs -k sar.all_sar=on
OL8
sudo sos report --batch --all-logs -k sar.all_sar=on
Параметр --batch позволяет запускать sosreport без дополнительного ввода с клавиатуры.
--all-logs гарантирует, что мы получим все файлы из /var/log.
-ksar.all_sat=on указывает sosreport собирать все файлы sar в /var/log/sa, а не только за последние 14 дней.
OL9
sudo sos report --batch --all-logs -e sar -k sar.all_sar=on
Опция -e sar снова включает плагин sar. По умолчанию в OL9 он отключен.
Подробнее
#гайд
Команда sosreport написана на Python и предназначена для сбора всесторонних диагностических данных из системы Linux.
Установка
OL6 и OL7
sudo yum install sos
OL8 и OL9
sudo dnf install sos
Выполнение
Ниже приведены команды, которые гарантируют, что мы получим все файлы журнала из /var/log, а также все данные sar. Несмотря на то, что команды различаются в некоторых версиях OL, собранные данные одинаковы.
OL6 и OL7
sudo sosreport --batch --all-logs -k sar.all_sar=on
OL8
sudo sos report --batch --all-logs -k sar.all_sar=on
Параметр --batch позволяет запускать sosreport без дополнительного ввода с клавиатуры.
--all-logs гарантирует, что мы получим все файлы из /var/log.
-ksar.all_sat=on указывает sosreport собирать все файлы sar в /var/log/sa, а не только за последние 14 дней.
OL9
sudo sos report --batch --all-logs -e sar -k sar.all_sar=on
Опция -e sar снова включает плагин sar. По умолчанию в OL9 он отключен.
Подробнее
#гайд
❤5🔥1
🐧🐧 Создание micro-дистрибутива Linux
В статье пойдет разговор о создании крошечного дистрибутива Linux с нуля.
Вы самостоятельно соберете ядро и напишите ПО для упаковки дистрибутива.
Все будет происходить на архитектуре RISC-V, в частности на виртуальной машине QEMU riscv64. В этой статье мало того, что относится конкретно к этой архитектуре, так что вы можете выполнить почти идентичное упражнение для других архитектур, таких как x86.
Полезный опыт для понимания, как работает Linux, его архитектура и все «подкапотное пространство».
Читать статью
#туториал
В статье пойдет разговор о создании крошечного дистрибутива Linux с нуля.
Вы самостоятельно соберете ядро и напишите ПО для упаковки дистрибутива.
Все будет происходить на архитектуре RISC-V, в частности на виртуальной машине QEMU riscv64. В этой статье мало того, что относится конкретно к этой архитектуре, так что вы можете выполнить почти идентичное упражнение для других архитектур, таких как x86.
Полезный опыт для понимания, как работает Linux, его архитектура и все «подкапотное пространство».
Читать статью
#туториал
👍11❤2
😱😱 Более 10 тыс. сетевых устройств Cisco взломаны из-за уязвимости нулевого дня
Более десятка тысяч сетевых устройств Cisco оказались взломанными из-за ошибки нулевого дня в операционной системе Cisco IOS XE. Хакеры подселили в эти устройства различных вредоносов.
В число пострадавших устройств вошли корпоративные и промышленные роутеры, точки доступа, беспроводные контроллеры и многое другое.
Злоумышленники воспользовались критической уязвимостью (CVE-2023-20198), которая затрагивает все устройства под управлением Cisco IOS XE при условии, что включён Web UI и режим HTTP/HTTPS-сервера.
Уязвимость позволяет удаленному злоумышленнику, не прошедшему авторизацию, создать учетную запись в уязвимой системе с уровнем привилегий 15. Затем злоумышленник может использовать эту учетную запись для получения контроля над уязвимой системой. Иными словами, любой желающий может воспользоваться этой уязвимостью для получения административных привилегий в системе.
В Cisco рекомендуют администраторам временно - до выпуска патча - деактивировать функцию HTTP/HTTPS-сервера и внимательно отслеживать любые подозрительные события и свежесозданные аккаунты. Они вполне могут быть признаками текущей атаки.
#новость
Более десятка тысяч сетевых устройств Cisco оказались взломанными из-за ошибки нулевого дня в операционной системе Cisco IOS XE. Хакеры подселили в эти устройства различных вредоносов.
В число пострадавших устройств вошли корпоративные и промышленные роутеры, точки доступа, беспроводные контроллеры и многое другое.
Злоумышленники воспользовались критической уязвимостью (CVE-2023-20198), которая затрагивает все устройства под управлением Cisco IOS XE при условии, что включён Web UI и режим HTTP/HTTPS-сервера.
Уязвимость позволяет удаленному злоумышленнику, не прошедшему авторизацию, создать учетную запись в уязвимой системе с уровнем привилегий 15. Затем злоумышленник может использовать эту учетную запись для получения контроля над уязвимой системой. Иными словами, любой желающий может воспользоваться этой уязвимостью для получения административных привилегий в системе.
В Cisco рекомендуют администраторам временно - до выпуска патча - деактивировать функцию HTTP/HTTPS-сервера и внимательно отслеживать любые подозрительные события и свежесозданные аккаунты. Они вполне могут быть признаками текущей атаки.
#новость
❤7💯2👍1👾1