需求背景

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

ELK介绍

官网https:///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:///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安装 – 准备工作

准备三台机器 主节点: 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:///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:///guide/en/elasticsearch/reference/6.0/rpm.html 
在134上编辑配置文件vi /etc/elasticsearch/elasticsearch.yml//增加或更改
: 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//增加或更改
: 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 (可省略)