Я пытаюсь написать сценарий для сбора журналов за последние 24 часа из файлов журналов nginx. Мой сценарий собирает все журналы из файла журнала, и мне нужны только ошибки за последние 24 часа.
Сценарий для сбора данных за последние 24 часа nginx access.log
и error.log
awk -vDate=`date -d'now-24 hours' +[%d/%b/%Y:%H:%M:%S` '$4 > Date {print Date, $0}' /var/log/nginx/access.log > /data/production_logs/nginxaccess.log
awk -vDate=`date -d'now-24 hours' +[%d/%b/%Y:%H:%M:%S` '$4 > Date {print Date, $0}' /var/log/nginx/error.log > /data/production_logs/nginxerror.log
2-й сценарий:
egrep 'Error|error|Exception|failed|Unhandled|err|Err' /data/production_logs/myapp.log > /data/production_logs/myapp_error.log
Пример сценария поиска, как показано ниже:
egrep 'Error|error|Exception|failed|Unhandled|err|Err' /var/log/nginx/error.log > /var/log/nginx/last24hourlogs.log
Исключение ошибки grep вверху только из журналов за последние 24 часа и сохраните его в виде last24hourlogs.log
Требуемый формат журнала:
2016/11/27 13:55:00 [error] 6822#0: *14569 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 223.182.171.4, server: myappserver
2016/12/03 12:51:26 [error] 6820#0: *19094 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 157.48.95.8, server:
tail -f /home/example.com/.forever/bdapp.log
2016/12/19 12:30:51 [error] 2147#0: *5647 open() "/usr/share/nginx/html/example.com/myapp_email-templates/social-01.png" failed (2: No such file or directory), client: 66.249.84.191, server: example.com, request: "GET /myapp_email-templates/social-01.png HTTP/1.1", host: "example.com"
2016/12/19 12:30:51 [error] 2147#0: *5646 open() "/usr/share/nginx/html/example.com/myapp_email-templates/social-02.png" failed (2: No such file or directory), client: 66.249.84.128, server: example.com, request: "GET /myapp_email-templates/social-02.png HTTP/1.1", host: "example.com"
121-- -451551- Я использовал python / robotframework для запуска теста сервала, и задание запускается из Jenkins. Очень странно, неожиданно запускаемый робот фреймворк выдает ошибку уже в самом начале теста.
Но это случается случайно только днем. И я ничего не изменил, тест можно было начать заново. Я попытался найти, что может вызвать ошибку:
[ERROR] Выполнение остановлено пользователем.
Обнаружено только, что это вызвано system.exit () или прерыванием клавиатуры. Я понятия не имею об этом, в моем скрипте python этого нет.
Вопрос:
Просто найденный sys.exit (1) в блоке кода обработки исключений. Это не даст Вам описания, если Вы захотите иметь больше детали исключения, используйте здание робота для повышения excepions.