dyok 发表于 2019-1-29 12:45:47

快速搭建ELK,以及简单故障处理

  ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
  Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
  Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
  一. ElasticSearch 的安装与运行
  ES 是一个基于 Lucene 的使用 Java 开发的开源搜索引擎,因此其运行是基于 JVM 的,因此在安装之前需要保证已经安装了 Java 环境。ES 要求使用 Java8 或者更高版本的 Java 环境。
  确定机器已经安装了 Java 环境后,就可以安装 ES 了。官网提供了压缩包可以直接下载,
  # 下载压缩包wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz# 解压tar -xzf elasticsearch-6.2.2.tar.gz# 进入文件cd elasticsearch-6.2.2/

[*]  下载解压完成后进入目录,启动命令在 bin 目录下,直接运行命令就可以启动了
  注意: 启动报错
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/5ac2ad71286b4144a5647eecf04777bd/clipboard.pnghttp://s1.运维网.com/images/20180813/1534144960916164.png
  解决方法:es不能用root启动,先建立一个es用户,并给与启动文件权限 useradd ***       chown -R**:**   ././(es的文件路径)
  切换到es用户
  bin/elasticsearch
  ElasticSearch 的默认启动端口是 9200。手动访问出现如下信息说明启动成功。
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/33aa96f9b3c34218a010b8c6023d7d6e/clipboard.pnghttp://s1.运维网.com/images/20180813/1534145147873261.png
  二. FileBeats 与 LogStash 的安装
  LogStash 可以用来对日志进行收集并进行过滤整理后输出到 ES 中,FileBeats 是一个更加轻量级的日志收集工具。
  现在最常用的方式是通过 FileBeats 收集目标日志,然后统一输出到 LogStash 做进一步的过滤,在由 LogStash 输出到 ES 中进行存储。
  1. LogStash 的安装运行
  官方提供了压缩包下载, https://www.elastic.co/downloads/logstash 。 下载完成后解压即可。
  tar zxvf logstash-6.2.2.tar.gz# 进入目录cd logstash-6.2.2
  LogStash 的运行需要指定一个配置文件,来指定数据的流向,我们在当前目录下创建一个 first.conf 文件,其内容如下:
  # 配置输入为 beats
  input {   

      beats {

           port => "5044"

     }
  }
  # 数据过滤
  filter {
     grok {
           match => { "message" => "%{COMBINEDAPACHELOG}" }
     }
     geoip {
           source => "clientip"
     }
  }
  # 输出到本机的 ES

  output {
     elasticsearch {
           hosts => [ "localhost:9200"]
     }
  }
  配置完成后就可以通过如下方式启动 LogStash 了
  bin/logstash -f first.conf --config.reload.automatic
  #--config.reload.automatic选项启用自动配置重新加载,因此每次修改配置文件时都不必停止并重新启动Logstash
  注意:
  NameError: cannot link Java class org.apache.logging.log4j.core.config.LoggerConfig needs Java 8 (java.lang.UnsupportedClassVersionError: org/logstash/log/LogstashLogEventFactory : Unsupported major.minor version 52.0)
  显示version版本问题,应该是JDK版本没有更新    java -version查看版本是否为1.8.
  如果为1.7则需要:1.去网站下载jdk18*版本
  2.tar -zxvf jdk-8u181-linux-x64.tar
  3.sudo mv jdk1.8.0_181/usr/local/java
   4.vim /etc/profile
  export JAVA_HOME=/usr/local/java(此处根据自己jdk安装的目录来写)export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=.:${JAVA_HOME}/bin:$PATH
  5.生效配置文件sourc /etc/profile
  6.java -version
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/9c6fc84a172c4f11a43c24a60076e8dc/clipboard.pnghttp://s1.运维网.com/images/20180813/1534145225970896.png
  重新启动logstash
  可以看到命令行会打印出如下信息, 可以看到 LogStash 默认端口为 5044:
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/bb55fb250e39459181146802f8334883/clipboard.pnghttp://s1.运维网.com/images/20180813/1534145277477071.png
  2. 安装运行 FileBeats
  FileBeats 也提供了下载包,地址为 https://www.elastic.co/downloads/beats/filebeat 。找到系统对应的包下载后解压即可。
  tar zxvf filebeat-6.2.2-darwin-x86_64.tar.gzcd filebeat-6.2.2-darwin-x86_64
  进入目录编辑 filebeat.yml 找到对应的配置项,配置如下
  - type: log# Change to true to enable this prospector configuration.   enabled: True   # Paths that should be crawled and fetched. Glob based paths.   # 读取 Nginx 的日志   paths:   - /usr/local/nginx/logs/*.log(想监控的日志目录都可以添加进去)
  - /var/log/message/*.log#----------------------------- Logstash output --------------------------------# 输出到本机的 LogStashoutput.logstash: # The Logstash hosts hosts: ["localhost:5044"]
  配置完成后执行如下命令,启动 FileBeat 即可
  # FileBeat 需要以 root 身份启动,因此先更改配置文件的权限sudo chown root filebeat.ymlsudo ./filebeat -e -c filebeat.yml -d "publish"(通过./filebeat -c -e测试配置的FileBeat脚本.-d“publish”显示所有“publish”相关的消息。)
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/a31d85fd166242199c6c18b0e755d0ef/clipboard.pnghttp://s1.运维网.com/images/20180813/1534145294320046.png
  启动成功。
  三. Kibana 的安装运行
  Kibana 也提供了对应的安装包下载,链接为 https://www.elastic.co/downloads/kibana , Mac、Linux、Win 都有对应的安装包,直接下载解压即可
  tar zxvf kibana-6.2.2-darwin-x86_64.tar.gzcd kibana-6.2.2-darwin-x86_64# 直接启动即可bin/kibana
  Kibana 默认链接了本机的 9200 端口,其绑定的端口为 5601,启动成功后直接访问 127.0.0.1:5601 端口即可,界面如下。
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/16214a11f5f44b1fb7e33a8e34a86d75/%28%28_9mf%29%28%7E_3q5mdtg2@31uy.jpghttp://s1.运维网.com/images/20180813/1534145365541826.jpg
  注意:有时本地启动kibana之后打开界面127.0.0.1:5601会出现这样的情况。
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/67cb9cb4e02c4c0f8954f71f36c1f435/90%2478%60@iwh9bqty%7D%28sv299k.pnghttp://s1.运维网.com/images/20180813/1534145394995545.png
  有可能是因为本地的浏览器不兼容问题之类的。可以试着打开远程连接。用别的设备远程访问.
  1.打开Kibana配置文件: vim /usr/local/kibana-6.3.2-linux-x86_64/config/kibana.yml
  2.修改访问参数:server.host修改为本机网卡的地址。
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/750b22786810494daa96f5903f8436a7/clipboard.pnghttp://s1.运维网.com/images/20180813/1534145428498876.png
  3.重启kibana服务。
  4.访问成功。
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/3b34bce3e3954ecaa977064dbf0e255a/q5mdtg2@31uy.pnghttp://s1.运维网.com/images/20180813/1534145445886851.png
  开始建立索引模式。
  注意:有的时候会出现索引模式不能建立的情况。(不能点下一步)
http://blog.运维网.com/static/js/ueditor1.4.3/themes/default/images/spacer.gifhttp://s1.运维网.com/images/20180813/1534145516792572.png
  一般为数据回传异常。先检查filebeat、logstash、elasticsearch、kibana服务启动是不是都正常。
  检查filebeat的配置文件。/usr/local/filebeat/config/filebeat.yml.检查配置。
  我上次就是因为配置文件里的output.logstash模块的端口写错。
  修改完之后重启服务就可以了。
http://blog.运维网.com/static/js/ueditor1.4.3/themes/default/images/spacer.gifhttp://s1.运维网.com/images/20180813/1534145540164701.png
http://s1.运维网.com/images/20180813/1534146018154661.jpg
  这里选定一个时间戳,使用默认的 timestamp 即可,设置完成后我们可以根据时间范围筛选数据。
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/54d4d2986e134ea38d1a9349c954af1a/20180319113207148%20%282%29.pnghttp://s1.运维网.com/images/20180813/1534146285650431.png
  设置完成后创建后显示如下
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/a9f2a442d89b4c2e9a143aced769bce6/clipboard.pnghttp://s1.运维网.com/images/20180813/1534146463508718.png
  这时在点击 Discover 就可以看到我们创建的索引了,此时输入 UnicodeEncodeError 已经返回了匹配到的日志信息。
http://s1.运维网.com/images/20180813/1534146481463003.png
http://blog.运维网.com/12283048/D:/%E8%BD%AF%E4%BB%B6%E6%96%87%E4%BB%B6/%E6%9C%89%E9%81%93%E7%AC%94%E8%AE%B0/weixinobU7VjlrJ-p3TrliZJcDPxZMm87Y/22d2a938723141f8b58971246f9106e1/clipboard.png注意:如果你觉得英语看起来很不舒服,可以考虑汉化。不过提前说明一下,汉化过程是不可逆的。
  # 下载并解压wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-linux-x86_64.tar.gztar -zxf kibana-6.3.0-linux-x86_64.tar.gz
  汉化
  github汉化项目:
  https://github.com/anbai-inc/Kibana_Hanization
  # 下载并解压wget https://github.com/anbai-inc/Kibana_Hanization/archive/master.zipunzip master.zipcd master# 汉化python main.py Kibana目录# 启动elasticsearchcd elasticsearch-6.3.0/binelasticsearch -d# 启动kibanacd kibana-6.3.0-linux-x86_64/binkibana
  浏览器访问 localhost:5601
http://blog.运维网.com/static/js/ueditor1.4.3/themes/default/images/spacer.gifhttp://s1.运维网.com/images/20180813/1534146502532578.png
  注意:最后再说一句ELK平台的启动可以按照filebeat--> elasticsearch --->logstash--->kibana这个顺序启动,不会那么容易出问题。



页: [1]
查看完整版本: 快速搭建ELK,以及简单故障处理