ServerAdmin.ru
31.3K subscribers
671 photos
55 videos
22 files
2.87K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Регистрация в РКН: https://vk.cc/cG1Urj
Download Telegram
​​Хочу сделать предостережение и подсветить одну неприятную историю. Существует "Лучший инновационный продукт 2022 года" в виде системы мониторинга Camkeeper. Мне прислал ссылку один подписчик. Заинтересовался продуктом, решил узнать подробнее, что это такое.

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

Потом уже замечаю некоторые скриншоты в описаниях. Смотрю обзорный ролик и понимаю, что это обычный Zabbix, где просто сменили логотип. Вот такая инновация 2022 года.

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

Отдельно порадовало опубликованное благодарственное письмо на сайте:
Необходимо отметить высокий уровень инноваций, внедренных в продукцию Camkeeper разработчиками. Благодаря детальной удаленной диагностике работоспособности всех элементов системы видеонаблюдения, мы не только снизили расходы на ее обслуживание, но и систематизировали процессы с подрядной организацией.
Cпециалист по безопасности и режиму.

Слышали где-нибудь об этой системе?
👍74👎3
Сейчас все только и говорят, что об импортозамещении в ИТ. Кто-то – с презрением и громким «все пропало». Кто-то – с восторгом и оголтелым «всех заместим». А хочется взвешенной позиции.

Импортозамещение здорового человека — канал, где трезво, без истерик и эмоций разбираемся в российском ИТ.

Читайте наши материалы:

🔸 Как уход производителей софта отражается на российской разработке? Спойлер: реальная картина далека от шумихи в СМИ, большинство разработчиков быстро и успешно адаптировались к новой действительности.  
🔸 Есть ли жизнь после Intel и TSMC? Коротко о том, что происходит на рынке полупроводников в России. Где мы, куда идем и что нужно, чтобы дошли.
🔸 Как покупать железо в нынешних условиях? Ждать отмены санкций, использовать «серое» оборудование или пробовать российское?

Подписывайтесь на канал Импортозамещение здорового человека и следите за ИТ-рынком страны!

#реклама
👎14👍8
В августе было несколько постов с анализом производительности Linux. Хочу немного подвести итог и сгруппировать информацию, чтобы получилась последовательная картинка по теме.

Вам кажется, что сервер тормозит. Первым делом загляните в top или htop (я его предпочитаю). Если понимания, в чём конкретно проблема, не возникло начинаем копать глубже. Типичный пример непонимания - всё тормозит, даже по ssh долгое подключение, load average высокий, а процессор не загружен, память свободная есть.

1️⃣ Используйте dstat, запустив комплексный вывод основных метрик. Это первый пример из заметки:
# dstat -tldnpms 10
Там как минимум будет видно, какая и где именно нагрузка. Скорее всего если по top не понятно, в чём проблема, то смотреть надо на диски и сеть.

2️⃣ Я бы в первую очередь посмотрел на диски. Для этого можно воспользоваться заметкой Анализ дисковой активности в Linux. Там конкретные примеры по выводу различной информации с помощью разных утилит. Если они не помогли, то спускаемся на уровень ниже, берём набор утилит perf-tools и используем iolatency и iosnoop. В заметке есть описание с примерами.

3️⃣ Теперь разбираемся с сетью. Берём пакет netsniff-ng и анализируем сетевую активность - трафик, соединения, источники соединений с привязкой к процессам и т.д. В первую очередь понадобятся утилиты Ifpps и flowtop. Чуть более простые и дружелюбные для использования утилиты для анализа сети описаны у меня в посте про программу sniffer. И вот еще список тематических утилит с описанием: Iftop, NetHogs, Iptraf, Bmon.

Я знаю, что многие могут порекомендовать более продвинутые top'ы, типа atop, bashtop, glances и им подобные. Лично я их не очень люблю и обычно не использую. Иду по пути узконаправленных утилит. Возможно это не всегда оправданно, но у меня вот так.

#perfomance #подборка
👍78👎1
​​Вы замечали, как много всевозможных утилит по анализу производительности Linux? На них можно бесконечно писать обзоры. Клонов top море, как и анализаторов сетевой активности, каких-то ещё метрик. Я постоянно вижу подобные утилиты. Уже перестал смотреть на них, потому что объективно они не особо нужны, а для авторов это просто хобби. Если и обращаю внимание, то на что-то действительно полезное с необычным функционалом.

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

