rabbitmq / logstash потерял сообщение

У меня есть rabbitmq, который успешно хранит сообщения, но мой журнал, читающий очередь, игнорирует большинство моих сообщений.

RabbitMQ в порядке, у меня есть небольшой скрипт на Python для отображения всех сообщений

import pika
i=0
def on_message(channel, method_frame, header_frame, body):
    global i
    print i
    print("Message body", body)
    channel.basic_ack(delivery_tag=method_frame.delivery_tag)
    i+=1

credentials = pika.PlainCredentials('***', '***')
parameters =  pika.ConnectionParameters('***',5672,'logstash', credentials=credentials)
connection = pika.BlockingConnection(parameters)

channel = connection.channel()
channel.exchange_declare(exchange="logstash", exchange_type="topic", passive=False, durable=True, auto_delete=False)
channel.queue_declare(queue="hbbtv", auto_delete=False, durable=True)
channel.queue_bind(queue="hbbtv", exchange="logstash", routing_key="hbbtv")
channel.basic_qos(prefetch_count=1)

channel.basic_consume(on_message, 'hbbtv')

try:
    channel.start_consuming()
except KeyboardInterrupt:
    channel.stop_consuming()

connection.close()

Я могу видеть все мои сообщения

12 ('Тело сообщения', '{"message":"212.95.70.118 - - [25/ Feb / 2016: 11: 19: 53 +0100] \" GET /services/web/index.php/OPA/categories/ ARTEPLUS7 / fr HTTP / 1.1 \ "200 348 \" http://www.arte.tv/hbbtvv2/notv/cehtml/index.cehtml?lang=de_DE&page=PLUS7&tv=false%5C" \"Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Philips;; PhilipsTV;) CE-HTML/1.0 NETTV/4.3.1 PhilipsTV/2.1.1 Firmware/003.015.000.001 (PhilipsTV, 2.1.1,) ru) Версия Presto/2.12.362 /12.11 \" hbbtvdyn.arte.tv","@version":"1","@timestamp":"2016-02-25T10:19:53.000Z","path":"/data/logs/access","хозяин":"arte-hbbtvdyn-web1.sdv.fr","типа": "Апач-доступ", "приложение": "HbbTV", "ClientIP":"212.95.70.118","идент":"-","auth":"-","timestamp":"25/Feb/2016:11:19:53 +0100","verb":"GET","request":"/services/web/index.php/OPA/ Categories / ARTEPLUS7 / fr "," httpversion ":" 1.1 "," response ":" 200 "," bytes ":" 348 "," referrer ":" \ " http://www.arte.tv/hbbtvv2/notv/cehtml/index.cehtml?lang=de_DE&page=PLUS7&tv=false%5C"","agent":"\"Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Philips;; PhilipsTV;) CE-HTML/1.0 NETTV/4.3.1 PhilipsTV/2.1.1 Firmware/003.015.000.001 (PhilipsTV, 2.1.1,) ru) Presto/2.12.362 Версия /12.11 \"","targethost":"hbbtvdyn.arte.tv" "GeoIP":{"ф":"212.95.70.118","country_code2":"FR","country_code3":"FRA","COUNTRY_NAME": "Франция", "continent_code":" ЕС " "REGION_NAME": "C1", "city_name":"Страсбург", "широта":48,60040000000001,"долгота": +7,787399999999991,"часовой пояс": "Европа / Париж","real_region_name":""," расположение Alsace ":[7.787399999999991,48.60040000000001]}}') 13 (' Тело сообщения ',' {" message ":" 212.95.70.118 - - [25 / фев / 2016: 11: 19: 53 +0100] \ "GET / services /web/index.php/OPA/videos/highlights/6/ARTEPLUS7/de/GE HTTP / 1.1 \ "500 4519 \" http://www.arte.tv/hbbtvv2/notv/cehtml/index.cehtml?lang=de_DE&page=PLUS7&tv=false%5C" \"Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Philips;;; PhilipsTV;) CE-HTML/1.0 NETTV/4.3.1 PhilipsTV/2.1.1 Firmware/003.015.000.001 (PhilipsTV, 2.1.1,) ru) Presto/2.12.362 Версия / 12.11 \ "hbbtvdyn.arte.tv", "@ version": "1", "@ timestamp": "2016-02-25T10: 19: 53.000Z", "путь": "/ данные / журналы / доступа", "хозяин":"arte-hbbtvdyn-web1.sdv.fr","типа": "Апач-доступ", "приложение": "HbbTV","clientip":"212.95.70.118","ident":"-","auth":"-","timestamp":"25/Feb/2016:11:19:53 +0100","verb":"GET","запрос": "/ услуги / веб / index.php / OPA / видео / Highlights / 6 / ARTEPLUS7 / де /GE","httpversion":"1,1", "ответ": "500", "bytes": "4519", "referrer": "\" http://www.arte.tv/hbbtvv2/notv/cehtml/index.cehtml?lang=de_DE&page=PLUS7&tv=false%5C"","agent":"\"Opera/9.80 (Linux armv7l; HbbTV/1.1.1 (; Philips;; PhilipsTV;) CE-HTML/1.0 NETTV/4.3.1 PhilipsTV/2.1.1 Firmware/003.015.000.001 (PhilipsTV, 2.1.1,) ru) Версия Presto/2.12.362 /12.11 \"","targethost":"hbbtvdyn.arte.tv","geoip":{"ip":"212.95.70.118","country_code2":"FR","country_code3":"FRA"," COUNTRY_NAME ":" Франция " "continent_code": "ЕС", "REGION_NAME": "C1", "city_name":"Страсбург", "широта": +48,60040000000001,"долгота": +7,787399999999991,"часовой пояс":" Европа /Paris","real_region_name":"Alsace","location":[7.787399999999991,48.60040000000001]}}') 14 (' Тело сообщения ', '{"message":"212.95.70.119 - - [25/ фев /2016:11:19:53 +0100] \"GET /OPA/getOPAData.php?url=videoStreams%3Flanguage%3Dfr%26protocol%3DHTTP%26mediaType%3Dmp4%26quality%3DEQ%2CSQ%2CHQ%26profileAmm%3D%24Min%33 YTFR-НАВ%2CAMM-YTFR%2CAMM-ДТ%26kind%3DSHOW%26availableScreens%3DTV%26fields%3DprogramId%2Curl%2Cquality%2CaudioSlot%2CaudioCode%2CaudioLabel%2CaudioShortLabel%2Cchannel%26programId%3D048353-033-А%26platform%3DARTEPLUS7& имя_файла =PLUS7_stream_048353-033-A_fr_FR.json HTTP/1.1\" 200 5508 \"-\" \"Mozilla/5.0 (Linux; Тизен 2,3; Умный хаб; SMART TV; SmartTV; U; Maple2012) AppleWebKit/538.1+ (KHTML, как Gecko) TV Safari/538.1+ \" hbbtvdyn.arte.tv","@version":"1","@timestamp":"2016-02-25T10:19:53.000Z","путь": "/ данные / журналы / доступа", "хозяин": "", "тип arte-hbbtvdyn-web1.sdv.fr": "Апач-доступ", "приложение": "HbbTV","clientip":"212.95.70.119","ident":"-","auth":"-","timestamp":"25/Feb/2016:11:19:53 +0100","verb":"GET","запрос":"/OPA/getOPAData.php URL = видеопотоков%3Flanguage%3Dfr%26protocol%3DHTTP%26mediaType%3Dmp4%26quality%3DEQ%2CSQ%2CHQ%26profileAmm%3D%24nin%3AAMM-YTFR- НАВ%2CAMM-YTFR%2CAMM-ДТ%26kind%3DSHOW%26availableScreens%3DTV%26fields%3DprogramId%2Curl%2Cquality%2CaudioSlot%2CaudioCode%2CaudioLabel%2CaudioShortLabel%2Cchannel%26programId%3D048353-033-А%26platform%3DARTEPLUS7& имя_файла =PLUS7_stream_048353-033-A_fr_FR.json","httpversion":"1.1","ответ": "200", "байт":"5508","ссылающаяся":"\"-\"","агент":"\"Mozilla/5.0 (Linux; Tizen 2.3; SmartHub; SMART-TV; SmartTV; U; Maple2012) AppleWebKit/538.1+ (KHTML, как Gecko) TV Safari/538.1+ \"","targethost":" Hbbtvdyn.arte.tv " "GeoIP":{"ф":"212.95.70.119","country_code2":"FR","country_code3":"FRA","COUNTRY_NAME": "Франция"," continent_code ":" ЕС " "REGION_NAME": "C1", "city_name":"Страсбург", "широта": +48,60040000000001,"долгота": +7,787399999999991,"часовой пояс": "Европа / Париж", "real_region_name":" Эльзас", "место": [7.787399999999991,48.60040000000001]}} ')

