ELK有坑,千万别踩( 四 )


ELK有坑,千万别踩

文章插图
 

ELK有坑,千万别踩

文章插图
 
方法如下:
在kibana节点上写一个脚本,然后设置定时任务执行kibana中索引与elasticsearch的关联vim /usr/local/scripts/kibana_create_index.sh#!/bin/bashtoday=`date +%Y-%m-%d`index_name="nginx-log-${today}.log"curl -X POST -H "kbn-xsrf:reporting" -H "Content-Type: application/json"-d'{"attributes":{"title":"'$log_name'"}}''http://172.16.211.143:5601/api/saved_objects/index-pattern'这里遇到一个问题,json中调用变量的问题,一直调用不到,后来各种查询原来是格式不对json数据里变量要用''括起来<font color=gray size=72>color=gray</font>json数据里变量要用''括起来https://www.cnblogs.com/landhu/p/7048255.html
ELK 索引生命周期管理问题解决Kibana server is not ready yet出现的原因第一点:KB、ES版本不一致(网上大部分都是这么说的)
解决方法:把KB和ES版本调整为统一版本
第二点:kibana.yml中配置有问题(通过查看日志,发现了Error: No Living connections的问题)
解决方法:将配置文件kibana.yml中的elasticsearch.url改为正确的链接,默认为: http://elasticsearch:9200
改为http://自己的IP地址:9200
第三点:浏览器没有缓过来
解决方法:刷新几次浏览器 。
终极解决方法:在elasticsearch中删除kibana的相关索引,只是再打开kibana看不到其他了之前创建的图形什么的了
kibana可以做哪些分析分析的必要性:顶级
  • 用户分布
  • PV、UV
  • 状态码
  • 访问时间
更多图形看这里https://www.cnblogs.com/hanyifeng/p/5860731.html
比较牛逼一点的教程看这里https://www.bilibili.com/video/BV1TE411A77i?p=6
三、logstashlogstash和filebeat的对比Filebeat是收集日志的另外一种方式,二者区别在于以下
Filebeat用于日志收集和传输,相比Logstash更加轻量级和易部署,对系统资源开销更小,日志流架构的话,Filebeat适合部署在收集的最前端,Logstash相比Filebeat功能更强,可以在Filebeat收集之后,由Logstash进一步做日志的解析,至于kafka也可以考虑添加,然后收集的数据都存放在elasticsearch中 。
  1. logstash和filebeat都是可以作为日志采集的工具,目前日志采集的工具有很多种,如fluentd, flume, logstash,betas等等 。甚至最后我决定用filebeat作为日志采集端工具的时候,还有人问我为什么不用flume,logstash等采集工具 。
  2. logstash出现时间要比filebeat早许多,随着时间发展,logstash不仅仅是一个日志采集工具,它也是可以作为一个日志搜集工具,有丰富的input|filter|output插件可以使用 。常用的ELK日志采集方案中,大部分的做法就是将所有节点的日志内容上送到kafka消息队列,然后使用logstash集群读取消息队列内容,根据配置文件进行过滤 。上送到elasticsearch 。logstash详细信息可前往https://www.elastic.co/
  3. logstash是使用Java编写,插件是使用jruby编写,对机器的资源要求会比较高,网上有一篇关于其性能测试的报告 。之前自己也做过和filebeat的测试对比 。在采集日志方面,对CPU,内存上都要比前者高很多 。LogStash::Inputs::Syslog 性能测试与优化
  4. filebeat也是elastic.公司开发的,其官方的说法是为了替代logstash-forward 。采用Go语言开发 。代码开源 。elastic/beats filebeat是beats的一个文件采集工具,目前其官方基于libbeats平台开发的还有Packetbeat, Metricbeat, Winlogbeat 。filebeat性能非常好,部署简单 。是一个非常理想的文件采集工具 。我自己采集工具也是基于beats源码进行的二次开发 。
https://blog.csdn.net/m0_38120325/article/details/79072921
自动创建elasticsearch的索引在logstash客户端的配置文件中会有这么一个配置文件
ELK有坑,千万别踩

文章插图
 
就是会将日志发送到当天日期的索引汇总,没有的话自动创建索引,我们只需要做的就是每日删除旧的索引 。
电子书教程推荐:http://doc.yonyoucloud.com/doc/logstash-best-practice-cn/get_start/introduction.html
启动方法 基于最基础的 nohup 方式nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/agent.conf &> /dev/null也可以用daemontools来进行管理安装yum -y install supervisord --enablerepo=epel在 /etc/supervisord.conf 配置文件里添加内容,定义你要启动的程序:[program:elkpro_1]environment=LS_HEAP_SIZE=5000mdirectory=/opt/logstashcommand=/opt/logstash/bin/logstash -f /etc/logstash/pro1.conf --pluginpath /opt/logstash/plugins/ -w 10 -l /var/log/logstash/pro1.log[program:elkpro_2]environment=LS_HEAP_SIZE=5000mdirectory=/opt/logstashcommand=/opt/logstash/bin/logstash -f /etc/logstash/pro2.conf --pluginpath /opt/logstash/plugins/ -w 10 -l /var/log/logstash/pro2.log然后启动 service supervisord start 即可 。logstash 会以 supervisord 子进程的身份运行,你还可以使用 supervisorctl 命令,单独控制一系列 logstash 子进程中某一个进程的启停操作:supervisorctl stop elkpro_2


推荐阅读