需求背景

  • 业务发展越来越庞大,服务器越来越多
  • 各种访问日志、应用日志、错误日志量越来越多
  • 开发人员排查问题,需要到服务器上查日志,不方便
  • 运营人员需要一些数据,需要我们运维到服务器上分析日志

    ELK介绍

    官网https://www.elastic.co/cn/
    中文指南https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details
    ELK Stack (5.0版本之后) Elastic Stack == (ELK Stack + Beats)
    ELK Stack包含:ElasticSearch、Logstash、Kibana
    ElasticSearch是一个搜索引擎,用来搜索、分析、存储日志。它是分布式的,也就是说可以横向扩容,可以自动发现,索引自动分片,总之很强大。文档https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
    Logstash用来采集日志,把日志解析为json格式交给ElasticSearch。
    Kibana是一个数据可视化组件,把处理后的结果通过web界面展示
    Beats在这里是一个轻量级日志采集器,其实Beats家族有5个成员
    早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计
    x-pack对Elastic Stack提供了安全、警报、监控、报表、图表于一身的扩展包,是收费的

    ELK架构

    ELK_第1张图片

    ELK安装 – 准备工作

    准备三台机器
    主节点: 192.168.22.134
    数据节点:192.168.22.135
    数据节点:192.168.22.130

  • 3台全部安装elasticsearch(后续简称es)
  • es主134上安装kibana
  • 1台es数据节点132上安装logstash
  • 3台机器全部安装jdk8(openjdk即可)
  • yum install -y java-1.8.0-openjdk

    ELK安装 – 安装es

    官方文档

    https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html

    安装方法一

    以下操作3台机器上都要执行
    rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    vim /etc/yum.repos.d/elastic.repo //加入如下内容
    [elasticsearch-6.x]
    name=Elasticsearch repository for 6.x packages
    baseurl=https://artifacts.elastic.co/packages/6.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    yum install -y elasticsearch 

    安装方法二

    直接下载rpm文件,然后安装

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.rpm
    rpm -ivh elasticsearch-6.0.0.rpm

    ELK安装 – 配置es

    elasticsearch配置文件/etc/elasticsearch和/etc/sysconfig/elasticsearch 
    参考https://www.elastic.co/guide/en/elasticsearch/reference/6.0/rpm.html 
    在134上编辑配置文件vi /etc/elasticsearch/elasticsearch.yml//增加或更改
    cluster.name: aminglinux 
    node.master: true//意思是该节点为主节点
    node.data: false
    network.host: 0.0.0.0
    discovery.zen.ping.unicast.hosts: ["192.168.133.130", "192.168.133.132", "192.168.133.133"]
    在135和130上同样编辑配置文件
    vi /etc/elasticsearch/elasticsearch.yml//增加或更改
    cluster.name: aminglinux 
    node.master: false
    node.data: true
    network.host: 0.0.0.0
    discovery.zen.ping.unicast.hosts: ["192.168.133.130", "192.168.22.134", "192.168.22.135"]

    ELK安装 – curl查看es

    134上执行 
    curl '192.168.22.134:9200/_cluster/health?pretty' 健康检查
    curl '192.168.22.134:9200/_cluster/state?pretty'    集群详细信息
    参考 http://zhaoyanblog.com/archives/732.html 

    ELK安装 – 安装kibana

    以下在134上执行
    前面已经配置过yum源,这里就不用再配置了
    yum install -y kibana 
    若速度太慢,可以直接下载rpm包
    wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-x86_64.rpm
    rpm -ivh kibana-6.0.0-x86_64.rpm
    kibana同样也需要安装x-pack(可省略)
    安装方法同elasticsearch的x-pack
    cd /usr/share/kibana/bin (可省略)
    ./kibana-plugin install x-pack //如果这样安装比较慢,也可以下载zip文件(可省略)
    wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.0.0.zip//这个文件和前面下载的那个其实是一个(可省略)
    ./kibana-plugin install file:///tmp/x-pack-6.0.0.zip (可省略)