ServerAdmin.ru
11.6K subscribers
90 photos
8 videos
4 files
961 links
Авторская информация о системном администрировании.

Реклама - @srv_admin_reklama_bot
Связь с автором - @zeroxzed

Второй канал - @srv_admin_live
Сайт: serveradmin.ru
ВКонтакте: vk.com/serv_adm
Чат: @srv_admins
Download Telegram
to view and join the conversation
21 октября в 11:00, Чт
Selectel Networking Academy

Присоединяйтесь к ежегодной мультибрендовой конференции по сетевым технологиям от @Selectel, где наши спикеры расскажут про архитектуру компьютерной сети и поделятся своим опытом.

Еще на мероприятии обсудят:

Холодное и горячее резервирование элементов сети.
Коммутаторы, маршрутизаторы, линки и протоколы резервирования.
LACP, STP, vPC / ESI / MLAG / DRNI.

Среди спикеров — специалисты из Cisco, Juniper, Arista, H3C и Selectel.

Регистрируйтесь на офлайн-встречу в Санкт-Петербурге: https://slc.tl/tUG73

Регистрируйтесь на онлайн-трансляцию: https://slc.tl/Zsa9G

#реклама #бесплатно
​​На неделе прослушал интересный доклад с HighLoad ++ 2021 - MySQL orchestrator, ProxySQL от Ситимобил. Тема актуальна только для очень нагруженных сервисов, где много MySQL серверов в кластере, но тем не менее мне понравилось, хоть и вряд ли когда-то пригодится. Качественный рассказ и построение повествования.

Авторы рассказали всю историю поддержки MySQL сервера с одиночного инстанса на старте проекта до довольно сложной структуры. Особенность их схемы в том, что они очень хотели оставить только один Master сервер, не выстраивая Master-Master репликацию. В итоге у них всё получилось. Есть один Master сервер, очень много Slave серверов. А у различных веб приложений свои персональные ProxySQL, которые сглаживают пики запросов, кэшируют и всячески оберегают Master от большой нагрузки.

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

Видео - https://www.youtube.com/watch?v=YvbELUvqLm8
Презентация - https://drive.google.com/file/d/1zyC9JLiiRGHuKHmMzPAQu52B0XwIw4o7/view

#видео #mysql
​​Год назад я написал подробную статью на тему Построения ИТ инфраструктуры небольшого офиса. С тех пор аудитория канала выросла почти в полтора раза, так что многие ее не видели. Плюс, накопилось достаточно много подробных и содержательных комментариев, которые тоже могут быть полезны. Постарался на все вопросы дать подробные ответы.

В статье я рассматриваю выбор следующих продуктов:
Шлюз: стандартная ОС Linux, сборка на базе какой-то ОС, железное решение.
Железо для сервера: бренд, самосбор.
Гипервизор: VMWare, Hyper-V, KVM, XenServer.
Почтовый сервер: свой сервер, готовая сборка, публичный сервис.
Сервер телефонии: Asterisk, Freepbx, готовое софтовое решение, аппаратное решение, публичный сервис.
Self-hosted чат: Zulip, Mattermost, Matrix Synapse, MyChat.
Cистема мониторинга.
Сбор и хранение логов.

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

https://serveradmin.ru/postroenie-it-infrastruktury-nebolshogo-ofisa/
⌛️21 октября в 20:00 (мск) пройдет вебинар на тему: «OpenVPN и WireGuard». Занятие проведет Денис Федоров — системный администратор в Mail.Ru Group. Он проведет сравнительный анализ этих двух протоколов, расскажет о возможностях и сферах применения каждого из них. 

Бесплатный урок является частью онлайн-курса «Администратор Linux. Professional» от OTUS. 💡Для участия нужно пройти тест: https://otus.pw/dJe9/

#реклама #бесплатно
▶️ Делюсь с вами наглядным видео по настройке общего хранилища iso образов для кластера proxmox. Технически ничего сложного в этом нет и в видео это хорошо видно. Мне понравилось другое. Автор последовательно, на практике, показал и объяснил, зачем нужно общее хранилище не только для образов, но и для виртуальных машин. Как работает репликация и как локальные хранилища не дают ей состояться. Плюс, все это делается на работающих хостах. То есть идёт не просто рассказ, а наглядная демонстрация с рабочей машины автора и на его серверах.

