Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rabbitmq/logstash丢失消息_Rabbitmq_Logstash_Pika - Fatal编程技术网

rabbitmq/logstash丢失消息

rabbitmq/logstash丢失消息,rabbitmq,logstash,pika,Rabbitmq,Logstash,Pika,我有一个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

我有一个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('消息正文','{“消息”:“212.95.70.118-- [25/Feb/2016:11:19:53+0100]\“获取 /services/web/index.php/OPA/categories/ARTEPLUS7/fr HTTP/1.1\“200 348 \"" \Opera/9.80(Linux armv7l;HbbTV/1.1.1(;飞利浦;;飞利浦电视台;) CE-HTML/1.0 NETTV/4.3.1 PhilipsTV/2.1.1固件/003.015.000.001 (PhilipsTV,2.1.1,)en)Presto/2.12.362版本/12.11“ hbbtvdyn.arte.tv“,“@version:”1“,“@timestamp:”2016-02-25T10:19:53.000Z“,”路径“/”数据/日志/访问“,”主机“:”arte-hbbtvdyn-web1.sdv.fr“,”类型“:”apache访问“,”应用“:”hbbtv“,”clientip:”212.95.70.118“,”识别“,”身份“,”认证“,”时间戳“:”25/Feb/2016:11:19:53+0100”,“动词“:”获取“,”请求“/”服务/web/index.php/OPA/fr”,“httpversion”:“1.1”,“response”:“200”,“bytes”:“348”,“Referer”:“\”,“agent”:“\”Opera/9.80 (Linux armv7l;HbbTV/1.1.1(;Philips;;PhilipsTV;)CE-HTML/1.0 NETTV/4.3.1飞利浦TV/2.1.1固件/003.015.000.001(飞利浦TV, 2.1.1,)en)Presto/2.12.362 Version/12.11\”,“targethost”:“hbbtvdyn.arte.tv”,“geoip”:{“ip”:“212.95.70.118”,“国家代码2”:“FR”,“国家代码3”:“FRA”,“国家名称”:“法国”,“大陆代码”:“欧盟”,“地区名称”:“C1”,“城市名称”:“斯特拉斯堡”,“纬度”:48.60040000000001,“经度”:7.7873999991,“时区”:“欧洲/巴黎”,“真实地区名称”:阿尔萨斯,“位置”:[7.787399999991,48.60040000000001]}}) 13('消息正文','{“消息”:“212.95.70.118-- [25/Feb/2016:11:19:53+0100]\“获取 /services/web/index.php/OPA/videos/highlights/6/ARTEPLUS7/de/GE HTTP/1.1 \“500 4519 \"" \Opera/9.80(Linux armv7l;HbbTV/1.1.1(;飞利浦;;飞利浦电视台;) CE-HTML/1.0 NETTV/4.3.1 PhilipsTV/2.1.1固件/003.015.000.001 (PhilipsTV,2.1.1,)en)Presto/2.12.362版本/12.11“ hbbtvdyn.arte.tv“,“@version:”1“,“@timestamp:”2016-02-25T10:19:53.000Z“,”路径“:”数据/日志/访问“,”主机“:”arte-hbbtvdyn-web1.sdv.fr“,”类型“:”apache访问“,”应用“:”hbbtv“,”客户端“:”212.95.70.118“,”标识“,”身份“,”认证“,”时间戳“:”25/Feb/2016:11:19:53+0100”,“动词“:”获取“,”请求“:”/services/web/index.php/OPA/videos/highlights/6/ARTEPLUS7/de/GE,“httpversion”:“1.1”,“response”:“500”,“bytes”:“4519”,“referer”:“\”,“agent”:“\”Opera/9.80 (Linux armv7l;HbbTV/1.1.1(;Philips;;PhilipsTV;)CE-HTML/1.0 NETTV/4.3.1飞利浦TV/2.1.1固件/003.015.000.001(飞利浦TV, 2.1.1,)en)Presto/2.12.362 Version/12.11\”,“targethost”:“hbbtvdyn.arte.tv”,“geoip”:{“ip”:“212.95.70.118”,“国家代码2”:“FR”,“国家代码3”:“FRA”,“国家名称”:“法国”,“大陆代码”:“欧盟”,“地区名称”:“C1”,“城市名称”:“斯特拉斯堡”,“纬度”:48.60040000000001,“经度”:7.7873999991,“时区”:“欧洲/巴黎”,“真实地区名称”:阿尔萨斯,“位置”:[7.787399999991,48.60040000000001]}}) 14('消息正文','{“消息”:“212.95.70.119-- [25/Feb/2016:11:19:53+0100]\“获取 /OPA/getOPAData.php?url=videoStreams%3Flanguage%3Dfr%26协议%3dhtp%26媒体类型%3Dmp4%26质量%3DEQ%2CSQ%2CHQ%26档案amm%3D%24nin%3AAMM-YTFR-HAB%2CAMM-YTFR%2CAMM-DT%26种类%3DSHOW%26可用屏幕%3Dtv%26字段%3dprogrammaid%2Curl%2Cquality%2CaudioSlot%2CaudioCode%2CaudioLabel%2CaudioLabel%2CaudioShortLabel%26prograid%3D048353-033-26a%26平台%3DARTEPLUS7&filename=PLUS7_stream_048353-033-A_fr_fr.json HTTP/1.1 \“2005508\”-\“Mozilla/5.0(Linux;Tizen2.3; SmartHub;SMART-TV;SmartTV;U;Maple2012)AppleWebKit/538.1+(KHTML, 如壁虎)电视狩猎/538.1+\” hbbtvdyn.arte.tv“,“@version:”1“,“@timestamp:”2016-02-25T10:19:53.000Z“,”路径“:”数据/日志/访问“,”主机“:”arte-hbbtvdyn-web1.sdv.fr“,”类型“:”apache访问“,”应用“:”hbbtv“,”客户端“:”212.95.70.119“,”识别“,”身份“,”认证“,”时间戳“:”25/Feb/2016:11:19:53+0100”,“动词“:”获取“,”请求“:”/OPA/getOPAData.php?url=videoStreams%3Flanguage%3Dfr%26协议%3dhtp%26媒体类型%3Dmp4%26质量%3DEQ%2CSQ%2CHQ%26档案amm%3D%24nin%3AAMM-YTFR-HAB%2CAMM-YTFR%2CAMM-DT%26种类%3DSHOW%26可用屏幕%3Dtv%26字段%3dprogrammaid%2Curl%2Cquality%2CaudioSlot%2CaudioCode%2CaudioLabel%2CaudioLabel%2CaudioShortLabel%26prograid%3D048353-033-26a%26平台%3DARTEPLUS7&filename=PLUS7\u stream\u 048353-033-A\u fr\u fr.json,“httpversion”:“1.1”,“response”:“200”,“bytes”:“5508”,“referer”:“\”-\”,“agent”:“\”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:“{”ip:”212.95.70.119“,”国家代码2:”FR“,”国家代码3:”FRA“,”国家名称“:”法国“,”大陆代码“:”欧盟“,”地区名称“:”C1“,”城市名称“:”斯特拉斯堡“,”纬度“:”48.60040000000001“,”经度“:”7.787399999999991,“时区“:”欧洲/巴黎“,”真实地区名称“:”阿尔萨斯“,”位置“:”[7.7873999991,48.60040000000001]}}

使用高速率消息(每秒数个),我绝对没有格罗克解析失败

所以问题发生在logstash读取消息时

  • 很多信息丢失了
  • 即使 它是完整的

logstash的输入部分是

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

_grokparsefailure表示无法分析邮件。这意味着邮件已成功从队列中读取,但您的grok表达式有问题或无法应用于邮件内容

还有一件事是rabbitmq输入的默认编解码器是“json”,如果您的rabbitmq消息内容不是json,您应该将输入的编解码器设置为例如:


编解码器=>普通{}

问题是由于我的日志存储过滤器, 我有两个apache访问权限,但模式不同,因此当logstash尝试解析消息时,有时他在ES中有良好的模式-->而有时没有-->无消息

现在,对于所有不同的日志,我添加(添加字段)application-->"my application name"