奥飞火千万电 发表于 2019-1-28 10:03:52

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍
  在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段:
  以下内容来自: http://baidu.blog.运维网.com/71938/1676798
  日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
  通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。
  集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
  开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站: https://www.elastic.co/products

[*]  Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
[*]  Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
[*]  Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
  —————————- 摘抄内容结束——————————-
  画了一个ELK工作的原理图:
https://s2.运维网.com/wyfs02/M00/8F/C0/wKioL1jsNbLjc7NOAAExS6LeEAk535.png
  如图:Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。
ELK平台搭建
系统环境
  System: Centos release 6.6 (Final)
  ElasticSearch: elasticsearch-5.3.0.tar.gz
  Logstash: logstash-5.3.0.tar.gz
  Kibana: kibana-5.3.0-linux-x86_64.tar.gz
  Java: openjdk version”1.8.0_51″
  ELK官网下载: https://www.elastic.co/downloads/
  

https://s1.运维网.com/wyfs02/M01/8F/C0/wKioL1jsN-ThuU9yAABdBSZzgOc286.png
ElasticSearch
  配置ElasticSearch:
  useradd elk            #ES不允许root启动服务

tar -zxvf elasticsearch-5.3.0.tar.gzcd elasticsearch-5.3.0vi config/elasticsearch.yml  修改以下配置项:
cluster.name: es_cluster
node.name: node0
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: 172.16.160.122
http.port: 9200  其他的选项保持默认,然后启动ES:
  su elk

./bin/elasticsearch &  3、
  补:启动异常:ERROR: bootstrap checks failed
  system call filters failed to install; check the logs and fix your
configuration or disable system call filters at your own risk
    问题原因:因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
    解决方法需要修改几个地方:
        1, 在elasticsearch.yml中配置,注意要在Memory下面:
  bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
        2,vim /etc/security/limits.d/90-nproc.conf
        *          soft    nproc   65535
      root       soft    nproc   unlimited
        3,vim /etc/sysctl.conf
        vm.max_map_count = 655360
        

        

https://s3.运维网.com/wyfs02/M01/8F/C3/wKioL1jsbwqRfbbrAABf9p1jnVs303.png
  可以看到,它跟其他的节点的传输端口为9300,接受HTTP请求的端口为9200。
Logstash
  Logstash的功能如下:
https://s2.运维网.com/wyfs02/M01/8F/C4/wKioL1jse_XQs7fpAACh9CJ4pRA963.png
  其实它就是一个 收集器 而已,我们需要为它指定Input和Output(当然Input和Output可以为多个)。而Output就是ElasticSearch。
  配置Logstash:
tar -zxvf logstash-5.3.0.tar.gz
cd logstash-5.3.0  编写配置文件(名字和位置可以随意,这里我放在config目录下,取名为a_es.conf):
mkdir config
vi config/a_es.confinput {
      file {
                path => "/tmp/a.log"                                    #创建的测试日志文件
             }
      }
filter {
       }

output {
      stdout {
                codec => rubydebug
                }
      elasticsearch {
                index => "test_%{+YYYY.MM.dd}"      #索引信息
                hosts => [ "172.16.160.122:9200" ]
                      }
       }  ./bin/logstash -f config/a_es.conf
  如下图,证明通信无误
https://s4.运维网.com/wyfs02/M00/8F/F4/wKioL1jt-qnDfqp0AACyiHH9sPw776.png
Kibana
  配置Kibana:
tar -zxvf kibana-4.3.0-linux-x86.tar.gz
cd kibana-4.3.0-linux-x86
vi config/kibana.yml
server.port: 5601
server.host: "172.16.160.122"
elasticsearch.url: http://172.16.160.122:9200
kibana.index: ".kibana.yml"
./bin/kibanahttps://s1.运维网.com/wyfs02/M00/8F/F4/wKioL1jt_FTSfoZaAAC_43dixZc821.png
  

  




页: [1]
查看完整版本: ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台