https://www.youtube.com/watch?v=f1g_Vll8GAk

#proxmox #видео
Проверил и актуализировал свою статью про настройку ELK Stack. Добавил информацию про автоматическую очистку индексов встроенными средствами стэка. А также про авторизацию с помощью паролей средствами  X-Pack Security.

Статья получилась полным и законченным руководством по внедрению системы сбора логов на базе ELK Stack для одиночного инстанса. Без встроенной авторизации она была незавершённой. Исправил это.

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

https://serveradmin.ru/ustanovka-i-nastroyka-elasticsearch-logstash-kibana-elk-stack/

#elk #статья
​​Корпоративные телеграм-каналы - это не всегда унылая новостная лента. Пример тому - канал из мира IT «Салатовая телега». Ведёт его российский облачный провайдер DataLine.

Авторы на своем опыте рассказывают о работе с инфраструктурой VMware, миграции ИТ-систем и даже о том, как самим собрать и запустить радио.
А еще постят вакансии, проводят бесплатные вебинары (следующий по DBaaS) и квизы с призами - можно отхватить себе классный салатовый мерч.

Присоединяйтесь и будьте в курсе всего самого актуального из мира облаков и дата-центров!
👉🏼 https://t.me/unidataline

#реклама
​​Простая и современная утилита для шифрования данных - age. Написана в духе Unix-style. Никаких конфигов. Всё управление ключами. Для шифрования используется связка приватного и публичного ключа.

Отлично подходит для автоматизации, юниксовых пайпов и скриптов. В стандартных репах ubuntu / centos я ее не нашел, так что ставить придётся с гитхаба. Утилита представляет из себя два бинарника - непосредственно шифровальщик и keygen для паролей.

Установка:
# wget https://github.com/FiloSottile/age/releases/download/v1.0.0/age-v1.0.0-linux-amd64.tar.gz
# tar xzvf age-v1.0.0-linux-amd64.tar.gz
# mv age/* /usr/local/bin

Использование. Сформируем ключи:
# age-keygen -o key.txt
Шифруем обычный файл с использованием публичного ключа:
# echo "Actually Good Encryption" > file.txt
# age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p file.txt > file.txt.age

Убеждаемся, что файл зашифрован и затем расшифровываем его закрытым ключом:
# cat file.txt.age
# age -d -i key.txt file.txt.age > file_decrypted.txt
# cat file_decrypted.txt

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

github - https://github.com/FiloSottile/age

#terminal #утилита
​​Пока у меня остался свежий стенд с ELK Stack, решил попробовать софт для разбора NetFlow потоков в Elasticsearch - Elastiflow. Идея там такая. Ставите куда угодно коллектор, который собирает NetFlow и принимаете трафик. А этот коллектор передаёт всю информацию в Elasticsearch. В комплекте с Elastiflow идёт все необходимое для визуализации данных - шаблоны, дашборды для Kibana.

Последовательность действий для настройки такая:

1️⃣ Устанавливаем Elastiflow, можно в докере. Я так и сделал. Главное не забыть все нужные переменные указать. Основное - разрешить передачу данных в elasticsearch и активировать сбор NetFlow. По дефолту и то, и другое выключено в конфиге, что идёт как пример. Запустить лучше сначала не в режиме демона, чтобы логи смотреть сразу в консоли.

2️⃣ Импортируем объекты Kibana. Шаблоны берём отсюда. Я сначала ошибся и взял шаблоны с репы в github. А там оказывается старая версия, которая больше не развивается. В итоге одни ошибки в веб интерфейсе были.

3️⃣ Направляем NetFlow поток на Elastiflow. Я со своего Mikrotik направил. Подождал пару минут, потом пошел в Kibana и убедился, что полились данные в индекс elastiflow-*

4️⃣ Теперь идём в Dashboard и открываем ElastiFlow: Overview. Это базовый дашборд, где собрана основная информация.

Вот такой простой, бесплатный и функциональный способ сбора и парсинга NetFlow. Я разобрался и все запустил примерно за час. Больше всего времени потратил из-за того, что не те объекты для Kibana взял.

Из минусов - немного сложно разобраться и все запустить тому, кто ELK Stack не знает. Ну и плюс по ресурсам будут высокие требования. Всё это на Java работает, так что железо нужно помощнее.

