Linux

  
でのStorm ui kill機能のシールド方法

Linuxシステムのstorm uiにはkillトポロジー機能がありますが、マスクがなければ、stormトポロジーは簡単に強制終了されます。ほとんどの場合、uiアドレスはわかっていますが、システムのセキュリティ上、Storm uiのkill機能をシールドする必要があります。

2つの方法があります。

1.遠位増加nginxのは、殺すボタンに対応し、場所

UIページ解析を行い、HTMLはアクションです。< Br>

コードは次のとおりです。 =' button' value =' Kill'

jsのconfirmActionメソッドが呼び出されますこのメソッドはstorm-core /src /ui /public /js /script.jsにあります。 :

コードは次のとおりです。

function confirmAction(id、name、action、wait、defaultWait){var opts = {type:‘、URL:‘ /topology /’} + id +‘ /’ + action};

if(wait){
var waitSecs = prompt(‘ + action +‘ topology');’ + name +‘'?’ +‘はいの場合は、wait timを指定してください秒単位のe:’、defaultWait); if(waitSecs!= null& waitSecs!='& sureInt(waitSecs)){opts.url + =‘ /’ + waitSecs; } else {return false;}

} else if(!確認します(本当にアクション+アクション+トポロジ+名前+’?’?’?’?’?’?)を返します。{return false;}

$(' input [ type = button]')attr(< disabled< /disabled> disabled'); $。ajax(opts).always(function(){window.location.reload();})。fail(function() {alert(Nimbusとの通信中にエラーが発生しました。}); falseを返す;}

表示方法は大きく2つのステップに分かれており、投稿リクエストのURLを生成します。フォーマットは‘ /topology /です。 ’ + id +‘ /action +‘ + waitSecs、ここでactionはkill、waitSecsは強制終了時の手動入力時間(30秒など)、最終的なURL形式は次のとおりです。

コードは次のとおりです。

/topology /xxxxx /kill /xxxx

2番目のステップは、この設定に基づいてajaxリクエストを起動することです。 nginxを次のように設定します。

コードは次のとおりです。

upstream storm {< Br>

サーバー127.0.0.1:8888 weight = 3 max_fails = 3 fail_timeout = 5s;}

サーバー{

server_name storm.xxx.com;

listen 80;

proxy_set_headerホスト$ host;

proxy_read_timeout 3600;

proxy_set_header $ remote_addr用; access_log /var/log/nginx/storm.access.logメイン; error_log /var/log/nginx/storm.error.logデバッグ;場所〜* /topology/(.*)/kill/(.*){return 403;}

location /{

proxy_pass http://storm;

}

}

このようにして、フロントエンドのkill関数を隠すことができます。

細かい点に注意してください。デフォルトのstorm uiのポートは8080です。このポートはnmと競合します(https://github.com/yahoo/storm-yarn/issues/25を参照)、storm.yaml uiを設定します。 .port:8888、そしてuiを再起動します。

2.コードを変更してアクション関連のボタンを削除します。

コードは次のとおりです。

storm-core /src /ui /public /topology.html

次のセクションを削除します。

コードは次のとおりです。

"div id ='トポロジアクション'"

"h2 class =' js-only'"トポロジアクション "/h2"

"p id ='トポロジアクション' jsのみ'"

"/p"

"/div"

2番目の方法は再コンパイルが必要で、テストされていません。 。

上記はLinuxシステムにおけるstorm uiのkill関数をシールドする方法ですが、2つ目の方法はまだテストされていないので、この2つの方法を紹介します。

Copyright © Windowsの知識 All Rights Reserved