生产环境部署

Kibana4 是是一个完整的 web 应用。使用时,你需要做的只是打开浏览器,然后输入你运行 Kibana 的机器地址然后加上端口号。比如说:localhost:5601 或者 http://YOURDOMAIN.com:5601

但是当你准备在生产环境使用 Kibana4 的时候,比起在本机运行,就需要多考虑一些问题:

  • 在哪运行 kibana
  • 是否需要加密 Kibana 出入的流量
  • 是否需要控制访问数据的权限

Nginx 代理配置

因为 Kibana4 不再是 Kibana3 那种纯静态文件的单页应用,所以其服务器端是需要消耗计算资源的。因此,如果用户较多,Kibana4 确实有可能需要进行多点部署,这时候,就需要用 Nginx 做一层代理了。

和 Kibana3 相比,Kibana4 的 Nginx 代理配置倒是简单许多,因为所有流量都是统一配置的。下面是一段包含入口流量加密、简单权限控制的 Kibana4 代理配置:

upstream kibana4 {
server 127.0.0.1: fail_timeout=;
}
server {
listen *:;
server_name kibana_server;
access_log /var/log/nginx/kibana.srv-log-dev.log;
error_log /var/log/nginx/kibana.srv-log-dev.error.log; ssl on;
ssl_certificate /etc/nginx/ssl/all.crt;
ssl_certificate_key /etc/nginx/ssl/server.key; location / {
root /var/www/kibana;
index index.html index.htm;
} location ~ ^/kibana4/.* {
proxy_pass http://kibana4;
rewrite ^/kibana4/(.*) /$ break;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/conf.d/kibana.myhost.org.htpasswd;
}
}

如果用户够多,当然你可以单独跑一个 kibana4 集群,然后在 upstream 配置段中添加多个代理地址做负载均衡。

配置 Kibana 和 shield 一起工作

Nginx 只能加密和管理浏览器到服务器端的请求,而 Kibana4 到 ELasticsearch 集群的请求,就需要由 Elasticsearch 方面来完成了。如果你在用 Shield 做 Elasticsearch 用户认证,你需要给 Kibana 提供用户凭证,这样它才能访问 .kibana 索引。Kibana 用户需要由权限访问 .kibana 索引里以下操作:

'.kibana':
- indices:admin/create
- indices:admin/exists
- indices:admin/mapping/put
- indices:admin/mappings/fields/get
- indices:admin/refresh
- indices:admin/validate/query
- indices:data/read/get
- indices:data/read/mget
- indices:data/read/search
- indices:data/write/delete
- indices:data/write/index
- indices:data/write/update
- indices:admin/create

更多配置 Shield 的内容,请阅读官网的 Shield with Kibana 4

要配置 Kibana 的凭证,设置 kibana.yml 里的 kibana_elasticsearch_username 和kibana_elasticsearch_password 选项即可:

# If your Elasticsearch is protected with basic auth:
kibana_elasticsearch_username: kibana4
kibana_elasticsearch_password: kibana4

开启 ssl

Kibana 同时支持对客户端请求以及 Kibana 服务器发往 Elasticsearch 的请求做 SSL 加密。

要加密浏览器(或者在 Nginx 代理情况下,Nginx 服务器)到 Kibana 服务器之间的通信,配置 kibana.yml里的 ssl_key_file 和 ssl_cert_file 参数:

# SSL for outgoing requests from the Kibana Server (PEM formatted)
ssl_key_file: /path/to/your/server.key
ssl_cert_file: /path/to/your/server.crt

如果你在用 Shield 或者其他提供 HTTPS 的代理服务器保护 Elasticsearch,你可以配置 Kibana 通过 HTTPS 方式访问 Elasticsearch,这样 Kibana 服务器和 Elasticsearch 之间的通信也是加密的。

要做到这点,你需要在 kibana.yml 里配置 Elasticsearch 的 URL 时指明是 HTTPS 协议:

elasticsearch: "https://<your_elasticsearch_host>.com:9200"

如果你给 Elasticsearch 用的是自己签名的证书,请在 kibana.yml 里设定 ca 参数指明 PEM 文件位置,这也意味着开启了 verify_ssl 参数:

# If you need to provide a CA certificate for your Elasticsarech instance, put
# the path of the pem file here.
ca: /path/to/your/ca/cacert.pem

控制访问权限

你可以用 Elasticsearch Shield 来控制用户通过 Kibana 可以访问到的 Elasticsearch 数据。Shield 提供了索引级别的访问控制。如果一个用户没被许可运行这个请求,那么它在 Kibana 可视化界面上只能看到一个空白。

要配置 Kibana 使用 Shield,你要位 Kibana 创建一个或者多个 Shield 角色(role),以 kibana4 作为开头的默认角色。更详细的做法,请阅读 Using Shield with Kibana 4

虚拟现实最新资讯

Kibana4学习<二>的更多相关文章

  1. Kibana4学习<三>

    discover 功能 Discover 标签页用于交互式探索你的数据.你可以访问到匹配得上你选择的索引模式的每个索引的每条记录.你可以提交搜索请求,过滤搜索结果,然后查看文档数据.你还可以看到匹配搜 ...

  2. HTTP学习三:HTTPS

    HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...

  3. TweenMax动画库学习(三)

    目录               TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)           ...

  4. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  5. 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化

    1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...

  6. DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件

    DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件   本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...

  7. [ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点

    深度学习三巨头之一来清华演讲了,你只需要知道这7点 http://wemedia.ifeng.com/10939074/wemedia.shtml Yann LeCun还提到了一项FAIR开发的,用于 ...

  8. SVG 学习<三>渐变

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  9. Android JNI学习(三)——Java与Native相互调用

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  10. day91 DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件

    DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件   本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...

随机推荐

  1. linux 下wifi 功能的实现

    一.嵌入式linux四件套配置 1.网卡选型的依据: a.网卡不能乱选,否则没戏.网卡的依据是,kernel的menuconfig -> device drivers -> network ...

  2. DevExpress 14.2 批量汉化 以及客户端的汉化

    DXperience汉化方法介绍 运用慧都提供的DXperience汉化包,能将最新版本的DXperience WinForm和ASP.NET控件界面.弹出框.右键菜单等汉化成中文,且能根据自己的需求 ...

  3. MVC5 Identity 用用户名登录而不用电子邮件

    1.修改AccountViewModels ·修改RegisterViewModel public class RegisterViewModel { [Required] [Display(Name ...

  4. CSS中的content和attr的用法

    问题缘起 在闲看别人网站时发现了这样的代码 <span class="hamburger icon" data-icon="C"> .icon:be ...

  5. 极路由1s手工安装ss插件

    1.极路由申请开放root权限,将会失去保修,不过100块的东西还保修个什么 2.用putty连接极路由注意端口号 3. 然后一段一段执行下面的代码,很简单,复制一个段落的代码,粘贴进去,回车执行. ...

  6. 【转】mysql字符串函数

    对于针对字符串位置的操作,第一个位置被标记为1(即:第一个字母索引为1). ASCII(str) 返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL ...

  7. 浅谈Objective-C编译器指令

    ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS ...

  8. 算法系列8《Base64》

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单 ...

  9. oracle - redo 损坏或删除处理方法

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...

  10. WARNING: /sys/kernel/mm/transparent_hugepage/enabled is

    安装MONGODB 3.0.6的时候提示警告信息,如下: 2015-09-09T11:04:35.011+0800 I CONTROL [initandlisten] ** WARNING: /sys ...