Недавно был обзор платного Noction Flow Analyzer. Многие спрашивали, как получить то же самое, но бесплатно. Вот бесплатный вариант, но, что ожидаемо, функционал не такой. NFA все же готовый, законченный продукт, а тут только визуализация на базе стороннего решения по хранению и обработке.

Сайт - https://elastiflow.com
Документация - https://docs.elastiflow.com/docs
Kibana Objects - https://docs.elastiflow.com/docs/kibana

#elk #gateway
🎯Освойте удобный инструмент для визуализации метрик мониторинга!

🔥Ждем вас на demo-занятии «Grafana: формирование дашбордов» в понедельник, 25 октября. Бесплатный урок проведет преподаватель OTUS Евгений Павлов с опытом программирования на разных языках и настройки Linux серверов более 10 лет.
На вебинаре мы:
✔️ Проанализируем возможности по формированию дашбордов
✔️ Научимся использовать дашбороды, тиражирование и переменные
✔️ Посмотрим, как формировать дашборды для различных окружений

Урок является частью онлайн-курса «Мониторинг и логирование: Zabbix, Prometheus, ELK» и позволяет администраторам Linux, DevOps-инженерам и разработчикам, которым необходимо настроить мониторинг, протестировать обучение.

👉Чтобы зарегистрироваться на занятие, пройдите вступительный тест https://otus.pw/KGdt/

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

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

Так что имейте ввиду, если кому-то нужен подобный функционал. Onlyoffice хороший self-hosted продукт для использования приватного сервера документов. Не без проблем и глюков, но лучше все равно ничего нет.

#onlyoffice
​​❗️ Проведи время с пользой

В 11:15 мск подключайся к вебинару  "Проектирование сети, использование ИКС в качестве шлюза".

Всего за 45 минут ты узнаешь, как оптимально спроектировать сеть отдельного офиса, развернуть все необходимые для работы сервисы и как в этом поможет ИКС.

✔️ Регистрация на вебинар

👉 Демо-версия ИКС на 35 дней

Подробнее о продукте читай по тэгу #икс в записях канала.

#реклама #бесплатно #икс
​​Продолжаю обзор бесплатных self-hosted решений для командной работы с паролями. Сегодня речь пойдёт о psono. Я много раз слышал его упоминание в комментариях к предыдущим статьям этой серии, так что решил посмотреть на него.

Это полностью open source проект. Доступны исходники мобильных и обычных клиентов, а также сервера. Есть 2 редакции: Community Edition (CE) и Enterprise Edition (EE). Первая без ограничений, но функционал беден. Нет ни интеграции ldap, ни логов аудита. Редакция EE все это имеет, но бесплатна только для 10-ти пользователей. Дальше уже нужно лицензии на каждого пользователя приобретать.

Из особенностей psono я заметил возможность встроенной интеграции с файловым хранилищем на базе различных технологий (s3, ftp, sftp и т.д.) для хранения зашифрованных файлов. Причём можно не только подключать что-то стороннее, но и поднимать свой psonofileserver с функционалом HA и Failover. Было удивительно всё это видеть в данном продукте. Если кто-то все это настраивал и использовал, то скажите, что это за решение. В чём его смысл и стоит ли пользоваться. Я не стал тратить время на его настройку и проверку.

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

Сам psono достаточно просто поднимается в Docker. Но перед этим ему нужна будет база данных Postgres. Я сначала начал всё это настраивать у себя, но когда поднял сервер, понял, что он выполняет роль только бэкенда. Далее нужно ставить отдельно клиент для администрирования (веб панель) и для пользователей (веб панель или приложение). Понял, что муторно всё это делать, и пошел регистрироваться в Demo. Там и посмотрел, как всё выглядит на практике.

Сначала прохладно отнёсся к psono, но потом, когда вник в его структуру и особенности, он мне показался весьма интересным. Распределённая структура приложения будет скорее плюсом, чем минусом, особенно для больших распределённых команд. Удобнее настроить и ограничить доступ. Да и в целом разделение бэкенда и фронта для подобного продукта выглядит разумным подходом.

Сайт - https://psono.com/
Документация - https://doc.psono.com/
DockerHub - https://hub.docker.com/r/psono/psono-server/
Исходники - https://gitlab.com/psono
Demo - https://www.psono.pw/