Я постоянно использую в повседневной деятельности утилиту netstat для просмотра списка открытых портов. Если сервер сам настраиваю, то ставлю пакет с ней, если нет, то использую встроенный ss, который сейчас есть во всех дистрибутивах. Мне просто больше нравится вывод netstat, чем ss. Можете сами сравнить:
# netstat -tulnp
# ss -tulnp
У ss вывод шире, поэтому часто переезжает на новую строку и получается каша. Но это не важно, написать хотел не об этом.

Представьте ситуацию, что вы в Docker контейнере, где нет этих утилит. Где вообще почти ничего нет, что встречается довольно часто, а хочется посмотреть, какие порты открыты и какие соединения установлены? Посмотреть очень просто:
# cat /proc/net/tcp
Вот описание того, что вы увидите.

Вы получите практически всю ту же информацию, что показывают утилиты выше, только в шестнадцатеричном формате, если речь идёт о номере порта. Достаточно его перевести в десятичный и получить нужные данные. Понятно, что для этого тоже может не быть инструментов внутри контейнера, хотя тот же bash умеет это делать. Смотрим столбец local_address, первое число - ip адрес, второе - порт. Переводим порт, например 006E, в десятичный формат:
# echo $((16#006E))
110
Получаем 110 tcp порт, который открыл dovecot. Можно автоматом всё это конвертнуть:
# grep -v "local_address" /proc/net/tcp \
| awk '{print $2}' | cut -d : -f 2 \
| xargs -I % /bin/bash -c 'echo $((16#%))'

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

