Elastic stack 是指由Elasticsearch、Logstash、Kibana和Kafka、Filebeat组成的日志分析平台,即传统的ELK加上Kafka和Filebeat,可以将系统、网站、应用等日志进行收集、过滤、清洗,然后进行集中存放,最终用于实时检索和分析。
部署Kibana
本文介绍如何部署Kibana。
点击此处访问Kibana下载地址,本文以7.6.2版本为例。
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-linux-x86_64.tar.gz tar zxvf kibana-7.6.2-linux-x86_64.tar.gz
配置kibana
修改配置config/kibana.yml:
server.port: 5601 server.host: "10.10.200.207" elasticsearch.hosts: ["http://10.10.200.204:9200","http://10.10.200.205:9200","http://10.10.200.206:9200"]
启动kibana
nohup ./bin/kibana >/dev/null 2>&1 &
访问站点
默认访问方式:http://10.10.200.207:5601/
安全配置
因 Elastic Stack 自带的XPack安全组件是收费的,因此可以采用较方便的加密方式,并通过nginx代理访问。
# 安装http-tools/nginx yum -y install httpd-tools nginx # 生成密钥 htpasswd -c /opt/kibana-7.6.2/key/.kibana.pass admin chmod 644 /opt/kibana-7.6.2/key/.kibana.pass
配置nginx
修改配置/etc/nginx/conf.d/kibana.conf:
server { listen 80; server_name 10.10.200.207; location / { auth_basic "Kibana"; auth_basic_user_file /opt/kibana-7.6.2/key/.kibana.pass; proxy_pass http://10.10.200.207:5601$request_uri; } }
nginx -s reload
最后,配置系统防火墙禁止访问本机5601端口、开放80端口即可,然后访问Kibana时就会提示输入密码了。
参数说明
Kibana是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和Elasticsearch协作。您可以使用Kibana对Elasticsearch索引中的数据进行搜索、查看、交互操作,利用图表、表格及地图对数据进行多元化的分析和呈现。
Kibana可以使大数据通俗易懂,它很简单,基于浏览器的界面便于您快速创建和分享动态数据仪表板来追踪Elasticsearch的实时数据变化。
参数 | 说明 |
server.port | Kibana由后端服务器提供服务,该配置指定使用的端口号。 默认值:5601 |
server.host | 指定后端服务器的主机地址。 默认值:localhost |
server.basePath | 如果启用了代理,指定Kibana的路径,该配置项只影响Kibana生成的 URLs,转发请求到Kibana时代理会移除基础路径值,该配置项不能以斜杠 (/)结尾。 |
server.maxPayloadBytes | 服务器请求的最大负载,单位字节。 默认值:1048576 |
server.name | Kibana实例对外展示的名称。 默认值:HOSTNAME |
server.defaultRoute | Kibana的默认路径,该配置项可改变Kibana的登录页面。 默认值:/app/kibana |
elasticsearch.url | 用来处理所有查询的Elasticsearch实例的URL。 默认值:http://localhost:9200 |
elasticsearch.preserveHost | 该设置项的值为true时,Kibana使用server.host设定的主机名,该设置项的值为false时,Kibana使用主机的主机名来连接Kibana实例。 默认值:true |
kibana.index | Kibana使用Elasticsearch中的索引来存储保存的检索,可视化控件以及仪表板。如果没有索引,Kibana会创建一个新的索引。 默认值:.kibana |
kibana.defaultAppId | 默认加载的应用。 默认值:discover |
tilemap.url | Kibana用来在tile地图可视化组件中展示地图服务的URL。默认时,Kibana从外部的元数据服务读取url,用户也可以覆盖该参数,使用自己的tile地图服务。例如:"https://tiles.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana" |
tilemap.options.minZoom | 最小缩放级别。 默认值:1 |
tilemap.options.maxZoom | 最大缩放级别。 默认值:10 |
tilemap.options.attribution | 地图属性字符串。 默认值:"© [Elastic Tile Service](https://www.elastic.co/elastic-tile-service)" |
tilemap.options.subdomains | 服务使用的二级域名列表,用{s}指定二级域名的URL地址。 |
elasticsearch.username elasticsearch.password |
Elasticsearch设置了基本的权限认证,该配置项提供了用户名和密码,用于Kibana启动时维护索引。Kibana用户仍需要Elasticsearch由Kibana服务端代理的认证。 |
server.ssl.enabled | 对到浏览器端的请求启用SSL,设为true时,server.ssl.certificate和server.ssl.key也要设置。 默认值:false |
server.ssl.certificate server.ssl.key |
PEM格式SSL证书和SSL密钥文件的路径。 |
server.ssl.keyPassphrase | 解密私钥的口令,该设置项可选,因为密钥可能没有加密。 |
server.ssl.certificateAuthorities | 可信任PEM编码的证书文件路径列表。 |
server.ssl.supportedProtocols | 版本支持的协议,有效的协议类型:TLSv1、TLSv1.1、TLSv1.2。 默认值:TLSv1、TLSv1.1、TLSv1.2 |
server.ssl.cipherSuites | 具体格式和有效参数可通过[OpenSSL cipher list format documentation](https://www.openssl.org/docs/man1.0.2/apps/ciphers.html#CIPHER-LIST-FORMAT) 获得。 默认值:ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-GCM-SHA384, DHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, DHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA256, DHE-RSA-AES256-SHA256, HIGH,!aNULL, !eNULL, !EXPORT, !DES, !RC4, !MD5, !PSK, !SRP, !CAMELLIA. |
elasticsearch.ssl.certificate elasticsearch.ssl.key |
可选配置项,提供PEM格式SSL证书和密钥文件的路径。这些文件确保Elasticsearch后端使用同样的密钥文件。 |
elasticsearch.ssl.keyPassphrase | 解密私钥的口令,该设置项可选,因为密钥可能没有加密。 |
elasticsearch.ssl.certificateAuthorities | 指定用于Elasticsearch实例的PEM证书文件路径。 |
elasticsearch.ssl.verificationMode | 控制证书的认证,可用的值有none、certificate、full。full执行主机名验证,certificate不执行主机名验证。 默认值:full |
elasticsearch.pingTimeout | 等待Elasticsearch的响应时间。 默认值:`elasticsearch.requestTimeout` |
elasticsearch.requestTimeout | 等待后端或Elasticsearch的响应时间,单位微秒,该值必须为正整数。 默认值:30000 |
elasticsearch.requestHeadersWhitelist | Kibana客户端发送到Elasticsearch头体,发送no头体,设置该值为[]。 默认值:[ 'authorization' ] |
elasticsearch.customHeaders | 发往Elasticsearch的头体和值, 不管elasticsearch.requestHeadersWhitelist如何配置,任何自定义的头体不会被客户端头体覆盖。 默认值:{} |
elasticsearch.shardTimeout | Elasticsearch等待分片响应时间,单位微秒,0即禁用。 默认值:0 |
elasticsearch.startupTimeout | Kibana启动时等待Elasticsearch的时间,单位微秒。 默认值:5000 |
pid.file | 指定Kibana的进程ID文件的路径。 |
logging.dest | 指定Kibana日志输出的文件。 默认值:stdout |
logging.silent | 该值设为true时,禁止所有日志输出。 默认值:false |
logging.quiet | 该值设为true时,禁止除错误信息除外的所有日志输出。 默认值:false |
logging.verbose | 该值设为true时,记下所有事件包括系统使用信息和所有请求的日志。 默认值:false |
ops.interval | 设置系统和进程取样间隔,单位微妙,最小值100。 默认值:5000 |
status.allowAnonymous | 如果启用了权限,该项设置为true即允许所有非授权用户访问Kibana服务端API和状态页面。 默认值:false |
cpu.cgroup.path.override | 如果挂载点跟/proc/self/cgroup不一致,覆盖 cgroup cpu 路径。 |
cpuacct.cgroup.path.override | 如果挂载点跟/proc/self/cgroup不一致,覆盖 cgroup cpuacct 路径。 |
console.enabled | 设为false来禁用控制台,切换该值后服务端下次启动时会重新生成资源文件,因此会导致页面服务有点延迟。 默认值:true |
elasticsearch.tribe.url | Elasticsearch tribe 实例的URL,用于所有查询。 |
elasticsearch.tribe.username elasticsearch.tribe.password |
Elasticsearch设置了基本的权限认证,该配置项提供了用户名和密码,用于Kibana启动时维护索引。Kibana用户仍需要Elasticsearch由Kibana服务端代理的认证。 |
elasticsearch.tribe.ssl.certificate elasticsearch.tribe.ssl.key |
可选配置项,提供PEM格式SSL证书和密钥文件的路径。这些文件确保Elasticsearch后端使用同样的密钥文件。 |
elasticsearch.tribe.ssl.keyPassphrase | 解密私钥的口令,该设置项可选,因为密钥可能没有加密。 |
elasticsearch.tribe.ssl.certificateAuthorities | 指定用于 Elasticsearch tribe 实例的PEM证书文件路径。 |
elasticsearch.tribe.ssl.verificationMode | 控制证书的认证,可用的值有none、certificate、full 。full执行主机名验证,certificate不执行主机名验证。 默认值:full |
elasticsearch.tribe.pingTimeout | 等待Elasticsearch的响应时间。 默认值:`elasticsearch.tribe.requestTimeout` |
elasticsearch.tribe.requestTimeout | 等待后端或Elasticsearch的响应时间,单位微秒,该值必须为正整数。 默认值:30000 |
elasticsearch.tribe.requestHeadersWhitelist | Kibana发往Elasticsearch的客户端头体,发送no头体,设置该值为[]。
默认值:[ 'authorization' ] |
elasticsearch.tribe.customHeaders | 发往Elasticsearch的头体和值,不管elasticsearch.tribe.requestHeadersWhitelist 如何配置,任何自定义的头体不会被客户端头体覆盖。 默认值:{} |
原创文章禁止转载:技术学堂 » Elastic.stack集群部署课程五·Kibana