Linux中如何屏蔽storm ui的kill功能

2016-02-20 00:52 33 1 收藏

想要天天向上,就要懂得享受学习。图老师为大家推荐Linux中如何屏蔽storm ui的kill功能,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

【 tulaoshi.com - Linux教程 】

Linux系统中storm的ui有kill topology功能如果没有屏蔽的话,就会导致storm的topology很容易被人kill掉,如果你的topology出现被人kill的情况,多半是ui地址被人知道了,为了系统的安全,有必要将storm ui的kill功能进行屏蔽,一起来了解下吧。

 Linux中如何屏蔽storm ui的kill功能

有两种方法:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

1.前端增加nginx,做location

分析ui页面,对应kill的button,html中的action为:

代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

《input enabled= onclick=confirmAction(‘xxxxxxxxxx’, ‘xxxxxxxx’, ‘kill’, true, 30) type=button value=Kill》

调用了js的confirmAction方法,这个方法存在于storm-core/src/ui/public/js/script.js 中,方法的定义如下:

代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

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

if (wait) {

var waitSecs = prompt(‘Do you really want to ’ + action + ‘ topology ’ + name + ‘? ’ +‘If yes, please, specify wait time in seconds:’,defaultWait);if (waitSecs != null && waitSecs != && ensureInt(waitSecs)) {opts.url += ‘/’ + waitSecs;} else {return false;}

} else if (!confirm(‘Do you really want to ’ + action + ‘ topology ’ + name + ‘?’)) {return false;}

$(input[type=button]).attr(disabled, disabled);$.ajax(opts).always(function () {window.location.reload();}).fail(function () {alert(Error while communicating with Nimbus.)});return false;}

以看到方法主要分为两步,生成post请求的url,格式为‘/topology/’ + id + ‘/’ + action + ‘/’ + waitSecs,这里action为kill,waitSecs为触发kill时手动填入的时间,比如这里的30s,最终的url格式如下:

代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

/topology/xxxxx/kill/xxxx

第二步就是根据这个设置触发一个ajax请求,这里我们只需要关心第一步即可,设置nginx如下:

代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

upstream storm {

server 127.0.0.1:8888 weight=3 max_fails=3 fail_timeout=5s;}

server {

server_name storm.xxx.com;

listen 80;

proxy_set_header Host $host;

proxy_read_timeout 3600;

proxy_set_header X-Forwarded-For $remote_addr;access_log /var/log/nginx/storm.access.log main;error_log /var/log/nginx/storm.error.log debug;location ~* /topology/(.*)/kill/(.*) {return 403;}

location / {

proxy_pass http://storm;

}

}

这样,就可以屏蔽掉前端的kill功能了。

注意一个细节,storm ui的默认端口时8080,这个端口和nm冲突(见bug https://github.com/yahoo/storm-yarn/issues/25),设置storm.yaml ui.port: 8888,并重启ui即可。

2.更改代码,去掉action相关的button

代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

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

去除掉下面的部分:

代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

《div id=topology-actions》

《h2 class=js-only》Topology actions《/h2》

《p id=topology-actions class=js-only》

《/p》

《/div》

第二种方法需要重新编译,还没有做测试。。

以上就是linux系统中屏蔽storm ui的kill功能的方法介绍了,本文一共介绍了两种方法,因为第二种方法还没测试,所以你可以使用第一种方法进行屏蔽。

来源:http://www.tulaoshi.com/n/20160220/1632707.html

延伸阅读
标签: 服务器
关闭Linux系统中的SELinux功能的教程   1、以根用户登录Linux系统,然后在提示符后输入命令sestatus,可以看出目前SELinux功能是处于开启状态的。 2、在提示符后输入vi /etc/sysconfig/selinux命令,进入SElinux的配置文件。 3、在SELinux配置文件中,将SELINUX=enforcing,改为SELINUX=disabled,然后保存退出。 ...
标签: 电脑入门
怎么屏蔽win8系统里的广告呢?很多用Windows8系统的用户想屏蔽又不知道怎么屏蔽,今天为您解析一下下面是Windows 8自带应用广告的屏蔽方法 : 用管理员身份运行记事本,打开 C:WindowsSystem32Driversetchosts 在里面加入 0.0.0.0 a.global.msads.net 0.0.0.0 ads1.msads.net 0.0.0.0 ads2.msads.net 0.0.0.0 global.msads.net 0.0.0.0 cr...
  名称:kill 使用权限:所有使用者 使用方式: kill [ -s signal | -p ] [ -a ] pid ... kill -l [ signal ] 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, ...
标签: 电脑入门
Linux系统有回收站吗?答案是否定的,Linux系统并没有Windows中的回收站,但是Linux可以实现回收站的功能,具体要如何实现呢?下面图老师小编就给大家介绍下Linux开启回收站功能的方法,一起来了解下吧。 本文仿照 Windows 回收站的功能,运用 Bash 脚本在 Linux 上做了实现,创建 delete 脚本代替 rm 命令对文件或目录进行删除操做。该脚...
标签: 服务器
在Linux下实现批量屏蔽IP地址的方法   Netfilter/IPtables 的问题 在Linux中,可以很简单地用netfilter/iptables框架禁止IP地址: 代码如下: $ sudo iptables -A INPUT -s 1.1.1.1 -p TCP -j DROP 如果你想要完全屏蔽一个IP地址段,你可以用下面的命令很简单地做到: 代码如下: $ sudo iptables -A INP...

经验教程

976

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部