设为首页 收藏本站
查看: 1006|回复: 0

[经验分享] 基于Elasticsearch+Fluentd+Kibana的日志收集分析系统

[复制链接]

尚未签到

发表于 2019-1-29 09:57:44 | 显示全部楼层 |阅读模式
  我们平时分析log直接在日志文件中 grep、awk 就可以获得自己想要的信息,此方法效率低下,生产中需要集中化的日志管理,所有服务器上的日志收集汇总
  Elasticsearch
一个节点(node)就是一个Elasticsearch实例,一个集群(cluster)由一个或多个节点组成,它们具有相同的cluster.name,它们协同工作,分享数据和负载。当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据。
集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如新建或删除索引、增加或移除节点等。主节点不参与文档级别的变更或搜索,这意味着在流量增长的时候,该主节点不会成为集群的瓶颈。
做为用户,我们能够与集群中的任何节点通信,包括主节点。每一个节点都知道文档存在于哪个节点上,它们可以转发请求到相应的节点上。我们访问的节点负责收集各节点返回的数据,最后一起返回给客户端。这一切都由Elasticsearch处理。

一个完整的集中式日志系统,需要包含以下几个主要特点:
收集-能够采集多种来源的日志数据
传输-能够稳定的把日志数据传输到中央系统
存储-如何存储日志数据
分析-可以支持 UI 分析
警告-能够提供错误报告,监控机制
fluentd基于CRuby实现,并对性能表现关键的一些组件用C语言重新实现,整体性能不错。
fluentd支持所有主流日志类型,插件支持较多,性能表现较好
logstash支持所有主流日志类型,插件支持最丰富,可以灵活DIY,但性能较差,JVM容易导致内存使用量高。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能
Kibana 也是一个开源和免费的工具,Kibana可以为 td-agent和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
安装流程:

  两个node都下载
#yum install java      下载java环境
#java -version
#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm
#rpm -ih elasticsearch-6.3.1.rpm
Node1(主)
#vim /etc/elasticsearch/elasticsearch.yml   
cluster.name: my-application   //集群名称
node.name: node-1              //主机名称
node.master: true                //主为true
network.host: 172.21.0.9    //主机ip
http.port: 9200     //端口
  Node2 (从)
#vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-application
node.name: node-2
node.master: false
network.host: 172.21.0.37
http.port: 9200discovery.zen.ping.unicast.hosts: ["host1", "172.21.0.9”]  //集群

  #/etc/init.d/elasticsearch start
#/etc/init.d/elasticsearch status
#curl http://172.21.0.9:9200/_cat/health   //测试
#curl http://172.21.0.9:9200/_cat/nodes   //测试

Fluentd (tdagent) //收集那台机器的log在那安装

  #wget http://packages.treasuredata.com.s3.amazonaws.com/3/redhat/7/x86_64/td-agent-3.2.0-0.el7.x86_64.rpm
#rpm -ivh td-agent-3.2.0-0.el7.x86_64.rpm  --force --nodeps
#yum install -y libcurl-devel
#/opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
#cd /etc/td-agent/
>#cat td-agent.conf    //内容可以直接替换

@type forward
port 24224

####################################

@type tail
path /var/log/httpd/access_log
pos_file /var/log/td-agent/httpd-access.log.pos
tag apache.access

@type apache2


####################################

@type stdout

####################################

@type copy

@type elasticsearch
host 172.21.0.9
port 9200
logstash_format true
logstash_prefix fluentd-${tag}
logstash_dateformat %Y%m%d
include_tag_key true
type_name access_log
tag_key @log_name
flush_interval 1s


@type stdout



  #/etc/init.d/td-agent restart
#chmod 777 -R /var/log/httpd/
#tail -f /var/log/td-agent/td-agent.log    //测试
#curl 'http://172.21.0.9:9200/_cat/indices?v’  //测试

Kibana

  #wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.1-x86_64.rpm
#rpm -ivh kibana-6.3.1-x86_64.rpm
#vim /etc/kibana/kibana.yml
server.port: 5601           //端口
server.host: “172.21.0.9"  
elasticsearch.url: "http://172.21.0.9:9200”
kibana.index: ".kibana”

  #/etc/init.d/kibana restart    //重启服务
#tail -f /var/log/kibana/kibana.stderr   //查看
浏览器访问 172.21.0.9:5601
然后在kibana客户端web界面设置Fluentd-log选项

附加'elasticsearch 常用的操作'



  • 查看当前集群的状态
    curl 'http://IP:PORT/_cat/health?v'
    2.查看当前node
    curl 'http://IP:PORT/_cat/nodes?v'
    3.查看所有的index
    curl 'http://IP:PORT/_cat/indices?v'
    4.创建一个index
    curl -XPUT 'IP:PORT/customer?pretty'
    5.创建一个index 带有文档的
    curl -XPUT 'IP:PORT/customer/external/1?pretty' -d '
    {
    "name": "John Doe"
    }'
    6.删除一个index
    curl -XDELETE 'IP:PORT/customer?pretty'
    curl -XDELETE 'IP:PORT/onland-*?pretty’





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669032-1-1.html 上篇帖子: ElasticSearch 2.x 5.x滚动重启 下篇帖子: ElasticSearch笔记整理(一):简介、REST与安装配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表