ELK Stack (8)——部署cerebro管理ES
41889
2019-10-07
Kibana可以为Elasticsearch提供一个可视化平台,将收集到的数据进行图形化展示。Kibana 7开始默认支持了中文,配图更为方便,推荐使用
一、Kibana的安装与配置
1、Kibana不需要在每个客户端都安装,通常想让哪台服务器作为展示就用哪台安装一个kibana,Kibana是从Elasticsearch中获取数据的,即使安装在Elasticsearch集群之外的节点也是没有问题的
tar zxf kibana-6.3-linux-x64.tar.gz mv kibana-6.3-linux-x64 /usr/local/ ln -s /usr/local/kibana-6.3-linux-x64 /usr/local/kibana
2、Kibana配置只需要修改主配置文件config/kibana.yml里的以下信息即可
vi config/kibana.yml server.port: 5601 #kibana端口 server.host: "0.0.0.0" #kibana地址 elasticsearch.url: "http://192.168.44.129:9200" #ES的地址与端口 kibana.index: ".kibana" i18n.locale: "zh-CN" #Kibana7可这样修改为中文
3、运行bin/kibana脚本可以直接启动服务,通常加上nohup放后台运行。Kibana的插件管理和Elasticsearch一样
nohup kibana & kibana-plugin install plugin_location
二、Kibana的基本使用
1、创建索引
Kibana服务默认监控在5601端口,浏览器访问http://IP:5601可以打开Kibana的界面(不要用IE内核访问)。第一次访问Kibana需要为Kibana配置索引,输入在ES中存在的索引名字后Kibana会自动进行正则匹配(通常是在loggstash的output段使用index选项自定义索引,创建索引后当有数据产生后kibana就会搜索到索引),如下是logstash配置索引的示例:
output { elasticsearh { hosts => ["http://127.0.0.1:9200"] index => "nginx-%{+YYYY.MM.dd}" } }
2、Kibana左侧菜单介绍
Discover:用于和Elasticsearch交互,通过这个功能进行搜索
Visualize:用于单个图表的制作,图表分有饼图、曲线图、线状图等,不同类型的图标选项会有一定区别。比如有一个银行系统里面有很多用户,现在想统计每个存钱区间的人数,存款在1万以下有多少人,5万以下有多少人等,用这个报表系统就可以方便的进行操作,如下是展示Nginx日志中独立ip的个数
Dashboard:整合了多个图表的面板,方便查看
3、时间过滤
右上角有个时间过滤器,可以根据时间范围进行数据过滤。默认是展示最近15分钟的数据,如果时间范围内没有数据会显示No results found。过滤器分为了快速查找(Quick)、相对时间(Relative)、绝对时间(Absolute)。
在中间部分有绿色的直方图,点击绿色区域会跳转到对应时间的数据,并且显示该时间内产生了多少数据,如图:
在页面左侧可以选择需要查看的索引以及字段,Available Fields可以设置字段的过滤条件,字段前面的小字t、n等代表了字段的类型。当点击了某个字段后,右侧就不会再是默认的_source内容,而是指定的字段:
通过kibana进行全文搜索也很简单,只需要在搜索框里输入关键词,然后就会自动把匹配的日志给展示出来:
还有个DevTool工具用户查询Elasticsearch中的数据,它其实就是取代了使用curl命令去获取数据,使用match(精准匹配)或者fuzzy(模糊查询)等子命令来进行操作,并且支持命令的补齐。下面就是使用该工具进行全文查询或者条件查询的示例
GET moviv_index/movie/_search { "query":{ "match_all":{} } } GET moviv_index/movie/_search { "query":{ "match":{ "doubanScore": "9" } } }
和Nginx一样,Kibana也有一个监控页用于查看服务器当前状况,当然在生产中最好也使用Nginx做好权限审核,不要让任何人都可以登录,Kibana监控页访问地址是http://URL/status,如图:
要实现Nginx认证的话只需要在Kibana节点上安装一个Nginx,然后做以下配置:
server { listen 80; server_name localhost; location / { auth_basic "请输入用户名密码进行登录"; auth_basic_user_file /usr/local/nginx/conf/htpasswd; proxy_pass http://127.0.0.1:5601; } }
三、Kibana中时间轴的问题
由于Kibana默认是以Logstash收到日志的时间为时间轴,所以可能存在这样一个问题,在2019年1月1日部署了ELK,收集了2018年的日志数据,但是Kibana中时间轴会显示访问集中在2019年1月1日,这样影响了正常的数据分析,所以需要修改Logstash的相关配置,让日志中的时间相关字段去覆盖默认的时间戳
filter grok { match => { ........ } date { match => ["requesttime","dd/MMM/yyyy:HH:mm:ss Z"] target => "@timestamp" } }
再看Kiban时间轴的显示效果就是正确的了,如果日期格式不匹配的话会有_dateparsefailure的tags,效果如图:
发表评论
暂时没有评论,来抢沙发吧~