Giter Site home page Giter Site logo

portal's Introduction

falcon portal

Install dependency

# yum install -y python-virtualenv

$ cd /home/work/open-falcon/portal/
$ virtualenv ./env

# use douban pypi
$ ./env/bin/pip install -r pip_requirements.txt -i http://pypi.douban.com/simple

Init database and config

  • database schema: scripts/schema.sql
  • database config: frame/config.py

Start

$ ./env/bin/python wsgi.py

--> goto http://127.0.0.1:5050

Run with gunicorn

$ . env/bin/activate
$ bash run.sh

--> goto http://127.0.0.1:5050

portal's People

Contributors

laiwei avatar modeyang avatar niean avatar qudongfang avatar ulricqin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

portal's Issues

portal使用中的疑问

使用Python字符串的replace(old, new)方法做替换;只操作您是creator的并且在监控系统中创建的HostGroup,从服务树同步过来的不受影响。

做替换操作时,发现如上一段话。服务树,这个不是很明白,是什么意思。

单点登录,登出后cookie继续生效

问题描述:
现象一:更换账号从fe登录后,portal上的登录人和权限仍然是前一次登录时的。
现象二:
1, 使用root从fe登录,然后进入portal。此时可以从浏览器将cookie信息保存到文件。
2, 进入fe,logout.然后使用1步中保存的cookie调用api,可以继续执行。
从现象一和现象二判断,服务器端并没有验证cookie的有效性。有可能cookie中只存了用户信息,并未存token之类的权限验证,或者存了token但是没有验证有效性。
建议:服务器端对cookie进行有效性检验,与当前数据库中保存的session进行对比,如果失效或者不存在,则认证失败,跳转到登录页面。

是否支持客户端自动注册和批量添加主机到Hostgroup

比如我这里每周会新增50左右服务器,名字都是DS-xxxx

怎样才能让agent启动后,主机能自动进入到相应的Hostgroup里?

要是每次都手动去添加太麻烦了,zabbix的自动注册功能就不错,不需要手工干预。

至于批量添加主机到Hostgroup,希望可以新增主机时填写“DS-*” 这样把所有DS- 开头的主机都加进去

相关代码 portal/web/model/group_host.py

Portal 报错 Internal Server Error

您好,我在使用portal时候,./control start 之后,访问

127.0.0.1:5050

出现internal service error
查看日志信息如下:

