Size: a a a

Админим с Буквой

2018 January 24
Админим с Буквой
Jenkins падает на git describe

configure -> general -> Branch Sources -> add (Advanced clone behaviours) -> save

там есть волшебная галочка "Fetch tags", поскольку теги не получаются, хотя должны (почему нет?), гиту нечего описывать, и он падает. Явное добавление этой настройки решает проблему
источник
Админим с Буквой
Получаем напрямую данные из collectd

считаем, что есть работающий collectd, слушающий socket. Подключиться к нему можно такой командой:
socat - UNIX-CONNECT:/var/run/collectd-unixsock

где данные будут взяты из STDIN и можно вводить команды:
LISTVAL
....
1516812552.430 039a22b3407a/curl_json-wallarm_nginx/derive-abnormal
1516812552.430 039a22b3407a/curl_json-wallarm_nginx/derive-api_errors
1516812552.430 039a22b3407a/curl_json-wallarm_nginx/derive-attacks
1516812552.430 039a22b3407a/curl_json-wallarm_nginx/derive-blocked
1516812552.430 039a22b3407a/curl_json-wallarm_nginx/derive-requests
....
GETVAL 039a22b3407a/wallarm-tarantool/derive-last_request_id
1 Value found
value=4.000108e-01


это можно также немного автоматизировать:
for ((i=1;i<10;i++)); do clear; echo "GETVAL 039a22b3407a/wallarm-tarantool/derive-last_request_id" | socat - UNIX-CONNECT:/var/run/collectd-unixsock; sleep 1s; done

каждую секунду в сокет будет посылаться запрос и получать ответ.

Эти же данные можно получить с помощью утилиты collectd-nagios для nagios из пакета collectd-utils. Утилита делает примерно то же самое, но в более понятной для nagios форме. собственно для этого она и нужна, чтобы получить эти метрики из collectd и отправить в nagios.
root@039a22b3407a:/# collectd-nagios -s /var/run/collectd-unixsock -n wallarm-tarantool/gauge-last_request_id -H $HOSTNAME
OKAY: 0 critical, 0 warning, 1 okay | value=12136.000000;;;;


#collectd #nagios #socket
источник
2018 January 27
Админим с Буквой
отмонтируем var без ребута

Все-таки lvm-прикольная штука. А также рекомендации по созданию нескольких точек монтирования не беспочвенны. У нашего доброго друга nginx'a есть некоторая проблема, что когда он не может писать в var, он просто падает и все. Переполнение может возникнуть, когда прилетает одномоментно тонна логов и место просто заканчивается. В связи с этим было принято решение создать точку монтирования на /var, а старый /var смонтировать на /var/log. Сделать это совсем уж без даунтайма нельзя, но, благо пока один upstream недоступен вся нагрузка идет на другие. задача лишь плавно погасить клиентские сессии.

первое что нужно сделать - создать новый раздел, сделать на нем ext4, смонтировать и отсинкать на него содержимое /var, но без логов.
lvcreate -L 20G -n var-root vg_system
mkfs.ext4 /dev/mapper/vg_system-var--root
mount /dev/mapper/vg_system-var--root /mnt/
rsync -avz --exclude 'log' /var/ /mnt/
mkdir /mnt/log
umount /mnt


