выгрузка архива логов что это
Лог: что это, зачем нужен и где его найти?
Зачем нужны лог файлы?
В некоторых ситуациях каждому пользователю ПК или сервера требуется проверить логи. Рассмотрим зачем именно нужны лог файлы.
1. Логи могут понадобится, если нужно узнать статистику по сайту. Например, логи сайтов отображают следующую информацию:
а) статистику посещаемости
б) точки входа и выхода с сайта
в) поисковые запросы, по которым приходят посетители, и наиболее популярные страницы сайта
г) поисковики, страны и браузеры посетителей
д) уровень конверсии и страницы сайта, которые никто не посещает
е) сайты, которые ссылаются на этот ресурс.
2. В случае вирусов или Дддос атаки на сайт, логи помогут быстрее выяснить причину и соответственно помочь устранить ее.
3. Для восстановления доступов испольузются логи авторизации, которые собирают данные о попытках входа.
4. В случае ошибок в работе определенного ПО, устройства или ОС, когда необходимо определить источник проблемы.
Логи (server logs) помогают контролировать работу серверной машины и в случае возникновения ошибок быстро их находить и устранять. Логи используются практически везде, где ведется запись и прослеживание истории программного процесса. В первую очередь это необходимо в целях безопасности. Для того, чтобы найти и проанализировать логи, используют специально предназначенное для этого ПО. Некоторые логи могут обладать очень большим размером, поэтому время от времени их нужно очищать. Лог файл показывает события и его непосредственный источник. Причиной события может быть:
Какие есть виды логов?
На практике видов логов может быть несколько. Рассмотрим каждый из них.
Как найти логи?
Место, где находятся логи зависит от используемого ПО, заданных настроек и пути, который заведомо установил администратор сервера.
Если вам нужно найти лог файлы сервера или хостинга, вы можете обратится и получить подробную консультацию у вашего хостинг-провайдера, где размещается ваш сайт.
Названия файлов: журнал ошибок – error.log; журнал доступов – log; основной журнал – syslog; журнал загрузки системы – dmesg.
В ОС Windows свой способ структуризации логов, в котором выделяют уровни событий: подробности; сведения; предупреждение; ошибка; критический. Пользователь может сортировать и фильтровать записи, в зависимости от того, что именно ему нужно.
Что делать с логами?
Лог файлы могут понадобится во многих ситуациях при работе с сайтов, ПК или сервером. Но обратите внимания, что логи не хранятся вечно, поэтому если появилась необходимость проверить их, то следует это делать своевременно. Например, часто хостинг-провайдеры хранят логи до 14 дней, а далее они удаляются и записываются новые. Поэтому если ваш сайт взломали более нескольких недель назад, то установить причину по логам не получится, если логи уже удалены.
Даже беглый анализ логов может помочь выяснить причины чрезмерной нагрузки на сайт, поэтому если вам нужна помощь, чтобы разобраться с логами и исправить возникшие ошибки работы сервера, обращайтесь в техническую поддержку ГиперХост.
Включение и выключение записей логов на сервере происходит в панели управления. В большинстве случаев эта функция доступна в разделе панели Журнал или Логи. Более детально об этом вы можете уточнить непосредственно у вашего хостера.
Выбор архиватора для бэкапа логов
В этой статье я хочу рассказать о том, как выбирал архиватор для сжатия логов нашей фронт-офисной системы.
Подразделение, в котором я работаю, занимается разработкой и сопровождением единой фронт офисной системы Банка. Я отвечаю за ее сопровождение, мониторинг и DevOps.
Наша Система — это высоконагруженное приложение, ежедневно обслуживающее более 5 000 уникальных пользователей. На сегодняшний день — это «монолит» со всеми своими достоинствами и недостатками. Но сейчас активно идет процесс выноса функционала в микросервисы.
Ежедневно наша система генерирует более 130 ГБ «сырых» логов и, несмотря на то, что мы используем ENG стек (Elasticsearch Nxlog Graylog), файловые логи содержат гораздо больше информации (например, stack trace ошибок), поэтому требуют архивирования и хранения.
Так как место хранения ограничено, встаёт вопрос: «А какой архиватор лучше всего справится с этой задачей».
Для решения этого вопроса я написал скрипт на языке PowerShell, который произвел анализ за меня.
Задача скрипта вызвать архиваторы rar, 7z и zip с разными параметрами компрессии, посчитать скорость формирования архива, а также занимаемое место на диске.
Подготовительные работы:
Разбираем подробнее
ArchFileName | Compression Level | Extension | Size | Time | Size % | Time % | Result % |
---|---|---|---|---|---|---|---|
ArchFileName8.7z | -mx=8 | 7z | 26511520 | 62404 | 100 | 1674 | 1574 |
ArchFileName9.7z | -mx=9 | 7z | 26511520 | 64614 | 100 | 1733 | 1633 |
ArchFileName7.7z | -mx=7 | 7z | 28948176 | 52832 | 109 | 1417 | 1308 |
ArchFileName6.7z | -mx=6 | 7z | 30051742 | 37339 | 113 | 1002 | 889 |
ArchFileName5.7z | -mx=5 | 7z | 31239355 | 35169 | 118 | 943 | 825 |
ArchFileName4.rar | -m4 | rar | 33514693 | 11426 | 126 | 306 | 180 |
ArchFileName5.rar | -m5 | rar | 33465152 | 12894 | 126 | 346 | 220 |
ArchFileName3.rar | -m3 | rar | 33698079 | 9835 | 127 | 264 | 137 |
ArchFileName2.rar | -m2 | rar | 34399885 | 8352 | 130 | 224 | 94 |
ArchFileName4.7z | -mx=4 | 7z | 38926348 | 6470 | 147 | 174 | 27 |
ArchFileName3.7z | -mx=3 | 7z | 44545819 | 5889 | 168 | 158 | 10 |
ArchFileName2.7z | -mx=2 | 7z | 51690114 | 4754 | 195 | 128 | 67 |
ArchFileName1.rar | -m1 | rar | 53605833 | 4600 | 202 | 123 | 79 |
ArchFileName1.7z | -mx=1 | 7z | 57472172 | 3728 | 217 | 100 | 117 |
ArchFileName2.zip | Optimal | zip | 65733242 | 14025 | 248 | 376 | 128 |
ArchFileName1.zip | Fastest | zip | 81556824 | 9031 | 308 | 242 | 66 |
ArchFileName | Compression Level | Extension | Size | Time | Size % | Time % | Result % |
---|---|---|---|---|---|---|---|
ArchFileName3.7z | -mx=3 | 7z | 44545819 | 5889 | 168 | 158 | 10 |
ArchFileName4.7z | -mx=4 | 7z | 38926348 | 6470 | 147 | 174 | 27 |
ArchFileName1.zip | Fastest | zip | 81556824 | 9031 | 308 | 242 | 66 |
ArchFileName2.7z | -mx=2 | 7z | 51690114 | 4754 | 195 | 128 | 67 |
ArchFileName1.rar | -m1 | rar | 53605833 | 4600 | 202 | 123 | 79 |
ArchFileName2.rar | -m2 | rar | 34399885 | 8352 | 130 | 224 | 94 |
ArchFileName1.7z | -mx=1 | 7z | 57472172 | 3728 | 217 | 100 | 117 |
ArchFileName2.zip | Optimal | zip | 65733242 | 14025 | 248 | 376 | 128 |
ArchFileName3.rar | -m3 | rar | 33698079 | 9835 | 127 | 264 | 137 |
ArchFileName4.rar | -m4 | rar | 33514693 | 11426 | 126 | 306 | 180 |
ArchFileName5.rar | -m5 | rar | 33465152 | 12894 | 126 | 346 | 220 |
ArchFileName5.7z | -mx=5 | 7z | 31239355 | 35169 | 118 | 943 | 825 |
ArchFileName6.7z | -mx=6 | 7z | 30051742 | 37339 | 113 | 1002 | 889 |
ArchFileName7.7z | -mx=7 | 7z | 28948176 | 52832 | 109 | 1417 | 1308 |
ArchFileName8.7z | -mx=8 | 7z | 26511520 | 62404 | 100 | 1674 | 1574 |
ArchFileName9.7z | -mx=9 | 7z | 26511520 | 64614 | 100 | 1733 | 1633 |
Отлично, архиватор и степень сжатия выбраны, теперь давайте заархивируем логи!
Нам нужно решить следующие задачи:
Здесь я не буду расписывать каждую строчку скрипта(описано в комментариях), а остановлюсь лишь на функции Set-MMTCore, которая позволяет нам вычислить количество потоков для 7z, чтобы не грузить процессор на нашем сервере:
Без использования функции Set-MMTCore
Видно, что CPU упирается в 100%. Это значит, что мы неизбежно вызовем проблемы на сервере, а также получим алерт от системы мониторинга.
При использовании функции Set-MMTCore
Видно, что CPU равен 30-35%. Это значит, использование функции Set-MMTCore позволяет архивировать файлы без влияния на работу сервера.
Логи терминала МТ4 – где их смотреть и зачем они нужны?
Добрый день, господа трейдеры!
Многие из вас уже попробовали себя в ручной торговле на форекс и, скорее всего, у большинства пока не получается. Ничего страшного, ведь любой навык, даже такой, как торговля на финансовых рынках, приходит с опытом. Но зарабатывать, конечно же, всем хочется уже сейчас. Именно этим и объясняется повышенный интерес к автоматизированным системам торговли или, по-простому, к ботам, или советникам.
Если вы уже участвовали каким-то образом в разработке торговых советников или читали соответствующий раздел нашего форума, где несколько программистов-энтузиастов разрабатывают экспертов, а остальные пользователи помогают им в этом по мере своих сил, вы наверняка обратили внимание, что, когда кто-то находит ошибку в работе советника, от него тут же требуют какие-то загадочные «логи». Что же это такое, как их у себя найти и зачем они нужны – мы с вами сегодня и узнаем.
Лаборатория ProfitFX
Как вы наверняка знаете, в этом разделе форума содержится довольно много тем, каждая из которых посвящена разработке того или иного советника. Кто их создает и зачем? Ответ прост – эти темы создают такие же пользователи, как и вы, которые изучили язык mql4 и научились программировать советники. И когда возникает интересная идея для нового форекс робота – форумчане делятся ей с общественностью.
Выгод тут несколько. Во-первых, есть немалый шанс получить дельные советы по доработке алгоритма от более опытных участников форума, подчас довольно неочевидные и эффективные. Во-вторых, сама оптимизация и подбор параметров занимает довольно длительное время, а распределив инструменты можно произвести оптимизацию намного быстрее. И в-третьих, другие пользователи помогают программисту с тестами на демо и реальных счетах, отлавливают ошибки и находят непредвиденные проблемы в процессе использования робота. Естественно, выгода для всех пользователей на поверхности – они получают в итоге рабочий и способный зарабатывать советник, программист получает интересные идеи и ускорение разработки.
Логи терминала
Все мы люди, и программисты в том числе. А люди, бывает, совершают ошибки. И советников это, конечно же, тоже касается. Бывают ошибки, которые не пропускает сам компилятор – программа, в которой пишутся советники. Такие баги легко устранимы – их очень легко найти. В конце концов, советник просто не скомпилируется, пока подобная ошибка не будет устранена. А бывают гораздо более коварные ошибки – на уровне логики. Их компилятор не считает за таковые и спокойно пропускает, поэтому они находятся в процессе эксплуатации советника.
При разработке программного обеспечения поиском ошибок занимаются тестировщики. У программистов форума, конечно же, таких людей нет, поэтому этой работой занимаются простые пользователи. И, как я уже говорил, у них есть стимул – в конце работы они получают качественного бота (или не получают, если идея себя не оправдала и заставить работать в прибыль конкретную систему так и не получилось).
Надо признать, ошибки в логике советников – не редкость и сообщений от пользователей об ошибках в работе советников немало. Но довольно часто эти сообщения носят примерно следующий характер: «Сегодня бот открыл по USDJPY продажу, хотя не должен был/должен был открыть покупку» или нечто подобное. Программисты хоть и не глупые люди, но даром телепатии не обладают (утверждать не берусь – просто догадки). Поэтому по таким сообщениям, даже снабженным скриншотами, что-либо понять трудно. Именно поэтому вы и видите после таких сообщений призывы к уважению чувств программистов и требования прикрепить логи терминала.
Типы лог файлов терминала
Так что же все-таки такое эти логи? Когда разбивается самолет, все сразу бросаются искать так называемый «черный ящик», который даст все ответы на причины произошедшей катастрофы. Это не значит, что в «черном ящике» имеется только эта информация – в него записывается абсолютно все данные, начиная со взлета и заканчивая посадкой. Логи – это что-то вроде «черного ящика» для терминала.
В самом терминале вы можете найти три источника для логирования. Первый из них – журнал тестера стратегий:
Сами файлы логов находятся в папке терминала /tester/logs. В них содержится вся информация по процессу тестирования советника и если ошибки возникают именно на этапе тестирования или оптимизации робота – смотреть нужно именно этот тип логов. Выглядит лог-файл так:
В этих логах вы найдете информацию о том, как протекало тестирование или оптимизация эксперта, какие данные были использованы и все ошибки, связанные с этим. Все сообщения об ошибках экспертов содержат специальный код, по которому можно определить причину ошибки. Например, те, у кого мало оперативной памяти на рабочей машине, могут увидеть следующее сообщение: “HistoryBase: not enough memory”. Дело в том, что тестер все котировки, необходимые для проведения тестов загружает в оперативную память. И если вы тестируете за длительный срок, объем данных вполне легко переваливает за 8 Гб. Поэтому, когда работает одновременно 4-6 терминалов, такое сообщение будет периодически появляться.
Все, что нужно сделать – закрыть терминал, очистить оперативную память и попробовать снова. Сообщение “optimization stopped” говорит о том, что оптимизация завершена. Также обычно указывается время, которое она заняла и количество проходов. Еще одно сообщение: “TestGenerator: spread set to 30” указывает на величину спреда, которая была выставлена для теста. Поэтому, если у вас сильно красивые результаты, обратите внимание, не поставили ли вы неадекватно маленький спред для вашего теста. Также в начале теста в журнал записываются все параметры эксперта (“inputs”). Ну и, конечно же, все операции с ордерами также будут отображены в этом логе. И последнее – в лог записываются и все ошибки, которые происходят при тестировании и оптимизации, по кодам которых можно определить причину их возникновения.
Когда ваши советники уже прикреплены к графикам и работают в режиме реального времени на вашем счете, всю информацию по их работе вы можете увидеть в окне «Терминал» на вкладке «Эксперты» (это второй источник логов):
Этим записям соответствуют логи, находящиеся в папке терминала /mql4/logs. Тут вы сможете найти всю информацию по работе экспертов, все ошибки и любые другие события и сообщения. Вот как выглядит этот лог:
Тут вы в основном увидите различные сообщения экспертов (отладочные и информационные), сообщения о запуске (initialized, loaded successfully) и остановке (removed, uninit) экспертов и сообщения об ошибках. Все сообщения об ошибках экспертов содержат специальный код, по которому можно определить причину ошибки. Основная часть сообщений появляется тут по вине самих экспертов – часто в коде советника авторы оставляют специальную функцию, которая выводит сообщения о различных событиях в лог-файл. В основном это необходимо для отладки, поэтому многие советники снабжены параметром, который отключает подробное логирование работы эксперта. Параметр этот, как правило, называется Debug или производные от этого слова и содержит только два значения: true/false.
И третий тип логов – общий для терминала:
На вкладке «Журнал» окна «Терминал» вы можете найти основные события, связанные с работой терминала и вообще все события, что были на этом счете. Это – открытия, закрытия, модификация ордеров (открытых как вручную, так и при помощи советников), а также различные ошибки вроде потери связи с сервером. Вот как выглядит этот лог:
Эти логи содержат также записи об обновлениях терминала (“LiveUpdate”), о смене паролей (“investor password changed”), смене счетов, обрывах связи, входе и выходе, установке (“loaded successfully”) и удалении с графика экспертов (“removed”) и прочую сервисную информацию.
Поэтому если вы пытаетесь понять, почему у всех, кто использует какой-либо советник ордер открылся, а у вас нет, в первую очередь причину нужно искать тут (возможно, был обрыв связи с сервером брокера). Найти эти логи проще простого. Они находятся в папке терминала /logs.
Заключение
Любой современный терминал, предназначенный для торговли на финансовом рынке – достаточно хорошо продуманный программный продукт. Это инструмент трейдера и от того, насколько хорошо вы знаете его функционал – зависит ваш успех в торговле. Знаний о том, что из себя представляют различные инструменты анализа рынка очень важны, но если вы не будете иметь представление о технической стороне работы на рынке – ваш взгляд на рынок будет не совсем полным.
Какие виды лог-файлов бывают
Вебмастерам нужно получать информацию о том, как работает их сайт и сервер. Это можно узнать из log-файлов.
На виртуальном хостинге владельцы сайтов работают с логами web-сервера, доступ к которым предоставляет провайдер.
На VPS/VDS и выделенных серверах можно работать с самыми разнообразными логами, которые записывают все работающие на сервере службы.
Информация, хранящаяся в лог-файлах, служит основой для диагностики работы различных системных служб, а также для разнообразной аналитики, например, о посещаемости сайта или о попытках взлома системы.
На платформе Windows также имеется служба журналирования событий, но там информация записывается не в текстовые файлы, а в журналы специального формата, доступ к информации которых возможен через службу Event Viewer.
Log-файлы и виртуальный хостинг
Провайдер хостинга обеспечивает доступ к лог-файлам web-сервера через панель управления. Например, у провайдера Beget это выглядит так.
Также доступ к лог-файлам конкретного сайта можно получить через файл-менеджер (или по протоколу FTP).
У провайдера Beget в менеджере файлов их можно найти здесь.
При использовании популярной панели ISPmanager log-файлы доступны пользователю и располагаются в каталоге /log. Для каждого из сайтов присутствуют два лог-файла:
Виды лог-файлов
Все программы и сервисы Linux ведут log-файлы.
Log-файлы на сервере хранятся в специальном каталоге /var/log, внутри которого создаются отдельные файлы и папки для того или иного сервиса.
Различие в хранении log-файлов по версиям Linux
Дистрибутивы Linux имеют разный набор программного обеспечения и различные правила хранении log-файлов. В настоящее время наибольшее распространение получили два семейства дистрибутивов Linux:
Конкретная версия операционной системы для VPS/VDS выбирается у провайдера в личном кабинете пользователя перед заказом виртуального сервера.
Общие принципы для всех систем Linux одинаковы: log-файлы хранятся в папке /var/log. Разница проявляется лишь в наименовании отдельных файлов и каталогов для определенных подсистем, что зависит не только от версии Linux, но и от используемой панели управления хостингом.
Системные log-файлы
Опишем наиболее важные системные лог-файлы, хранящиеся в каталоге /var/log.
1. Общий системный журнал, в зависимости от версии Linux, записывается в файлы /var/log/syslog (Debian) или /var/log/messages (Redhat). В него пишется информация, начиная от старта системы:
2. Логи авторизации: /var/log/auth.log (Debian) или /var/log/secure (Redhat). Сюда записывается информация об авторизации пользователей, включая неудачные попытки входа в систему.
3. /var/log/dmesg и /var/log/kern.log— сообщения ядра и драйверов устройств.
Логи web-сервера
Как правило, сайты на сервере работают под управлением web-сервера Apache или Nginx. Также их можно применять на сервере вместе, что позволит использовать сильные стороны каждой программы.
Также к логам веб-сервера относятся лог-файлы интерпретатора PHP (php-fpm) и файлы ошибок PHP.
Логи web-сервера Apache
Web-сервер Apache создает два лог-файла:
Для удобства эти файлы могут создаваться по отдельности для каждого сайта, размещенного на сервере. Тогда они имеют названия “domain.name_access.log” и “domain.name_error.log”.
На Linux-системах семейства Debian логи Apache хранятся в каталоге /var/log/apache2, для систем, основанных на RedHat в /var/log/httpd.
Для чтения информации из log-файла можно использовать команду “cat имя-лог-файла” или “tail имя-log-файла”.
В зависимости от конкретной панели управления файлами, внутри этого каталога могут находиться папки domains или domlogs, в которых будут записываться лог-файлы отдельно для каждого сайта.
Логи web-сервера Nginx
Если Nginx настроен для обслуживания нескольких сайтов, то его лог-файлы записываются отдельно для каждого сайта.
Пример: вывод командой “ls *.log” списка log-файлов web-сервера nginx в папке /var/log/nginx/domains (на снимке экрана видно, что там хранятся файлы сразу нескольких сайтов)
Логи интерпретатора PHP
Если интерпретатор PHP работает отдельно в виде сервера PHP-FPM, то его логи хранятся на сервере также отдельно в каталоге /var/log/php-fpm. Если PHP используется как модуль Apache или через подсистему CGI, то его сообщения об ошибках записываются в лог Apache (error.log).
Ротация log-файлов
Для посещаемого сайта размеры лог-файлов могут достигать сотен мегабайт. Рано или поздно они начинают занимать много дискового пространства, поэтому на серверах Linux используется механизм ротации log-файлов.
Как это работает?
1. Данные о посетителях (или ошибках) сайта записываются в файл с обычным названием, например, access.log.
2. Раз в сутки (обычно в ночное время) этот файл автоматически переименовывается в “access.log.1” и сжимается архиватором Gzip.
3. Имя файла становится вида “access.log1.gz”.
4. Вместо этого файла web-сервер начинает записывать информацию в новый файл access.log.
5. Еще через сутки архивный файл “access.log.1.gz” переименовывается в “access.log.2.gz”, и вместо него создается новый архив “access.log.1.gz” из текущего log-файла web-сервера и так далее.
Всего на сервере хранятся сжатые log-файлы за последний месяц.
Пример: на снимке экрана виден список log-файлов web-сервера. Среди них присутствуют как текущие файлы access.log и error.log за сегодняшний день, так и файлы за предыдущие дни access.log.1, error.log.1 и так далее.
Таким образом, ротация файлов помогает сохранять место на диске. Зная общий принцип, по которому именуются сжатые лог-файлы, системный администратор может найти нужную информацию за конкретный период времени.
Log-файлы почтовой системы
Log-файлы FTP-сервера
Вариантов программного обеспечения для FTP Linux много, но принцип хранения log-файлов примерно одинаковый. В папке /var/log создаются log-файлы FTP-сервера, например, vsftpd.log или proftpd.log. Также практически всеми FTP-серверами создается файл xferlog, в котором записывается информация о файлах, скачанных с сервера или закачанных на сервер по протоколу FTP.
Log-файлы сервера базы данных
Популярный сервер базы данных MySQL также ведет log-файл “mysqld.log”. Он располагается в папке /var/log/mysql или /var/log/mariadb, в зависимости от используемой версии MySQL.
Также сервер MySQL может создавать в этой папке файл отладки медленных запросов к базе данных. Обычно он называется “mysql_slow.log”.
Пример: содержимое файла медленных запросов MySQL. Вывод содержимого log-файла командой “tail mysql_slow.log”
Использование log-файлов для отладки работы web-сайтов
Web-сервер Apache (также и Nginx) создают файл, который может называться просто error.log (error_log). В случае большого количества web-сайтов на сервере он будет иметь вид domain.ru.error.log.
Если, например, конкретный web-сайт показывает в браузере ошибку 500, то можно зайти в этот файл и посмотреть, что именно происходит на сервере.
Пример: просмотр лог-файла ошибок web-сервера из панели провайдера Beget через файл-менеджер
После открытия log-файла пользователь видит, что в исходном коде скрипта PHP допущена ошибка, которую надо исправить.
Например, если пользователь применяет панель VestaCP на своем виртуальном сервере, то для просмотра лог-файлов для сайта mysite.ru ему необходимо в командной строке сервера зайти в каталог /home/admin/web/mysite.ru/logs.
Пример: содержимое рабочего каталога панели VestaCP. Виден каталог logs, в котором хранятся log-файлы
Последние строки лог-файла будут содержать сообщение об ошибке, например:
Пример: просмотр сообщения об ошибках в файлах error.log с помощью команды tail: В этом конкретном примере пользователь видит в записях log-файла, что происходит ошибка интерпретатора PHP при обращении к базе данных MySQL.
Использование log-файлов для аналитики
Любому владельцу сайта нужно знать аудиторию своих посетителей. Эта информация содержится в лог-файлах посещений web-сервера (access.log). Для удобной обработки информации провайдеры хостинга, а также панели управления предлагают такие системы: Webalizer и AWStats.
Пример: аналитика посещений web-сайта с использованием системы AWStats
Также на основе лог-файлов можно получить представление о распределении нагрузки на сайт по времени суток, следить за ошибками ненайденных страниц, вести мониторинг безопасности.