#password #selfhosted
​​В мире Unix и Linux существует полезная утилита at, о которой многие даже не слышали. Я редко где-то вижу, чтобы её использовали. Сам я с ней знаком еще со времён Freebsd. Это планировщик наподобие cron, используется только для разовых задач.

Например, с помощью at можно запланировать откат правил фаервола через 5 минут, если что-то пошло не так. Именно для этой задачи я с at и познакомился, пока не узнал, что в Freebsd есть встроенный скрипт change_rules.sh для безопасной настройки правил ipfw.

Для того, чтобы планировщик at работал, должен быть запущен демон atd. Проверить можно через systemd:
# systemctl status atd

Создание задания на выполнение в 20:07:
# at 20:07
Дальше откроется простая оболочка, где можно ввести текст. Напишите команду, которую хотите выполнить:
at> /usr/bin/echo "Hello" > /tmp/hello.txt
Затем нажмите ctrl+shift+d для сохранения задания. Получите об этом информацию:
at> <EOT>
job 6 at Wed Oct 20 20:07:00 2021

Можно автоматом создать эту же задачу одной командой через pipe:
echo '/usr/bin/echo "Hello" > /tmp/hello.txt' | at 20:55

Посмотреть очередь задач можно так:
# atq

Подробности задачи:
# at -c 7

Удалить задачу:
# atrm 7

Когда будете писать команды, используйте полные пути к бинарникам, чтобы не было проблем с несуществующим path. Лог выполненных команд можно посмотреть там же, куда стекаются логи cron. По крайней мере в Centos.

Утилиту at любят использовать всякие зловреды, чтобы маскировать свою деятельность. Про cron все знают и помнят, поэтому сразу туда идут проверять подозрительную активность. А вместо этого вирус может насоздавать кучу задач at, которые не сразу догадаются посмотреть.

Я, когда подключаюсь к незнакомым серверам, чаще всего сразу проверяю очередь заданий atq. Мало ли, какие там сюрпризы могут быть.

С помощью файлов /etc/at.allow и /etc/at.deny можно ограничивать список пользователей, которым разрешено использовать at.

#terminal
​​Есть простой и эффективный фильтрующий DNS сервер Pi-hole. Построен на базе известного dnsmasq. Pi-hole вполне можно использовать для реализации функций dns и dhcp сервера с удобным веб интерфейсом.

Основная задумка Pi-hole - фильтрация dns запросов для блокировки рекламы. Я прохладно отношусь к подобным решениям на базе DNS. Если что-то будет глючить на сайте из-за блокировки, нельзя быстро настроить исключение. Надо либо dns сервер менять, либо идти в настройки сервера и разбираться, что именно приводит к проблемам.

Pi-hole имеет очень удобный веб интерфейс. Его даже без блокировки рекламы имеет смысл использовать, если нужен функционал dns сервера с удобным управлением. Запускать проще всего в Docker. Буквально за одну команду всё стартует и начинает работать. Есть готовый скрипт для этого.

Подобные решения удобно использовать, чтобы быстро понять, куда в сеть обращается программа или устройство. Запускаете контейнер с Pi-hole, назначаете его в качестве dns на целевой машине. Потом в веб интерфейсе проверяете все dns запросы.

Такой же функционал есть у adguard. Тестировал его. Запускается тоже очень быстро и просто в контейнере. Лично мне веб интерфейс Pi-hole понравился больше.

Сайт - https://pi-hole.net/
Исходники - https://github.com/pi-hole/pi-hole
​​Скорость разработки и запуска приложений падает?

Попрощайтесь с медленным и бессвязным подходом к современным приложениям. Теперь можно управлять рабочими нагрузками на основе контейнеров, используя привычные инструменты и не меняя инфраструктуру.
 
VMware провела крупнейшее нововведение vSphere с момента запуска гипервизора ESXi. Любопытно? Нам тоже. Наконец-то устраняется разрыв между ИТ-специалистами и разработчиками приложений, работающих как в локальной среде, так и в облаке.

Последняя версия vSphere имеет встроенную поддержку Kubernetes! Решение получило название VMware vSphere with Tanzu. Теперь ИТ-отделы могут использовать существующую среду vSphere для быстрой доставки кластеров Kubernetes группам разработчиков, обеспечивая при этом управление, надежность и безопасность корпоративного класса. Запускать и управлять контейнерами можно точно так же, как и всем давно знакомыми виртуальными машинами.