awk 'function hextodec(str,ret,n,i,k,c){
  ret = 0
  n = length(str)
  for (i = 1; i <= n; i++) {
    c = tolower(substr(str, i, 1))
    k = index("123456789abcdef", c)
    ret = ret * 16 + k
  }
  return ret
}
function getIP(str,ret){
  ret=hextodec(substr(str,index(str,":")-2,2)); 
  for (i=5; i>0; i-=2) {
    ret = ret"."hextodec(substr(str,i,2))
  }
  ret = ret":"hextodec(substr(str,index(str,":")+1,4))
  return ret

NR > 1 {{if(NR==2)print "Local - Remote";
local=getIP($2);remote=getIP($3)}{print local" - "remote}}' /proc/net/tcp

Этот пример можно развить и дальше, добавив информацию из остальных столбцов о состоянии соединения, inode процесса, его породившего и всего остального. Сразу скажу, что я не разбирался, что здесь происходит 🤡. Это же bash, ему даже обфускация не нужна. Просто увидел когда-то и сохранил. Как раз тогда, когда надо было в контейнере посмотреть порты и соединения.

И такая история со всеми метриками. Их все можно взять в /proc и анализировать. Так что можете начинать изучать какой-то язык программирования и писать свой собственный top. Можно даже на bash. Правда такой пример уже есть - bashtop. Придётся придумать что-то новое 😀.

#bash
👍78👎3
​​Для тех, кто захочет позаниматься на выходных и подтянуть свой навык в администрировании Linux в преддверие начала учебного года, предлагаю шикарную ссылку на обучающий материал по теме RHCSA (Red Hat Certified System Administrator).

Поясню тем, кто не знает, что это базовый курс от Red Hat для Linux администраторов. Сертификацию сдавать не обязательно, можно просто поучиться по этой программе. Её часто рекомендуют как общепризнанную базу. Так что если вас кто-то будет просить посоветовать, с чего начать изучение Linux, предложите ему пройти обучение по этому курсу.

Собственно, вот ссылка - https://basis.gnulinux.pro
Автор проделал огромную работу. Он записал видео и одновременно подготовил текстовую информацию с картинками. Читать её можно как на сайте автора, так и в репозитории github. Материал адаптирован для новичков и дополнен автором, то есть это не точное обучение по программе RHCSA.

Увидел этот курс недавно и был очень удивлён качеством и подачей. Пожалуй, в бесплатном доступе от энтузиастов мне не доводилось такого видеть.

#обучение #бесплатно
👍183
​​В прошлом году на канале я уже делал заметку про замечательную утилиту Ventoy, которая позволяет сделать флешку с множеством ISO образов. Можно выбрать любой из них и загрузиться.

Казалось бы, что в этом такого? Нет никаких проблем сделать загрузочную флешку. Тут смысл именно в простоте. Программа формирует флешку с директорией, в которую можно просто копировать ISO образы. А затем в загрузочном меню выбирать любой из них. Ventoy поддерживает не только ISO, но и некоторые другие: WIM, IMG, VHD(x), EFI.

Я с тех пор с себе сделал подобную флешку и иногда пользовался. Вспомнил про неё, потому что автор канала Plafon, на который я подписан, выпустил ролик по этой теме. Можете посмотреть, чтобы наглядно увидеть, как это всё работает на практике. У автора рабочая станция на Linux. Он отдельно упомянул, что с линукса не всегда удобно делать загрузочную флешку с Windows. А с Ventoy нет никаких проблем. Просто кладёшь образ в директорию на флешке и всё работает.

Из аналогов этой программы можно упомянуть YUMI – Multiboot USB Creator. Но лично мне Ventoy понравилась больше.

P.s. если ещё не подписаны на этот канал, то рекомендую, мне нравится.

Сайт - https://www.ventoy.net/
Исходники - https://github.com/ventoy/Ventoy
👍100👎1
​​Игра Компьютерщик, о которой я рассказывал пару недель назад, в 1998 году открыла целую веху подобных игр. Одного из последователей я упоминал - Взломщик. Есть ещё целая серия подобного рода игр - Компьютерная эволюция, которая была популярна в своё время.

С 2002 по 2008 год вышло три версии этой игры, а в 2008 автор открыл исходники, сам прекратил разработку. С тех пор вышла целая куча новых версий. Компьютерная эволюция развивает идею Компьютерщика, только делает акцент на железную часть. В игре куча различных операционных систем и оборудования.

Начало там примерно такое же, как в Компьютерщике. Вы начинаете самостоятельную жизнь с самым маломощным компьютером с бесплатным ПО. Вам надо работать, учиться, прокачивать комп, ставить ПО, заниматься хакерством (в первых версиях не было).

По этой игре автор 6-й версии запилил свой сайт, выложил свою версию и собрал много полезной информации об игре. Адрес - https://compevo6.ru. Игра для старичков, кто застал в сознательном возрасте 90-е и начало 2000-х. Она вся пронизана духом того времени. Для всех остальных вряд ли это покажется интересным, хотя кто знает.

Я так понимаю, что сейчас имеет смысл играть сразу в 6-ю, последнюю версию. Скачать можно с сайта, который упомянул.

#игра
👍35👎5
​​🛡 Хочу поделиться с вами продуктом на базе Nginx, который мне понравился своей простотой и удобством. Речь пойдёт про Bunkerweb, который реализует в том числе функционал WAF (Web Application Firewall). Это собранный Docker контейнер с Nginx внутри и кучей дополнительного функционала для обеспечения безопасности.

Bunkerweb может работать как непосредственно локальный веб сервер, так и в режиме reverse proxy. Большая часть функционала реализована штатными средствами Nginx и модулями к нему. В качестве WAF используется ModSecurity, для защиты от ботов интеграция с различными каптчами.

📌 Для настройки есть мастер создания конфигурации. Оценить функционал и основные возможности проще всего через него, а не через просмотр описания или доков. Там сразу понятно, что он умеет и как настраивается. Перечислю основные фишки:
есть встроенный веб интерфейс для управления (видео с демонстрацией)
поддержка плагинов (уже есть интеграции с CrowdSec, ClamAV, Discord, Slack, VirusTotal)
WAF на базе ModSecurity и набора правил OWASP
распознавание ботов, их блокировка или показ каптчи
блок ip по странам или внешним списками
поддержка сертификатов let's encrypt

Весь функционал подробно описан в документации. Запускается Bunkerweb в Docker, Kubernetes, локально с ручной установкой или через Ansible. Доступны, по сути, все возможные способы, кому что ближе и удобнее.

Проект оставил очень хорошее впечатление. Он хорошо документирован, описан, понятно сделан, продуман. Мне показалось, что это хорошее решение не только с точки зрения безопасности, но и просто установки и управления Nginx. Можно через конструктор собрать набор опций, запустить Bunkerweb, а потом посмотреть в конфиге, как всё это реализовано. Так как всё собрано на базе open source продуктов, разобраться не трудно. При желании, можно что-то в свои наработки утащить.

Можно рассматривать этот продукт как панель управления для Nginx с базовым набором правил безопасности. Это если его просто с дефолтными настройками запустить. А дальше уже при желании можно наращивать функционал.

Сайт - https://docs.bunkerweb.io
Исходники - https://github.com/bunkerity/bunkerweb
Demo - https://demo.bunkerweb.io/

#waf #security #nginx
👍65👎1
​​Расскажу вам про возможность консоли Linux, с помощью которой можно подшутить над коллегой, который с ней не знаком. Когда первый раз сталкиваешься, можно прилично удивиться или даже испугаться, что тебя взломали.

В Linux можно через консоль отправлять сообщения другому человеку. Для этого вам надо подключиться вместе с кем-то к серверу и посмотреть их номера. Проще всего это сделать с помощью команды w.
# w
21:25:41 up 356 days, 11:46, 2 users, la: 0.01, 0.03, 0.06
USER   TTY   FROM       LOGIN@  IDLE  JCPU  PCPU WHAT
root   pts/0  123.456.158.81  17:18  5.00s 0.19s 0.01s w
root   pts/1  321.654.177.11  17:19  13.00s 0.06s 0.06s -bash

Допустим, другой человек подключился к консоли pts/1. Отправим ему сообщение:
# echo 'Ты кто такой? Тебя сюда не звали' > /dev/pts/1

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

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

То же самое можно сделать с помощью write, например так:
# write user /dev/pts/1
и дальше пишешь текст, но так русский язык не работает, я не разбирался, из-за чего это.

#bash #юмор
👍114
​​⚡️ Хочу предостеречь тех, у кого сайты на Bitrix. Как я понял, сейчас идёт волна взломов этого движка. У меня пострадал сайт одного из клиентов. Подробный бюллетень с описанием уязвимости ещё в июле публиковал НКЦКИ (ссылка на pdf). Там и вероятные пути попадания зловреда, его признаки, рекомендации по устранению последствий и рекомендации по защите.

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

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

Мне устранить последствия удалось достаточно просто, потому что в стандартных бэкапах сайтов всегда храню все изменения файлов в течении дня. То есть прошёл день, я сравниваю вчерашний бэкап и сегодняшний. Все изменившиеся файлы кладу в отдельную папку с именем в виде даты. И такую историю изменений храню очень долго. Первое заражение сайта было ещё в июле, в августе один раз меняли ссылку. Мне удалось найти все изменённые файлы ещё с июля и заменить их оригиналами. Без этого не знаю, сколько времени пришлось бы ковыряться и всё равно наверняка бы не узнал, всё ли вычистил. А тут сразу все изменения файлов перед глазами. Подробно такая схема бэкапа описана у меня на сайте в статье про rsync. Рекомендую к обычным полным или инкрементным бэкапам добавлять такие, разностные по каждому дню.

Сайт доработанный, так что просто взять и обновить его нельзя. Нанимаются отдельно разработчики и выполняют обновление. Сразу предупредил владельца, чтобы оперативно проводил обновление. Других вариантов надёжной защиты не знаю. Пока выполнил рекомендации из бюллетеня и постоянно слежу, не повторился ли взлом. Если повторится, постараюсь подробно изучить, как именно он выполняется. Повторного заражения пока не было.

Проверил другие сайты, тоже давно не обновлявшиеся. Не нашёл следов заражения. Скорее всего используется какой-то модуль, который установлен не везде, либо отдельная редакция подвержена заражению.

Если сталкивались последнее время со взломом Битрикса, то какие меры для защиты приняли, помимо обновления до последней версии?

#bitrix
👍66👎1
​​Обычно, когда надо узнать информацию о железе в Linux, начинаю перебирать утилиты типа lspci, lshw, dmidecode. Понятное дело, что ключей к ним я не помню, есть шпаргалки. Одну из них я публиковал в прошлом году.

Можно поступить проще. Есть утилита на perl - inxi. Узнал о ней случайно, увидел в одном из чатов. Плюс, в комментариях к заметкам пару раз её видел, так что забрал в закладки, а сейчас дошли руки попробовать.

Она присутствует в базовых репозиториях популярных систем, так что ставится через пакетный менеджер:
# apt install inxi
# dnf install inxi

А дальше самое интересное. У этой небольшой утилиты куча зависимостей. В прикрепленной картинке пример установки inxi в Debian. Я как увидел это, сразу понял, что инструмент не для серверов. Ставить столько зависимостей, чтобы посмотреть информацию о системе, абсурд. Скорее всего утилита перекочевала из десктопных систем, где большая их часть уже установлена в системе, так как там и видюхи чаще всего стоят, и куча всевозможных портов на материнке, чего в виртуалках просто нет и чаще всего не надо.

В целом inxi известный инструмент с большой историей. Он есть в официальных репозиториях всех известных дистрибутивов Linux, а также Freebsd и MacOS. Так что если вас не смущает количество зависимостей, то можете смело ставить. Собственно, эти зависимости и ставятся, чтобы собрать как можно больше информации о системе. И тут inxi действительно хорош. У него очень удобно и информативно организован вывод данных.

Сразу посмотреть всю информацию обо всём железе и самой системе (в том числе о типе гипервизора):
# inxi -F

Базовая информация о системе:
# inxi -b

Информация о процессоре:
# inxi -C

Информация об оперативной памяти:
# inxi -m

Информация о дисках:
# inxi -D
И разделах на них:
# inxi -p

Информация о сетевых картах:
# inxi -n
В том числе с ip адресами (lan и wan):
# inxi -ni

Информация о видеокарте:
# inxi -G

Список системных репозиториев:
# inxi -r

Если к любой команде добавить ключ -c и дальше указать число от 0 до 42, то можно выбрать цветовую схему. Примерно так:
# inxi -F -c 5

Параметров у inxi очень много. Она умеет показывать логические разделы lvm, подключенные bluetooth устройства, температуру с датчиков, даже погоду. По идее, это неплохой инструмент для стандартизации сбора информации с помощью какой-то системы мониторинга. Можно написать универсальный шаблон под неё и собирать всю интересующую информацию, в первую очередь с парка рабочих станций.

Сайт - https://smxi.org/docs/inxi-about.htm
Исходники - https://github.com/smxi/inxi
Обзор - https://www.youtube.com/watch?v=36L2NrvmCMo

#linux #железо
👍52👎3
Media is too big
VIEW IN TELEGRAM
Пост немного не формат канала, тем более для утра среды, но всё равно хочу поделиться. Сам только вчера вечером увидел объявление. У группы Научно-технический рэп (НТР) завтра будет концерт в Москве. Подробности по ссылке - https://future.moscow/ntr

Научно-технический рэп (НТР) — группа, которая в искрометной форме вещает о наболевшем. В песнях НТР — реалии жизни IT-специалистов, биографии знаменитых ученых, восстание машин, тепловая смерть Вселенной, темная сторона Силы и матбой.

Это не реклама, её никто не заказывал. Мне нравится творчество этой группы, решил поддержать. Сам бы с удовольствием сходил, но 1-го сентября не получается. 

Постоянно слушаю их песни. Собрал их в своей группе @srv_admin_humor (просто хранилище, канал не веду специально). На некоторые популярные песни один энтузиаст создал прикольные клипы, собраны на его канале - https://www.youtube.com/c/kawaiidesuintegral

#музыка #юмор
👍36👎8
У меня вчера ночью сайт упал. Утром пока встал, покушал, сел за компьютер, накопилось большое количество сообщений в личке от читателей, как в vk, так и в телеге. Даже не ожидал, что столько народу читают сайт, где уже давно не обновлялись статьи. Всем спасибо за беспокойство.

Ситуация получилась хрестоматийная, так что решил разобрать её и прокомментировать. Упала база данных Mariadb. Её прибил OOM Killer. По мере устаревания кэша, отваливались страницы. Рассказываю, почему это произошло.

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

Вчера ночью кто-то немного нагрузил сайт. Существенно выросло число запросов, разросся access log веб сервера, стартовала куча процессов php-fpm, открылись подключения к базе. Параллельно сразу же выросла нагрузка от fail2ban, который анализирует лог файлы и от filebeat, который отправляет логи в ELK. В итоге OOM Killer одновременно прибил filebeat и mariadb. Причём filebeat поднялся сам, у него в systemd сервисе прописано Restart=always, а MariaDB нет, хотя там указано Restart=on-abort. По идее, с этой настройкой база тоже должна была подняться после остановки OOM Killer, но этого не случилось.

В итоге что я сделал:
1️⃣ Поправил конфиг MariaDB. Конкретно изменил параметры, которые снизили максимальное количество оперативной памяти, которую может забрать процесс:
key_buffer_size
innodb_buffer_pool_size
innodb_log_file_size
max_connections

2️⃣ Поправил конфиг пула php-fpm. Заметил, что очень много запущено рабочих процессов, которые явно не используются все. Был 61 процесс, а после перезапуска понаблюдал и убедился, что для нормальной работы надо 10-15 штук всего. Процессы стартовали по потребности во время всплесков нагрузки, но долго потом висели в памяти, не закрывались. Добавил параметр pm.process_idle_timeout = 30, чтобы через 30 секунд неактивности рабочий процесс завершался. Также более строго ограничил максимальное количество рабочих процессов параметром pm.max_children, чтобы они не смогли занять слишком много памяти.

По сути просто сбалансировал потребление памяти между приложениями. Теперь надо нагрузить сайт одновременными тяжелыми запросами хотя бы с 10-15 разных IP адресов и посмотреть, сколько памяти скушают fail2ban и filebeat, чтобы ещё раз подкорректировать параметры. Желательно всё это замониторить, но в том же Zabbix нетривиальная задача настроить мониторинг, следящий за потреблением ресурсов отдельными динамическими процессами. Я знаю только одну систему мониторинга, которая это умеет из коробки - Newrelic.

Я не первый раз сталкиваюсь с ситуацией, когда сборщики и анализаторы логов непредсказуемо нагружают сервер. Тот же Fail2ban запросто его может положить сам при очень резком всплеске запросов. Так что это немного колхозное решение в лоб и нужно это понимать. С filebeat то же самое. Не зря его часто меняют на что-то другое: FluentD или Vektor.

В целом, эту ситуацию не трудно разрулить и даже автоматизировать настройку. Тут ключевой параметр - количество оперативной памяти, которую потребляет один рабочий процесс php-fpm. Это всегда будет зависеть от конкретного сайта. Вычисляется он, а потом по цепочке выстраивается потребление памяти всех остальных приложений. Затем обязательно настраивается ограничение запросов с одного IP. Потом результат тестируется стресс тестами и фиксируется. После этого для вас будут представлять опасность только DDOS атаки, которые на уровне одного сервера уже не отбить.

#webserver
👍115👎1
​​Поддержка ОС Centos 7 будет продолжаться до 30 июля 2024 года. Ещё примерно 2 года. Но уже сейчас появляются инструменты по миграции с этой ОС на что-то другое. Как все уже знают, Cenots 8 прекратила своё существование, так что переезжать придётся на какой-то форк.

Причин, по которым уже сейчас стоит переехать на что-то более свежее на самом деле много. Простой пример - Zabbix Server больше не поддерживает эту систему. Основная причина - очень устаревшие пакеты.

Команда дистрибутива Almalinux разработала свой инструмент Elevate на базе leapp по миграции с Centos 7 на одну из альтернатив:
AlmaLinux OS 8
CentOS Stream 8
EuroLinux 8
Oracle Linux 8
Rocky Linux 8

Я попробовал его для миграции Centos 7 ⇨ Rocky Linux 8. На удивление всё прошло более ли менее гладко. Пару лет назад, когда пробовал с помощью leapp переехать с Centos 7 на 8, не получилось, бросил попытки.

А тут всё прошло хорошо за одним исключением. Сначала конвертация не хотела выполняться из-за того, что проверка находила драйверы ядра, которые больше не поддерживаются в 8-й версии. Стал разбираться, оказалось, что это драйвер floppy, который был загружен в текущей системе. Просто выгрузил его:
# modprobe -r floppy
и успешно провел конвертацию.

Так что инструмент рабочий, рекомендую присмотреться, у кого остались старые системы.

Информация об Elevate - https://almalinux.org/elevate
Инструкция - https://wiki.almalinux.org/elevate/ELevate-quickstart-guide.html
Видео процесса - https://www.youtube.com/watch?v=WJpa1E6jnok

#centos
👍58👎2
​​Чтобы закрыть тему с Centos, ещё немного информации про конвертацию. У меня есть одна машина с Centos Stream 8. Оставил её, чтобы следить за развитием этой системы. Довольно много людей используют Stream. У хостеров вижу шаблоны для её установки. Так что хоронить, её судя по всему, не стоит.

В конце прошлого года был релиз CentOS Stream 9, в которой SElinux теперь отключается не SELINUX=disabled, а selinux=0 😁. Официальных инструментов для перехода с 8-й на 9-ю версию нет, но можно это сделать кустарными способами. Я один из таких проверил, он реально рабочий.

Идея там такая же, как и раньше использовалась в обычной Centos, для которой тоже не было готовых конвертеров для перехода с ветки на ветку. Подключается репозиторий от новой ветки, обновляются все пакеты, удаляется старое ядро. Я вот тут всё по шагам сделал и получил новую версию системы. Способ рабочий.

Кто-то постоянно пользуется Stream? По идее для какого-то веб сервера пойдёт, где побыстрее свежие пакеты нужны. Для этого Ubuntu хорошо подходит, но если нужен rpm дистрибутив, то Stream в самый раз.

#centos
👍37👎1
​​В копилку менеджеров для подключений предлагаю положить ещё один хороший продукт - Ásbrú Connection Manager. Это бесплатный Open Source проект и только под Linux. У него очень хороший функционал для бесплатного продукта и приятный внешний вид. С учётом того, что под Linux вообще не так много подобных программ, обратить на неё внимание точно стоит.

Функционал у Asbru-CM плюс-минус как у всех. Умеет много всего:
поддерживает ssh, rdp, vnc, telnet, webdav, sftp, ftp;
выполнять те или иные команды на удалённом при подключении;
выполнять локально какие-то действия при удалённом подключении;
интеграция с KeePassXC для хранения секретов;
подключение через proxy;
организовывать соединения в виде вкладок или отдельных окон.

Интересна история названия программы - Ásbrú. В норвежской мифологии Ásbrú - это радужный мост, соединяющий Мидгард (Землю) и Асгард, царство богов. Написана Ásbrú на Perl.

Аналогом Ásbrú на Linux является Remmina и Remote Desktop Manager. Писал на них обзоры.

Сайт - https://www.asbru-cm.net/
Исходники - https://github.com/asbru-cm/asbru-cm

#менеджеры_подключений
👍43👎1
Стартовал новый учебный год. Самое время подготовить программу на него. Решил сделать подборку бесплатных обучающих материалов, которые уже были ранее опубликованы на канале. Много всего хорошего накопилось.

Как стать DevOps Инженером с Нуля, что учить и в каком порядке. Обзорное видео от Дениса Астахова, автора ютуб канала ADV-IT.
Основы Docker - хорошее обучающее видео по Docker для новичков.
Play-with-docker - онлайн тренажер для изучения Docker.
Полный видеокурс по Kubernetes из 22 обучающих уроков. Там вообще всё от нуля до мониторинга и деплоя приложений.
Play-with-k8s - онлайн платформа для изучения Kubernetes.
LearnGitBranching - песочница для обучения основам git с визуализацией всех действий.
Oh My Git - изучение git в игровой форме (прям как для детей 😁)
Бесплатный курс по основам git - бесплатный курс от Слёрм на их площадке.
Базовое администрирование Linux-серверов - ещё один бесплатный курс от Слёрм.
Kodekloud-engineer - бесплатная обучающая платформа, где вам будут прилетать максимально приближенные к реальным задачи по теме сисадминства и devops.
Kodekloud - платформа с курсами по devops, есть бесплатные.
RHCSA (Red Hat Certified System Administrator) - адаптированный курс на базе RHCSA для изучения Linux.

#подборка #обучение
👍96👎3
​​На днях была рассылка от компании Onlyoffice. Они анонсировали бесплатный онлайн конвертер офисных документов разных форматов. Например, перевести pdf в word, xlsx в pdf, csv в xls и т.д.

Очевидно, что самым востребованным направлением является конвертация pdf во что-то другое. Например в doc или fb2 (для книг актуально, которые часто только в pdf формате есть). Я попробовал на нескольких примерах, работает нормально.

Не нужна регистрация, нет никакой рекламы. Всё работает быстро и чётко. Единственное ограничение - размер файла не более 5 Мб. Это мало, особенно для книг, но что есть, то есть.

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

Даже если самому не надо, можно этот сервис предлагать каким-то знакомым, далёким от IT.

https://www.onlyoffice.com/ru/convert.aspx

#сервис
👍64👎1
​​Вы в курсе, что знаменитую на весь мир игру тетрис придумал Алексей Леонидович Пажитнов в 1984 году, работавший в Вычислительном центре Академии наук СССР. Он вёл работу над искусственным интеллектом и распознаванием речи, или не вёл, а разрабатывал игру 🙂

У меня в детстве был тетрис в виде отдельного игрового устройства. Оказывается, тетрис есть даже в официальных репозиториях популярных дистрибутивов Linux:
# apt install bastet
# dnf install bastet
# /usr/games/bastet

Игра реально залипательная. Я минут 30 поиграл, прежде чем написал эту заметку. Мне показалось, что на Linux она чересчур сложная. Постоянно выходят не те фигуры, много повторов и совсем редко длинные палочки появляются. Из-за этого довольно быстро проигрывал, а за раунд удавалось сократить 3-5 полных линий и дальше всё.

Даже по картинке ниже видно, что у меня с начала игры вышли 7 белых квадратов (4 подряд были), по паре остальных фигур и ни одной палочки. Как тут выигрывать?

#игра
👍60👎2
​​Расскажу вам про отличную бесплатную Open Source систему контроля доступа к сервисам и системам - Teleport. Она очень функциональная, кроссплатформенная, немного навороченная. Попробую кратко рассказать принцип работы.

Допустим, у вас есть какой-то веб сервис и полноценный сервер в закрытой сети. Вы не хотите открывать к ним доступ извне. Вам нужно точечно выдавать права к этим ресурсам различным пользователям. Есть вариант организовать это с помощью VPN, но это решение сетевого уровня. В то время как Teleport обеспечивает доступ на уровне сервисов.

Вы разворачиваете какой-то сервер в интернете, привязываете к нему DNS имя. Устанавливаете туда сервер Teleport. Добавляете все свои внутренние ресурсы, к которым хотите настроить доступ. Добавляете пользователей и назначаете им права доступа. Далее на целевых серверах ставите Teleport и связываете его с сервером и ресурсами, которые туда добавили.

Теперь централизованно можете управлять доступом к своим внутренним ресурсам. При этом ведётся лог подключений. В качестве ресурсов могут выступать: ssh подключения к серверам, доступ к kubernetes, к базам данных, к десктопным системам (в т.ч. windows по rdp), к отдельным приложениям (gitlab, grafana и т.д.).

Доступ к серверу Teleport и ресурсам осуществляется через браузер. Можно включить двухфакторную аутентификацию. Доступ к SSH может осуществляться как через web, так и с помощью локального приложения со своим cli. Выглядит это примерно так:
# tsh login --proxy=tp.site.com --user=sysadmin

Я систему не разворачивал и не использовал. Изучил сайт, документацию, видео. На вид выглядит очень круто. Можно закрыть вопросы как подключений администраторов для управления всего и всем, так и пользователей к своим компьютерам и терминальным серверам. Компания, которая разработала и поддерживает Teleport, зарабатывает на поддержке и облачной версии. За счёт этого Community версия выглядит очень неплохо. Каких-то ограничений я не нашёл.

Аналог этой системы я описывал ранее - Trasa. Teleport показался более функциональным, удобным, с хорошей документацией.

Сайт - https://goteleport.com/
Исходники - https://github.com/gravitational/teleport
Обзор - https://www.youtube.com/watch?v=6ynLlAUipNE

#remote #управление #devops
👍58👎1
​​Сколько я себя знаю в профессии системного администратора, никаких прокси серверов, кроме Squid не доводилось ни видеть, ни настраивать. Если лет 15-20 назад он стоял почти везде (я даже себе домой ставил локально, когда модемом пользовался), так как трафик экономили.

Сейчас прокси ставят гораздо реже, но тем не менее используют. А в некоторых отраслях в обязательном порядке, но чаще какие-то готовые решения, типа шлюза ИКС или Ideco (и там, и там тоже squid). Я не раз получал заказы как на настройку, так и на перенос или обновление очень старых версий Squid. Люди до сих пор им пользуются, так как бесплатных альтернатив нет.

Squid полностью отвечает поставленным задачам, может быть поэтому и не возникло никаких альтернатив. Вопросы возникают только с управлением и просмотром статистики. Я видел и использовал огромное количество всевозможных решений. Начинал с SAMS. Это был отличный продукт как для управления, так и для статистики. Поддерживалась интеграция с AD. Это было очень удобно. Насколько я понимаю, этот проект давно мёртв.

Неплохой вариант для управления - Webmin. Можно выполнять настройки по добавлению пользователей, ограничению доступа, управлению списками и т.д. Всё через веб, лазить в консоль не надо. Можно научить кого-то далёкого от серверов. Но статистики нет. Для этого надо использовать отдельное решение.

Так же я настраивал работу squid на основе групп AD. Вручную создавались списки доступа в соответствии с группами в AD, потом людей просто по группам перемещали. Тоже управлять мог человек, далёкий от Linux и прокси серверов. Статистику делал с помощью lightsquid. Малофункциональная панель, мне не очень нравилась.

Как-то я издалека начал. Заметку хотел написать по поводу веб панели для формирования и просмотра статистики Squid - Screen Squid. Среди бесплатных решений она наиболее функциональна из тех, что знаю. Работает на базе стандартного стека php+perl+mysql. Проект не заброшен, в июне было очередное большое обновление. Автор панели помогает с настройкой в отдельном чате - https://t.iss.one/screensquid.

Быстро посмотреть и попробовать Screen Squid можно в докере, чтобы не поднимать веб сервер вручную. Есть готовый docker-compose. Нужно понимать, что все логи Screen Squid хранит в SQL базе. При большом трафике будет большой объём базы. Нужно это отдельно продумать заранее. Есть вариант использовать PostgreSQL, вместо MySQL.

Если у кого-то есть Squid в хозяйстве, скажите, чем управляете и что используете для просмотра статистики.

Сайт - https://break-people.ru/cmsmade/?page=scriptology_screen_squid
Исходники - https://sourceforge.net/projects/screen-squid/
Docker - https://gitlab.com/dimonleonov/screensquid-compose

#squid #gateway
👍49👎5