теперь наш диск готов для монтирования на место /var. Но, еще нужно воссоздать структуру директорий /var/log/* на новом диске (текущий /var), т.к. когда он смонтируется на /var/log, логи будут на уровне /var/log/log. для этого можно использовать rsync с фильтрами, но я заленился читать ман и написал скрипт. скрипт ищет все папки в /var/log, узнает их права и владельца и создает такую же структуру на уровне /var

#!/bin/bash
echo ""
for i in $(find /var/log -type d -printf '%d\t%P\n' | sort -r -nk1 | cut -f2-); do
 mkdir -p /var/temp/$i
 chown $(stat -c %u /var/log/$i):$(stat -c %g /var/log/$i) /var/$i
 chmod $(stat -c %a /var/log/$i) /var/$i
 echo ""
done


Теперь дело за малым - отмонтировать старый /var. Для этого нужно погасить все службы, которые им пользуются.
lsof /var

и далее скурпулезно начинаем гасить службы, которые пользуются этим разделом. В самую последнюю очередь - nginx, поскольку именно через него ходят клиенты.
nginx -s quit

таким образом можно погасить nginx плавно завершая клиентские сессии и больше не принимая новых. соседний сервер приянл на себя несколко сотен мегабит клиентского траффика, но вполне его выдержал без проблем. После того как вывод lsof становится пустым можно перемонтировать тома. после чего внести новую запись в fstab. проверить fstab и mtab на предмет того что текущее монтирование соответствует порядку монтирования при загрузке. После чего можно стартануть все службы обратно и убедиться что все они пишут логи так как должны и у них нет ошибок. Для успокоения можно ребутнуть сервер целиком, а можно и не ребутать. по факту работы уже закончены.
источник
Админим с Буквой
А еще я ухожу на недельку в отпуск, поэтому в ближайшие дни ничего писать не буду, так что не думайте что я пропал:) А вообще, остальные господа с правом написания сообщений в канал, могли бы заполнить этот пробел в мое отсутствие, не ленитесь)
источник
2018 January 28
Админим с Буквой
Меня опубликовали))
https://vk.com/wall-14448489_19158
источник
2018 January 30
Админим с Буквой
Леннарт Поттеринг представил релиз системного менеджера systemd 237. Из новшеств можно отметить поддержку VPN WireGuard, режим "watch-bind" в sd-bus, возможность создания временных юнитов .path и .socket, добавление опции "--grep" в journalctl.
https://www.opennet.ru/opennews/art.shtml?num=47982
источник
Админим с Буквой
В феврале в московском офисе Яндекса состоится первая в этом году встреча it sec pro course. На встрече выступят эксперты из Digital Security, Qrator Labs и Positive Technologies. Они расскажут о разработке смарт-контрактов, уязвимостях Meltdown и Spectre, атаках по протоколу DHCP, а также о построении формальных моделей уязвимостей.

Участие бесплатное, но нужно заранее зарегистрироваться. Количество мест ограничено.

https://events.yandex.ru/events/yagosti/09-feb-2018/
источник
2018 February 01
Админим с Буквой
Школа информационной безопасности
1 февраля 2018 года открывается набор в Школу информационной безопасности Яндекса в Москве. Мы приглашаем студентов старших курсов и начинающих специалистов.


Для поступления нужно знать хотя бы один язык программирования (JS, Python, C++, Java), на начальном уровне разбираться в принципах построения и работы веб-приложений, знать принципы работы операционных систем и сетевой инфраструктуры, а также основные типы атак и виды уязвимостей.
Слушателей ждут лекции и практические задания по инфраструктурной и продуктовой безопасности, которые проведут специалисты Яндекса. Участникам расскажут о безопасной разработке приложений, форензике, построении безопасной сетевой и серверной инфраструктуры в Яндексе.
Программа рассчитана на один месяц. Занятия будут проходить в будни по вечерам со 2 по 27 апреля 2018 года в московском офисе компании. Иногородним участникам мы оплатим проезд и проживание в хостеле.


Обучение в Школе завершится экзаменом. Самые активные и успешные участники получат предложения пройти стажировку…
источник
2018 February 03
Админим с Буквой
источник
2018 February 07
Админим с Буквой
grep show lines after match

Как пример того, как заставить вывести несколько строчек следющих за той, которую искали:
kubectl describe nodes | grep -A 2 -e "^\\s*CPU Requests"


-A после
-B до
-C с обеих сторон

  CPU Requests  CPU Limits
 ------------  ----------
 550m (55%)    0 (0%)    
--
 CPU Requests  CPU Limits
 ------------  ----------
 360m (36%)    100m (10%)
--
 CPU Requests  CPU Limits
 ------------  ----------
 0 (0%)        0 (0%)


(output truncated)

#kubernetes #grep
источник
2018 February 09
Админим с Буквой
Напоминаю зарегестрировавшимся на встречу группы it sec в яндексе, что встреча сегодня в 18:00 в московском офисе яндекса
источник
Админим с Буквой
дока по билду пакетов в дебиане

https://www.debian.org/doc/manuals/debmake-doc/debmake-doc.en.pdf

#reading #thirdparty #debian #packages
источник
2018 February 10
Админим с Буквой
Вспомнилось:) Дневник тестировщика. Время на чтение: 20 мин.

http://samlib.ru/b/brigadir_j_a/test.shtml

#oldschool
источник
2018 February 11
Админим с Буквой
Простой совет для рубрики «вдруг кто не знал».

Часто можно увидеть, как админы копируют закрытые ключи на сервера, чтобы оттуда, если что, подключиться к другим тачкам внутренней инфраструктуры. Ну или к git.
Не надо так!

Достаточно написать аргумент -A при подключении по ssh, чтобы пробросить агента аутентификации.

Ну если не понял:

ssh your.server -A

А с него уже ssh other.server.

Если хочешь пробрасывать агент без запроса, добавляй в
~/.ssh/config строку ForwardAgent yes

#ssh
источник
2018 February 13
Админим с Буквой
источник
Админим с Буквой
это будет мой любимый стикер=)
источник
Админим с Буквой
Переслано от Peter Destructive
Всем доброго времени суток! ) Открыта регистрация на индивидуальный CTF NeoQUEST-2018: https://neoquest.ru/2018/
Соревнование продлится с 5 по 16 марта, таски связаны с поиском уязвимостей, reverse engineering, безопасностью Web и Android, криптографией, OSINT и многим другим!
Лучшим участникам – призы и приглашение на «Очную ставку». По всем вопросам пишите на support@neoquest.ru или Дарье @ohsummerme !
Больше информации о NeoQUEST – на официальном сайте www.neoquest.ru и в группе ВК: https://vk.com/neoquest
источник
Админим с Буквой
Стрим о кубернетесе
LIVE🔴
https://www.youtube.com/watch?v=CV1lnajST9w
источник
2018 February 15
Админим с Буквой
Ansible inventory in yaml notation
Сегодня я узнал что-то новое. Таким открытием для меня был формат hosts файлов для ansible. поговаривают, что этот формат работал когда-то давным-давно. Потом его закопали, а некоторое время назад (год или больше) он снова всплыл.

webservers:
 hosts:
   web1.example.com:
     ansible_host: 192.168.0.1
     list_variable:
     - www.company.com
     - www1.company.com
     - www2.company.com
   web2.example.com:
     ansible_host: 192.168.0.2
     web2_variable: value
 vars:
     variable: value


На одном уровне находятся hosts и vars, что как бы намекает, что эти vars будут для всех hosts этой группы. а уже в самом хосте можно указывать любые другие переменные, специфичные для него. Лично мне этот формат пришелся больше по душе, чем классический:

[webservers]
web1.example.com ansible_host=192.168.0.1 list_variable=[-www.company.com -www1.company.com -www2.company.com]
testrun-worker2 ansible_host=192.168.0.2 web2_variable="value"

[webservers:vars]
variable=value


Оба варианта равноправны и с помощью обоих из них можно сделать одно и тоже. Преимущества поэтому просто в удобстве той или иной записи - выбирайте удобный для вас формат.

Вот список правил, по которым формируется yaml-нотация:

Comments begin with the '#' character
Blank lines are ignored
Top level entries are assumed to be groups, start with 'all' to have a full hierarchy
Hosts must be specified in a group's hosts:
and they must be a key (: terminated)
groups can have children, hosts and vars keys
Anything defined under a host is assumed to be a var
You can enter hostnames or IP addresses
A hostname/IP can be a member of multiple groups

https://github.com/ansible/ansible/blob/devel/examples/hosts.yaml

#ansible
источник
2018 February 17
Админим с Буквой
Переслано от 💭 Руслан Прохоров...
источник