1. 程式人生 > >MongoDB故障排查記錄 [rsHealthPoll] couldn't connect to server

MongoDB故障排查記錄 [rsHealthPoll] couldn't connect to server

一直在用一個五臺機器組成的MongoDB叢集(192.168.40.80 ~ 84),5個shard,分了3個分片。之前一直執行正常,最近一段時間發現服務很不穩定,show db老提示說shard 4 error,並且有時候有機器會因為負載過高而宕機。

今日偶然檢視MongoDB日誌,發現跟shard 4相關的幾臺機器都在報同樣地錯誤:

[rsHealthPoll] couldn't connect to 192.168.40.83:29022: couldn't connect to server 192.168.40.83:29022

而在40.83上檢視shard4的日誌發現也報錯:
[rsHealthPoll] replset info 192.168.40.80:29022 thinks that we are down

這很奇怪,network沒問題為什麼每個分片的服務都正常卻外邊連不上呢?衝其他幾臺機器能ping通,telnet 29022卻不能成功。後來發現原來是83的iptables隨著某次系統維護重啟機器而開啟了,所以預設阻止了對其上MongoDB的服務(其實其他幾個分片都有問題),結果可能是在shard4上的資料被訪問次數過多,而這個分片只有兩個機器在值班,所以一旦另外有一個發生問題,則會造成整個資料集的失效。有機器宕機(非40.83)也應該跟這個有關。
[[email protected] ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

解決方法即是關閉iptables,設定開機不啟動。
service iptables stop

chkconfig --level 2345 iptables off

PS. 以上廢話太多,總結起來就是MongoDB分片的服務可能會被iptables防火牆所阻止,如果在排除了網路和服務的可能性之後,最可能的原因就是檢視防火牆設定。

相關推薦

MongoDB故障排查記錄 [rsHealthPoll] couldn't connect to server

一直在用一個五臺機器組成的MongoDB叢集(192.168.40.80 ~ 84),5個shard,分了3個分片。之前一直執行正常,最近一段時間發現服務很不穩定,show db老提示說shard 4 error,並且有時候有機器會因為負載過高而宕機。 今日偶然檢視Mong

linux -mongodb 啟動問題(Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : )

-bash-4.1# ./mongo MongoDB shell version v3.4.6 connecting to: mongodb://127.0.0.1:27017 2017-09-20T20:02:14.620+0800 W NETWORK

解決連線 mongodb 報錯error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js

   a.先看服務啟動沒有,如果沒有啟動服務先啟動服務:net stat MongoDB   b.如果服務已經啟動了,那有可能是上次不正常關閉mongo,導致存放資料的檔案被佔用了,被鎖住了。只需將D:

Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js

mongdb啟動的時候會報如上標題的錯誤,查詢了很多資料終於找到解決辦法,現把解決方法記錄下來,以免以後忘記。 [[email protected] bin]# ./mongo 但是出現如下錯誤: [[email protected] bin]# ./

mongodb使用mongo報錯: Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:270

在windows下命令臺輸入mongo報一下錯誤: D:\ProgramFiles\BianCheng\mongodb-win32-x86_64-2008plus-ssl-4.0.4>mongoMongoDB shell version v4.0.4connecting to: mongodb://1

解決couldn't connect to server 172.21.4.208:27 017 at src/mongo/shell/mongo.js:147

錯誤 Go pre article god sdn local service 直接 使用mongo命令訪問數據庫,出現如下所示的錯誤: 直接刪除mongod.lock, rm -f /usr/local/mongodb/data/db/mongod.lock 註:使

Ubuntu14 04上Fig出現Couldn t connect to Docker daemon 問題

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

pycharm遠端除錯:_tkinter.TclError: couldn't connect to display "localhost:10.0"

PyCharm遠端開發配置 背景 遠端伺服器上OS版本為Ubuntu16.04。準備用Win10進行遠端開發,按照上述教程配置完PyCharm後,可以正常呼叫遠端python直譯器,但是當我程式產生視窗或者圖片時,發現本地機器無法顯示加載出來視窗或者圖片。於是

解決 ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket

ubuntu16.04 安裝完docker後在docker-compose.yml檔案所在目錄執行: [email protected]:/tmp/docker$ docker-compose up -d 報錯: ERROR: C

ubuntu14.04 docker上fig問題Couldn't connect to Docker daemon at http+unix://var/run/docker.sock

最近專案用到docker,在本地跑docker-compose命令沒問題 在CI上呼叫此命令遇到問題: test: [exec] Couldn’t connect to Docker daemon at http+unix://var/run/d

curl HTTPS 報錯curl: (7) couldn't connect to host

使用curl 命令,無法訪問HTTPS,訪問Http是正常的 ,使用curl -V查詢版本以及支援的協議   測試將訪問防火牆給關閉了 ,正常訪問 ,看來還是問題還是出現在防火牆。檢視防火牆的配置:新增:-A INPUT -p tcp --sport 443 -j ACCEP

Ubuntu14.04上Fig出現Couldnt connect to Docker daemon …問題

在Ubuntu14.04上正確安裝的Docker和Fig後,Docker可以正常使用,但是在使用Fig的時候出現下面的錯誤Couldn't connect to Docker daemon at htt

Jenkins配置ssh時總是提示Can't connect to server

jenkins ssh can't connect to serverJenkins配置ssh時總是提示Can‘t connect to server我在本地windows系統中啟動了一個Jenkins服務,進行配置ssh,鏈接到同一網段的服務器上Linux上。總是連不上,Windows的防火墻和殺毒

Couldn't connect to host, port: smtp.163.com, 25; timeout -1;

ould bsp class timeout nbsp 端口 mail out blog 運行出現以下報錯:   Couldn‘t connect to host, port: smtp.163.com, 25; timeout -1; 也要設置端口  spring.

Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

    解決方法: 1.進入啟動檔案目錄 2.將使用者加入到docker 組   sudo gpasswd -a ${USER}  docker    3.使用root使用者   sudo su 4. 切換當前使用者   su ${US

啟動docker-compose報錯:Couldn't connect to Docker daemon at http+docker://localhost - is it running?

這個問題出現呢,是因為使用者許可權問題。解決方法有2個: 切換為root使用者執行命令。sudo docker-compose up -d  將當前使用者加入到docker組。 sudo gpasswd -a ${USER} docker 然後切換成root使用者,再切換

om.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 465; timeout -1;

  晚上用java mail實現郵件的傳送功能出現了以下錯誤 com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 465; timeout -1; nest

記一次MongoDB故障排查的過程

資料技術嘉年華等你來預告:11.16-17日,北京市東三環中路61號富力萬麗酒店,相聚資料技術嘉

centos下mysql問題記錄--ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/

一、關於雲主機的mysql最近一次雲主機的伺服器由於被攻擊便打算重灌一邊mysql,徹底刪除相關檔案後重新安裝,沒想到怎麼裝都會出問題。再啟動的時候總是出現ERROR 2002 (HY000): Can’t connect to local MySQL server thro

ES集群故障排查記錄

get tsp 報錯 天線 慢查詢 unable 應該 記錄 放棄 這兩天線上的ES集群總是有問題,開始查找原因發現這段時間各個機器的負載都很高,本來希望通過jstack找到一些信息,但居然提示‘Unable to open socket file: target proc