Алексей
Ну вот мне и нужен спец по AWX - может он сможет что подсказать.
Andrey
Ну вот мне и нужен спец по AWX - может он сможет что подсказать.
Не спец по awx. Но наверняка backend делает примерно все то же самое, запуская плейбук. Логи то можете показать?
Andrey
Логи какие именно?
Пришлось запустить AWX... Скриншоты с настройками проекта и джобы. Вывод джобы с повышенным verbosity....
Lex
когда вызываю через ansible - то вызывается sudo rsync...лялял
Lex
а работает только если вызвать sudo -E -s rsync
Lex
знает кто как это -E -s передать ?
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 Есть ли более удобный способ собрать данные по паретну и сохранить в переменную? Или это не так уж и плохо?
/warn
А он разве выдаст n количество строчек? Как я понял по документации он не работает с блоками текста
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
700 файлов bash отработает, думаю, без проблем по звездочке
Ну там 120 рама на серваке, должно тянуть
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
норм конструкция, но большие братья велят собирать все логи на 1 сервер
ну да, согласен, но это будет совсем нескоро видимо
Lex
ну почему
Lex
syslogd вроде демон зовется
Lex
очень неплохо логи собирает
Lex
у нас на тухлой машинке с 300 свичей где то логи на него летели он и не думал ни о чем
Lex
еще и xz по ночам их жал
Lex
наверно все таки rsyslog
Lex
не помню точно )
Bandikoot
когда разрабы сидят рядышком, то перепилить формат под отправку json'ами задача вполне ок. но когда вы в разных организациях, и ты с ними общаешься через дикую систему тикетов, которые через чёрт знает когда будут выполнены и ещё через два чёрта когда попадут на прод после 100500 согласований... в общем, печально всё)
Lex
аааа ну таки да )