Andrey
Алексей
Ну вот мне и нужен спец по AWX - может он сможет что подсказать.
Алексей
Andrey
Логи какие именно?
Пришлось запустить AWX... Скриншоты с настройками проекта и джобы. Вывод джобы с повышенным verbosity....
Алексей
Lex
Lex
когда вызываю через ansible - то вызывается sudo rsync...лялял
Lex
а работает только если вызвать sudo -E -s rsync
Lex
знает кто как это -E -s передать ?
Pavel
Lex
а как это проверить...попробовал...не работает
Lex
и в vvvv не видно - подставляет он это или нет...
/warn
Привет. Сделал поиск текста в логах способ:
- name: list dir
raw: find /var/log/oozie -type f -name "oozie-cmf-OOZIE-OOZIE_SERVER-azl-*"
register: logs-dir
tags: update-logs
- name: Take log connected to workflow
command: cat {{ item }} | grep "{{ wfid }}"
registed: wf-log
with_items: logs-dir.stdout
Есть ли более удобный способ собрать данные по паретну и сохранить в переменную? Или это не так уж и плохо?
Vadim
/warn
А он разве выдаст n количество строчек? Как я понял по документации он не работает с блоками текста
Andrey
Lex
а много таких серверов с логами?
/warn
с логами 1, на там 740 файлов с логами oozie в которых надо найти все что связанное jobом по ID и дальше обработать в питоне
Lex
а объемы большие?
/warn
А дальше надо еще логи spark и yarn обработать, которых тоже не мало, поэтому надо опитмальный способ
Lex
сильно затратно сделать grep 'need info' *
Lex
?
/warn
по 1000-5000 строчек в каждом логе, зависит от количества jobs за час
Юрий
Привет. А AWX ктонибудь юзает?
Lex
а вообще command: cat {{ item }} | grep "{{ wfid }}"
Lex
это ая-я-яй
/warn
Ну, вот поэтому я и написал
Lex
grep {{ wfid }} {{ item }}
Lex
так вроде как правильнее
Lex
да и воообще
Lex
можно в одну команду объедениить find и grep
Lex
хотя не очень понятно..зачем там нужен find....можно ж по всей папке искать
Lex
просто нужные логи вытащить в одну папку
/warn
Мне не нужны файлы, мне нужен чисто текст
/warn
Я дальше еще буду искать в Spark исходя из логов oozie, и мне надо выдать все нужные логи касательно запроса в одном файле
Lex
эм.....
Lex
а можно еще раз задачу )) и входные данные, а то я запутался немного
Lex
есть сервер
Lex
там есть приличное количество логов
Lex
чего дальше надо сделать )) ?
/warn
Админ дает workflow id из oozie, дальше надо просмотреть все логи oozie, найти нужные записи для этого id, выделить все jobs которые запускал этот workflow и собрать логи из них в Spark.
Передать все в python, что бы дальше уже обработать и оставить только нужные елементы
/warn
Вот такие дела
Lex
т.е. id - ты задаешь при разливке руками через ... например -e 'id=1123'
/warn
Через surwey в ansible tower
/warn
Он передаст аргумент вписаный админом в {{ wfid }}
Lex
тааак ясно
Lex
и на выходе тебе надо получить 1 файлик который содержит все строчки с id = xxxx
Lex
ну или не файлик а переменную...
Lex
а файлы логов лежат в
/var/log/oozie/
Lex
так?
Lex
тогда достаточно сделать
ansible -m shell -a 'grep 'id' /var/log/oozie/*.log' oozie_log_server
Lex
ну и вроде как все будет нормально
Lex
700 файлов bash отработает, думаю, без проблем по звездочке
Lex
так наверно лучше - чтоб ротированные файлы не трогать
/warn
Хм
Tadeusz
'grep 'id' на этом все прервется.
Lex
я имел ввиду туда засунуть переменную
/warn
Lex
думаю ТС переменную засунет туда
Lex
Bandikoot
с чего вдруг?
кавычки
'grep "id" ...'
Lex
аааа ну это мелочи жизни
Bandikoot
но дьявол-то в деталях
Bandikoot
у меня другой кейс с логами был — 6 машин, одинаковые сервисы, логи, которые могут содержать нужные куски по некоему id, ротейтятся и зиппятся каждый час. в итоге родилось такое:
ansible -i ./some_hosts.inv -b -m shell -a 'zgrep -h "some_id" /path/to/dir/with/logs/service.log-YYYY-MM-DD*' all | sed 's/.*rc=.*//;s/non-zero return code//' | sort | less
sort для восстановления хронологического порядка
Lex
норм конструкция, но большие братья велят собирать все логи на 1 сервер
Lex
если их мало
Lex
3, 5, 10 машин
Lex
а если их прям доуя
Lex
то уже kibana..и чтото подобное
Bandikoot
Lex
ну почему
Lex
syslogd вроде демон зовется
Lex
очень неплохо логи собирает
Lex
у нас на тухлой машинке с 300 свичей где то логи на него летели он и не думал ни о чем
Lex
еще и xz по ночам их жал
Lex
наверно все таки rsyslog
Lex
не помню точно )
Bandikoot
когда разрабы сидят рядышком, то перепилить формат под отправку json'ами задача вполне ок. но когда вы в разных организациях, и ты с ними общаешься через дикую систему тикетов, которые через чёрт знает когда будут выполнены и ещё через два чёрта когда попадут на прод после 100500 согласований...
в общем, печально всё)
Lex
аааа ну таки да )