简单ELK日志查询服务程序搭建

最近在翻<<JAVA微服务实战>>这本书,书中有介绍一个微服务日志系统;

 

ELK是一个技术栈,包括Elasticsearch,Logstash和Kibana,ELK是三种技术首字母缩写.ELK主要用于日志收集.存储与查询..

 

为什么用ELK,就是简单的方便查询分析日志呗...

 

常用的ELK的架构为 logstash==>elasticsearch====>kibana...个人感觉kibana更多的功能在于操作查询使用,一种操作es的可视化工具,在ELK中扮演的作用并不大..

 

考虑到

  • 并发日志量增加
  • logstash将数据索引到ElasticSearch比较慢
  • 索引失败,数据丢失

 

后来多引入一个组件:redis,作为缓冲框架;

 

应用服务===> logstash-shipper ===>redis ===>logstash-indexer ====>elasticSearch ====>kibana;

此时应用服务,shipper,redis,indexer都是用分布式来实现的...相应的组件就是:

本地微服务,logstash,redis,es,kibana;

然后es用的版本是:

其实版本用的挺杂的,自己用这几版本能真正用起来,其实就已经很不错了....

基础环境:

jdk 1.8

 

注意事项:

  • 微服务引入logback的版本要一致,不能有冲突;
  • es的安装需要切换用户;root用户是不能启动执行的
  • redis的安装设置后台启动;修改redis.conf中daemonize为yes,bind参数最好也改一下,很多文章要求改为ip.我是改为0.0.0.0,感觉改成这样更好用...(也可以能是个大坑,至少我现在还没踩到...嘻嘻嘻...)
  • logstash中的设置,注意input和output的插件类型,是file还是tcp;注意ip
  • logstash中的配置文件的格式及 => 等符号...具体有错误时,请仔细查看启动日志(tail -f nohup)非常有用.

至少上面几点是我踩过的坑,真是有效.

 

各程序的启动命令(仅方便本人使用)

es:su es(切换es用户) 进入 /usr/local/elasticsearch下,./bin/elasticsearch -d 启动即可,jps -m -l查看进程 ip:9200

kibana:进入/home/soft/kibana-6.3.2-linux-x86_64..执行命令 nohup ./bin/kibana & 后台执行 node程序  ip:5601
    查看进程  netstat -tlnp |grep 5601得到一个pid,ps aux | grep pid(上一个命令的pid值) 即可
ip:5601

redis安装目录:
/home/soft/redis-5.0.7
启动服务端:./src/redis-server redis.conf  (bind 0.0.0.0)

启动客户端:./src/redis-cli (因为我已经改过bind了..所以没问题)

启动:logstash-indexer/shipper:

nohup ./bin/logstash -f conf/logstash.conf & 启动即可...tail -f nohup.out查看启动日志

关闭:ps -ef|grep logstash  看清楚,哪个是你的进程,再kill掉

 

其他的坑,后期遇到了再补充...本文简单介绍,下文分开说.

发布了165 篇原创文章 · 获赞 40 · 访问量 15万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章