Подробнее про решение можно почитать здесь: https://bit.ly/3oT2vay

Но самое главное: хотите бесплатно протестировать VMware Tanzu в течение 60 дней и самостоятельно убедиться в заявленных характеристиках? Получить демо можно здесь: https://bit.ly/3mML1Ko

#реклама
Как на самом деле пишется и проверяется код в больших технологичных компаниях? Ответ в видео.

https://www.youtube.com/watch?v=rR4n-0KYeKQ

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

Нет теста, нет ошибки, нет проблемы.
LGTM = Looks good to me.

#юмор
​​Иногда бывает нужно замерить время выполнения какой-то команды. Есть специальная утилита, в которой это сделать очень удобно - Hyperfine. Это более продвинутый аналог time. Если запустить её без дополнительных параметров, то по умолчанию она не менее 10 раз выполнит заданную команду и выведет среднее время выполнения.

Проще всего проверить работу программы на команде sleep:
# hyperfine 'sleep 0.5'
Benchmark 1: sleep 0.5
 Time (mean ± σ):   501.3 ms ±  0.2 ms  [User: 1.2 ms, System: 0.1 ms]
 Range (min … max):  501.0 ms … 501.8 ms  10 runs

Где это может пригодиться кому-то из вас, не знаю. Первое, что приходит на ум, в мониторинге. Например, я иногда делаю item в Zabbix для мониторинга за локальным nginx следующего типа. Через curl дергал http://localhost/nginx-status и замерял время отклика. Ставил триггер на отклонение от среднего значения.

Для этих целей удобно использовать hyperfine, так как он умеет экспортировать результат в json. В том же Zabbix можно сразу же распарсить его в постобработке через jsonpath и записать результат. Если по нескольку раз дергать какой-то url и замерять через hyperfine, то точность мониторинга будет выше, чем есть в стандартном функционале.

# hyperfine 'curl http://127.0.0.1:80' --export-json ~/curl.json

На выходе получите сразу же min, max, медианное время выполнения запроса. Если любопытно, можете просто сравнить отклик сайта по http и https.

# hyperfine 'curl http://127.0.0.1' 'curl https://127.0.0.1'

В общем, утилита интересная, может пригодиться в хозяйстве. Есть deb пакет, всё остальное из репозитория можно взять. Это просто бинарник.

# wget https://github.com/sharkdp/hyperfine/releases/download/v1.12.0/hyperfine_1.12.0_amd64.deb
# dpkg -i hyperfine_1.12.0_amd64.deb

Исходники - https://github.com/sharkdp/hyperfine

#terminal #утилита
⁉️Уже работаете с данными, но хотите повысить свой профессиональный уровень и решать интересные задачи?
Освойте профессию дата-инженера! Научитесь собирать и организовывать данные на онлайн-курсе «Data Engineer» от OTUS.

🔥За 4 месяца обучения вы получите:
✔️ Целостную картину задач бизнеса и роли инженера данных в их решении
✔️ Понимание ключевых способов интеграции, обработки, хранения больших данных
✔️ Практические навыки разработки дата-сервисов, витрин и приложений
✔️ Знание принципов организации мониторинга, оркестрации, тестирования

👉🏻Пройдите вступительный тест, чтобы оценить хватит ли вам уровня подготовки, и займите место, пока действует спец.цена https://otus.pw/e0kJ/

#реклама
У меня есть статья про работу с Google API на примере сбора данных оттуда в Zabbix. Она разбита на 2 части. В первой я разбираю, как в целом работать с Google API на основе его токенов. Там очень мутная тема и разобраться с ней не очень просто. Токены временные, их надо постоянно обновлять, чтобы всё автоматизировать.

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

Недавно Google сменил API с версии 1.4 на 2.0. Поменялось там почти всё, так что пришлось и скрипты, и шаблоны переделывать. Обновил статью. Информация там хоть и не сильно востребованная, так как тема специфичная, но уникальная. Нигде никакой информации по теме вообще не нашёл, так что во всём разбирался сам.

https://serveradmin.ru/dostup-k-google-api-adsense-cherez-zabbix/