ng new HTTP connection (1): proxyhk.XXX.com]
2017-08-31 14:47:33	[connectionpool.py:350] [DEBUG: "GET http://127.0.0.1:1234/sso/sig HTTP/1.1" 302 7237]
2017-08-31 14:47:33	[connectionpool.py:350] [DEBUG: "GET http://www.internalrequests.org/showconfirmpage/?url=http://127.0.0.1:1234/sso/sig HTTP/1.1" 403 7605]
[2017-08-31 14:47:33 +0000] [32736] [ERROR] Error handling request
Traceback (most recent call last):
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 130, in handle
    self.handle_request(listener, req, client, addr)
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 171, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/flask/app.py", line 1473, in full_dispatch_request
    rv = self.preprocess_request()
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/flask/app.py", line 1666, in preprocess_request
    rv = func()
  File "/home/work/open-falcon/portal/web/__init__.py", line 50, in before_request
    return redirect_to_sso()
  File "/home/work/open-falcon/portal/web/__init__.py", line 58, in redirect_to_sso
    resp = make_response(redirect(uic.login_url(sig, urllib.quote(request.url))))
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/werkzeug/utils.py", line 364, in redirect
    response.headers['Location'] = location
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/werkzeug/datastructures.py", line 1167, in __setitem__
    self.set(key, value)
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/werkzeug/datastructures.py", line 1126, in set
    self._validate_value(_value)
  File "/home/work/open-falcon/portal/env/lib/python2.7/site-packages/werkzeug/datastructures.py", line 1093, in _validate_value
    raise ValueError('Detected newline in header value.  This is '
ValueError: Detected newline in header value.  This is a potential security problem

我在portal中的配置如下:

UIC_ADDRESS = {
    'internal': 'http://127.0.0.1:1234',
    'external': 'http://127.0.0.1:1234',
}

我也尝试了将external配置成内网ip:192.168.3.181,并且访问192.168.3.181:5050,还是出现一样的错误。
fe监听的端口地址是 0.0.0.0:1234

我不知道问题出在哪里,有人能解答吗?

是否可以支持直接在host上挂策略?

场景:

公有云平台, 每个租户有自己的虚拟机, 想对虚拟机做个性化的告警订制, 如果按照我所了解的falcon目前的实现方式,如果针对每个主机要应用不同的strategy就要新建hostgroup, 加入该hostgroup, 新建模板, 挂载模板在新建的hostgroup上。能不能向zabbix那样,直接对host使用某条strategy,而不创建 hostgroup和templates?

Portal 报错 Internal Server Error

您好,我在使用portal时候,./control start 之后,访问

http://内网ip:5050

出现了internal error

以下是log的内容

==> var/app.log <==
[2016-11-01 10:26:49 +0000] [26744] [ERROR] Error handling request
Traceback (most recent call last):
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 130, in handle
    self.handle_request(listener, req, client, addr)
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 171, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/home//work/open-falcon/portal/env/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/home//work/open-falcon/portal/env/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home//work/open-falcon/portal/env/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/flask/app.py", line 1473, in full_dispatch_request
    rv = self.preprocess_request()
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/flask/app.py", line 1666, in preprocess_request
    rv = func()
  File "/home/work/open-falcon/portal/web/__init__.py", line 50, in before_request
    return redirect_to_sso()
  File "/home/work/open-falcon/portal/web/__init__.py", line 58, in redirect_to_sso
    resp = make_response(redirect(uic.login_url(sig, urllib.quote(request.url))))
  File "/home/ymadm/work/open-falcon/portal/env/local/lib/python2.7/site-packages/werkzeug/utils.py", line 364, in redirect
    response.headers['Location'] = location
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/werkzeug/datastructures.py", line 1167, in __setitem__
    self.set(key, value)
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/werkzeug/datastructures.py", line 1126, in set
    self._validate_value(_value)
  File "/home/work/open-falcon/portal/env/local/lib/python2.7/site-packages/werkzeug/datastructures.py", line 1093, in _validate_value
    raise ValueError('Detected newline in header value.  This is '
ValueError: Detected newline in header value.  This is a potential security problem

我的配置如下

UIC_ADDRESS = {
    'internal': 'http://127.0.0.1:1234',
    'external': 'http://内网ip:1234'
}

fe 监听端口是: 0.0.0.0:1234

希望得到您的解答,占用你的时间了。

Portal 报错 Internal Server Error

Python 2.6.6
CentOS 6.5
go version go1.5 linux/amd64

portal http port : 8867

start up as root , and portal is /usr/local/go/src/open-falcon/Portal
below is error message:

[BUG] API "/host/remove" 处理逻辑错误

文件"web/controller/host.py"中,/host/remove 这个API在接收host_ids之后,没有对字符串进行空格分割处理,提交多个hostID会报错。

host_ids = request.form['host_ids'].strip()
GroupHost.unbind(group_id, host_ids)

是否可以支持child template disable掉parent template的某个strategy ?

场景需求如下:

Linux 主机a 使用了linux os 标准模版,但是其中对于linux os某个策略(如cpu.used > 50% 告警)不想继承并应用, 可不可以通过某种方式把这条策略给disable掉?

我们想到的方式是用新建一个子模板,给metric设置一个不可能达到的告警阀值(设置cpu.used > 120% 告警)来实现上述的需求。 但是这种方式比较不太优雅。

有没有原生支持的方式?或者需要进行二次开发?

portal 运行两天后报Internal Server Error

portal的日志如下

2016-05-23 12:24:53     [connectionpool.py:180] [INFO: Starting new HTTP connection (1): 127.0.0.1]
2016-05-23 12:25:19     [connectionpool.py:180] [INFO: Starting new HTTP connection (1): 127.0.0.1]
2016-05-23 12:25:19     [connectionpool.py:180] [INFO: Starting new HTTP connection (1): 127.0.0.1]
  sig = uic.gen_sig()
  File "/home/work/open-falcon/portal/frame/api/uic.py", line 11, in gen_sig
    return requests.get(url).content
  File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/api.py", line 55, in get
    return request('get', url, **kwargs)
  File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/sessions.py", line 456, in request
    resp = self.send(prep, **send_kwargs)

请问该怎么解决?

Portal报错。

==> var/app.log <==
[2016-08-22 14:45:49 +0000] [5177] [ERROR] Error handling request
Traceback (most recent call last):
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/gunicorn/workers/sync.py", line 130, in handle
self.handle_request(listener, req, client, addr)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/gunicorn/workers/sync.py", line 171, in handle_request
respiter = self.wsgi(environ, resp.start_response)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1836, in call
return self.wsgi_app(environ, start_response)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1473, in full_dispatch_request
rv = self.preprocess_request()
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1666, in preprocess_request
rv = func()
File "/home/work/open-falcon/portal/web/init.py", line 46, in before_request
return redirect_to_sso()
File "/home/work/open-falcon/portal/web/init.py", line 57, in redirect_to_sso
sig = uic.gen_sig()
File "/home/work/open-falcon/portal/frame/api/uic.py", line 11, in gen_sig
return requests.get(url).content
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/api.py", line 55, in get
return request('get', url, *_kwargs)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, *_kwargs)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/sessions.py", line 456, in request
resp = self.send(prep, *_send_kwargs)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/sessions.py", line 559, in send
r = adapter.send(request, *_kwargs)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/adapters.py", line 375, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /sso/sig (Caused by <class 'socket.error'>: [Errno 111] Connection refused)

==> var/access.log <==
124.205.181.226 - - [22/Aug/2016:14:45:49 +0800] "GET / HTTP/1.1" 500 - "-" "-"

==> var/app.log <==
[2016-08-22 14:45:50 +0000] [5173] [ERROR] Error handling request
Traceback (most recent call last):
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/gunicorn/workers/sync.py", line 130, in handle
self.handle_request(listener, req, client, addr)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/gunicorn/workers/sync.py", line 171, in handle_request
respiter = self.wsgi(environ, resp.start_response)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1836, in call
return self.wsgi_app(environ, start_response)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1473, in full_dispatch_request
rv = self.preprocess_request()
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/flask/app.py", line 1666, in preprocess_request
rv = func()
File "/home/work/open-falcon/portal/web/init.py", line 46, in before_request
return redirect_to_sso()
File "/home/work/open-falcon/portal/web/init.py", line 57, in redirect_to_sso
sig = uic.gen_sig()
File "/home/work/open-falcon/portal/frame/api/uic.py", line 11, in gen_sig
return requests.get(url).content
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/api.py", line 55, in get
return request('get', url, *_kwargs)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/api.py", line 44, in request
return session.request(method=method, url=url, *_kwargs)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/sessions.py", line 456, in request
resp = self.send(prep, *_send_kwargs)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/sessions.py", line 559, in send
r = adapter.send(request, *_kwargs)
File "/home/work/open-falcon/portal/env/lib/python2.6/site-packages/requests/adapters.py", line 375, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8080): Max retries exceeded with url: /sso/sig (Caused by <class 'socket.error'>: [Errno 111] Connection refused)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.