python 连接elasticsearch时sniff探测的问题

最近在用python调用elasticsearch,因为之前es都是装在物理机上,所以没出现过问题,最近把es迁移到docker上运行程序突然连接不上客户端了,一阵郁闷,先把问题描述下。

这里是主要的连接代码片

    self.es_hosts = es_hosts.split(',')
    self.es_client = es.Elasticsearch(self.es_hosts, sniff_on_start=True, sniff_on_connection_fail=True, sniffer_timeout=600if __name__ == '__main__':
    EsTools('10.15.1.30:9200')

然后就是一大片错误,连接超时,其中有一个最主要的:可以看到底下有个ip

172.19.0.4,
python 连接elasticsearch时sniff探测的问题_第1张图片
what?怎么冒出来这个ip,看到这个ip熟悉docker的肯定不陌生,这不是docker的地址么。试着进容器看下:哈哈还真是,这就郁闷了哈。

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
41: eth0@if42:  mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:13:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.19.0.4/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe13:4/64 scope link 
       valid_lft forever preferred_lft forever

然后在我运行程序的主机上,在python解释器敲入连接的命令:这就尴尬了,同样的命令这就连接上了,然后又是一顿在库里打bug(python的好处就是可以随意在外部库打bug),哪哪都正常啊!
这里写图片描述
最后抱着试试看的态度将sniff那几个参数去掉python 连接elasticsearch时sniff探测的问题_第2张图片
what????????ok了?????,这是怎么回事????
目前还没找到原因,先记录下,总之就是sniff集群探测的问题了。有机会再看看。

你可能感兴趣的:(软件开发)