с хорошим сообщением скорости (несколько в секунду), и у меня есть абсолютно не сбой анализа разбора.

Таким образом, проблема возникает во время чтения сообщения logstash. Проблемы

  • пропущено много сообщений
  • все сообщения имеют _grokparsefailure, даже если они завершены

сообщение в asticsearch

Входная часть logstash является

rabbitmq {
    host=>"arte-elasticlog.sdv.fr"
    user=>"***"
    password=>"***"
    queue=>"hbbtv"
    vhost=>"logstash"
    port=>5672
    auto_delete=>false
    durable=>true
    type => "rabbit_hbbtv"
  }

2 ответа

Решение

Проблема была из-за моего фильтра logstash, у меня было два доступа apache, но с другим шаблоном, поэтому, когда logstash пытался проанализировать сообщение, иногда он имел хороший шаблон -> в ES, а иногда нет -> нет сообщения.

Теперь, для всего моего другого журнала, я добавляю (add-field)

application-->"my application name"

в мой вход и все мои фильтры Грок зависит от приложения.

Все хорошо сейчас, спасибо за вашу помощь.

_grokparsefailure указывает, что он не может проанализировать сообщение. Это означает, что сообщение успешно прочитано из очереди, но ваше выражение grok имеет проблему или не может быть применено к содержимому сообщения.

Еще одна вещь - кодек по умолчанию для ввода rabbitmq - "json", если ваше сообщение rabbitmq не является json, вы должны установить кодек вашего ввода, например:

кодек => обычный {}

Другие вопросы по тегам