目录
官放文档:Explore Kibana using sample data | Kibana Guide [7.6] | Elastic
kibana主要从es里面加载数据然后展示数据。Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。还可以将地理数据融入任何地图。
Kibana 开发工具为开发人员提供了多种强大方法来帮助其与 Elastic Stack 进行交互;
kibana的功能是非常强大,但在运行过程中也是比较消耗内存的。
官方下载地址:Install Kibana with RPM | Kibana Guide [7.6] | Elastic
- ##选择在线安装和离线安装两种,安装时需要保证ELK三个插件保持一致
- ##与logstash安装在同一台主机上
- ##下载并安装
- wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-x86_64.rpm
- shasum -a 512 kibana-7.6.2-x86_64.rpm
- sudo rpm --install kibana-7.6.2-x86_64.rpm
-
- ##修改配置文件:/etc/kibana
- --------------------------------------------------------------
- server.port:5601 --指定主机和端口
- server.host:"192.168.19.75"
-
- elasticsearch.hosts:["http://192.168.19.71:9200"] --指定ES集群地址和 kibana在ES中创建的索引;
- kibana.index: ".kabana"
-
- il8n.locale: "zh-CN" --设置为中文
- --------------------------------------------------------------
-
- ##启动服务
- systemctl start kibana.service
-
- ##网页访问
- 192.168.19.75:5601
- -->可以添加样例数据查看效果
- ##在web端
- 创建一个索引,查看之前的存在es中的apache的日志数据
- 管理 -> 索引模式 -> 创建索引模式
- 选择apachelog-这个索引 -> 下一步
- 选择时间戳 -> 创建索引模式,现在就创建了一个和apache的日志相关联的索引了
-
- 可视化 -> 创建可视化 --可以看到访问次数注意时间范围的选择,默认是过去15分钟的数据
- 保存
- ##运行grok.conf文件,采集数据输入给es
- /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf
-
- ##真机压力测试,总共访问100次192.168.19.71/index.html,并发数为1
- ab -n 100 -cl http://192.168.19.71/index.html
-
- ##刷新kibana,查看数据
- ##查看es,以及相应的索引
- ##点击可视化->创建可视化
- 选择垂直条形图->选择索引
- Y轴是访问的次数,默认没有X轴,添加X轴;选择词来定义,使用客户ip作为X轴,降序排列,看最高的前五名,执行
- ##web页面查看
- 可以看到条形图,可以看到相应主机对apache的访问量
- ##保存
-
- ##将两个图放在一起分析
- 点击仪表板 -> 添加
- 添加websit和top5 --刚才保存的项目起的名字
-
- ##网页查看,可以发现两组数据在一起
-
- ##保存
目前部署的ELK三个软件端口都是开放的,任何人都能访问,没有任何安全保障,容易受到攻击,比如日志索引被删除等恶意行为。所以使用 xpack安全组件来保护ELK,这样es都是内部运行的,不暴露外网,更安全。
- ##点击集群监控,选择monitoring监控
- 点击设置模式
- ##配置所有es的的安全认证
-
- ##配置传输层,使es集群可以通信
- server1进入/usr/share/elasticsearch/,调用bin目录下的指令,使用elasticsearch-certutil工具生成ca,密码可以不指定(直接回车)
-
- ##生成证书
- elasticsearch-certutil cert --ca elastic-stack-ca.p12
-
- ##将证书复制到/etc/elasticsearch
- cp elastic-stack-ca.p12 /etc/elasticsearch
-
- ##修改权限:文件拥有者改为 elasticsearch,方便访问
- chown elasticsearch elastic-stack-ca.p12
-
- ##修改主配置文件:vim elastic-stack-ca.p12.yml
- -------------------------------------------------------
- xpack.security.enabled: true
- xpack.security.transport.ssl.enabled: true
- xpack.security.transport.ssl.verification_mode: certificate
- xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificate.p12
- xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificate.p12
- -------------------------------------------------------
-
-
- ##证书分别分给集群中的每一次节点server2/3
- scp elastic-certificate.p12 server2:/etc/elasticsearch
- scp elastic-certificate.p12 server3:/etc/elasticsearch
-
- ##修改两个文件的权限server2\3
- chown elasticsearch elastic-certificate.p12
-
- ##修改主配置文件,开启服务:server2/3
- -------------------------------------------------------
- xpack.security.enabled: true
- xpack.security.transport.ssl.enabled: true
- xpack.security.transport.ssl.verification_mode: certificate
- xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificate.p12
- xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificate.p12
- -------------------------------------------------------
-
- ##重启服务
- systemctl restart elasticsearch.service
- ##设置密码
- bin/elasticsearch-setup-passwords interactive
- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- 命令行输入相同的密码:123
- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- ##设置kibana(server3)连接ES的用户密码
- vim /etc/kibana/kibana.yml
- ---------------------------------
- elasticsearch.username: "kibana"
- elasticsearch.passwdor: "123"
- ---------------------------------
-
- ##重启服务
- systemctl restart kibana
-
- ##在网页端重新登录,登录时使用elastic,提供更多的操作权限
-
- ##设置logstash(server1)连接ES用户
- vim grok.conf
- ------------------------------------------------------------------
- input {
- file {
- path => "/var/log/httpd/access_log" --/var/log/httpd/access_log文件作为输入
- start_position => "beginning" --从头开始
- }
-
- }
-
- filter {
- grok {
- match => { "message" => "%{HTTPD_COMBINEDLOG}" } --按照默认的HTTPD_COMBINEDLOG方式切片
- }
- }
-
- output {
- stdout {}
-
- elasticsearch {
- hosts => ["192.168.19.71:9200"]
- index => "apachelog-%{+yyyy.MM.dd}" --索引名字叫apachelog
- user => "elastic"
- password => "123"
- }
-
- }
- ------------------------------------------------------------------
-
- ##执行
- /usr/share/logstash/bin/logstash -f grok.conf
-
- ##设置elasticsearh-head(server1)
- ##修改主配置/etc/elasticsearch/elasticsearch.yml
- ------------------------------------------------------------------
- http.port: 9200
- http.cors.enabled: true
- http.cors.allow-origin: ""
- http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
- ------------------------------------------------------------------
-
- ##重启服务
- systemctl restart elasticsearch.service
-
- ##访问:需要添加用户和密码
- --http://192.168.19.71:9100/?auth_user=elastic&auth_password=123
-