2017-01-24 17 views
0

Я пытаюсь разобрать большие журналы Apache, но import_logs.py терпит неудачу с этой ошибкой:Import_logs.py терпит неудачу при попытке разобрать журнал большого доступа апача (больше чем 900 MB)

2017-01-23 18: 30: 39245: [INFO] Максимальное количество попыток достигнуто, сервер недоступен _

Fatal error: HTTP Error 500 Internal Server Error, response:

{"status":"error","tracked":0,"invalid":0,"invalidindices":[]}_ You

can restart the import of

"/awdata/piwik/cosmote/geratgweb04/www.cosmote.grwith_ssl-access.log-20170123" from the point it failed by specifying --skip=78454 on the command line.

Я использую VM с 8 процессоров и 8 Гб мем!.

Моя версия ОС RHEL 7.3,

с апача версии Apache/2.4.6 (Red Hat Enterprise Linux),

РНР PHP 7.0.14 и MariaDB версия 5.5.52 Piwik версия 3.0.1

команда, я использую это:

/var/www/html/zak/piwik/misc/log-analytics/import_logs.py --url=http://middlinf.ote.gr:81/piwik/ --idsite=6 --recorders=8 --enable-http-errors --enable-http-redirects --enable-static /awdata/piwik/cosmote/geratgweb04/www.cosmote.gr_with_ssl-access.log-2017--retry-max-attempts=20 

Apache журнал ошибок показывает:

[Tue Jan 24 13: 44: 33.855134 2017] [: error] [pid 17456: tid 140544525190912] [клиент 172.18.20.26:16610] Ошибка в Piwik (трекер): Запрос ошибки: SQLSTATE [40001]: сбой последовательной обработки : 1213 Deadlock обнаружен при попытке получить блокировку; попробуйте перезапустить транзакцию в запросе:

UPDATE piwik_log_visit SET idvisitor = ?, user_id = ?, 
    visit_last_action_time = ?, visit_exit_idaction_url = ?, 
    visit_total_actions = visit_total_actions + 1 , 
    visit_total_interactions = visit_total_interactions + 1 , 
    visit_total_time = ? 
    WHERE idsite = ? AND idvisit = ? 

Параметры: массив (0 => '\ xa6 \ x96 \ XBC \ ХеР \ xb9 \ XDE \ xf5', 1 => ' ""', 2 => «2017 -01-23 8:14:43' , 3 => 47298, 4 => 0, 5 => 4, 6 => 11224,)

А:

[вт 24 января 13:51: 58.582401 2017] [: error] [pid 18419: tid 140544525190912] [клиент 172.18.20.26:18232] Ошибка в Piwik (трекер): Запрос ошибки: SQLSTATE [HY000]: общая ошибка: 1205 превышено время ожидания блокировки; попробуйте перезапустить транзакцию в запросе:

UPDATE piwik_log_visit SET idvisitor = ?, user_id = ?, 
    visit_last_action_time = ?, visit_exit_idaction_url = ?, 
    visit_total_actions = visit_total_actions + 1 , 
    visit_total_interactions = visit_total_interactions + 1 , 
    visit_total_time = ? 
    WHERE idsite = ? AND idvisit = ? 

Параметры: массив (0 => '\ xa6 \ x96 \ XBC \ ХеР \ xb9 \ XDE \ xf5', 1 => ' ""', 2 => «2017 -01-23 8:42:33' , 3 => 49791, 4 => 242, 5 => 4, 6 => 11371)>

and mariadb log is showing: 

Time: 17:00:46 
[email protected]: root[root] @ localhost [127.0.0.1] 
Thread_id: 1691 Schema: piwik_db QC_hit: No 
Query_time: 3.858223 Lock_time: 0.000060 Rows_sent: 1 Rows_examined: 1 
 SET timestamp=1485187246; 
    SELECT visit_last_action_time, visit_first_action_time, idvisitor, 
idvisit, user_id, visit_exit_idaction_url, visit_exit_idaction_name, 
visitor_returning, visitor_days_since_first, visitor_days_since_order, 
visitor_count_visits, visit_goal_buyer, location_country, 
location_region, location_city, location_latitude, location_longitude, 
referer_name, referer_keyword, referer_type, idsite, 
visit_entry_idaction_url, visit_total_actions, 
visit_total_interactions, visit_total_searches, config_device_brand, 
config_device_model, config_device_type, visit_total_events, 
visit_total_time, location_ip, location_browser_lang, custom_var_k1, 
custom_var_v1, custom_var_k2, custom_var_v2, custom_var_k3, 
custom_var_v3, custom_var_k4, custom_var_v4, custom_var_k5, 
custom_var_v5 FROM piwik_log_visit 
WHERE visit_last_action_time >= '2017-01-22 05:14:21' 
    AND visit_last_action_time <= '2017-01-22 06:14:21' 
    AND idsite = '6' AND idvisitor = ' 
ORDER BY visit_last_action_time DESC 

Я сделал некоторые исследования в форумах но не нашел ничего интересного. Есть ли у вас предложения?

Заранее спасибо.

-Thanassis

ответ

0

Просьба SHOW CREATE TABLE piwik_log_visit. Я подозреваю, что вам не хватает композитный

INDEX(idsite, idvisit) 

(Столбцы могут быть в любом порядке.)

Для

WHERE visit_last_action_time >= '2017-01-22 05:14:21' 
    AND visit_last_action_time <= '2017-01-22 06:14:21' 
    AND idsite = '6' AND idvisitor = ' 

вам нужно INDEX(idsite, idvisitor, visit_last_action_time), будучи уверенным, чтобы иметь столбец диапазона последней.

Вы заметили, что этот диапазон охватывает 3601 секунд? Я рекомендую этот шаблон по различным причинам:

WHERE visit_last_action_time >= '2017-01-22 05:14:21' 
    AND visit_last_action_time < '2017-01-22 05:14:21' + INTERVAL 1 HOUR 
+0

Большое спасибо за ваш ответ. Ниже представлен вывод команды SHOW CREATE TABLE piwik_log_visit. https://docs.google.com/document/d/1po0mmh9oxXXmCebns9392fxRpzPHWEYGd02eyYO6HjY/edit На самом деле такого индекса нет. Я попытаюсь создать его и повторно запустить импорт журнала. Я скоро обновлю вас. Что касается шаблона интервала, я не уверен, как это сделать, поскольку он выполняется interanlly из команды piwik import_logs.py. Это не пользовательский запрос. –

+0

Пожаловаться на пивик. –