ELK Stack(ElasticSearch、Logstash、Kibana)

ELK关系图: ELK

ElasticSearch与关系型数据库对比:

Relational DB -> Databases -> Tables -> Rows -> Columns

ElasticSearch -> Indices -> Types -> Documents -> Fields

资料

站点

插件

文章

工具

安装

安装JDK及配置环境变量

参考JDK安装文章

安装Elasticsearch(CentOS, RPM)

版本号:2.3.0

下载RPM包

下载地址:https://www.elastic.co/downloads/elasticsearch

https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.0/elasticsearch-2.3.0.rpm

RPM安装软件

rpm -ivh elasticsearch-2.3.0.rpm

配置服务及开机启动

chkconfig --add elasticsearch
chkconfig --level 35 elasticsearch on

编辑配置文件

参考文章

http://blog.csdn.net/an74520/article/details/8219814

http://my.oschina.net/kittyMan/blog/387512

#查看Elasticsearch的配置文件
rpm -qc elasticsearch

vim config/elasticsearch.yml

cluster.name    //集群名称
node.name       //节点名称
path.data       //数据存放路径
path.logs       //日志存放路径
network.host    //必须是真实IP

域名绑定

解析域名到指定的ES机器即可,端口用ES配置文件设置的http.port参数

RPM包的默认路径

Type Description Debian/Ubuntu RHEL/CentOS
home elasticsearch安装的家目录 /usr/share/elasticsearch /usr/share/elasticsearch
bin 二进制脚本文件目录 /usr/share/elasticsearch/bin /usr/share/elasticsearch/bin
conf 配置文件目录 /etc/elasticsearch /etc/elasticsearch
conf 环境变量设置文件 /etc/default/elasticsearch /etc/sysconfig/elasticsearch
data 节点索引和分片的数据目录 /var/lib/elasticsearch/data /var/lib/elasticsearch
logs 日志文件目录 /var/log/elasticsearch /var/log/elasticsearch
plugins 插件目录 /usr/share/elasticsearch/plugins /usr/share/elasticsearch/plugins

安装问题

安装kibana(CentOS, YUM)

版本号:4.5.0 文档地址:Getting Kibana Up and Running

导入GPG-KEY

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

添加仓库配置

vim /etc/yum.repos.d/kibana.repo

[kibana-4.5]
name=Kibana repository for 4.5.x packages
baseurl=http://packages.elastic.co/kibana/4.5/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

YUM安装

yum install kibana

配置服务及开机启动

chkconfig --add kibana
chkconfig --level 35 kibana on

编辑配置文件

vim config/kibana.yml

server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"

笔记

集群状态查询

参考文档:Cluster Health

查看ES集群健康状态:

curl -XGET 'http://localhost:8200/_cluster/health?pretty' 

查询结果:

{
  "cluster_name": "your_cluster_name",
  "status": "yellow", //集群的状态红绿灯,绿:集群非常健康;黄:所有主分片都正确运行,但是有副本分片缺失;红:有主分片缺失 
  "timed_out": false,
  "number_of_nodes": 1, //节点数
  "number_of_data_nodes": 1, //数据节点数
  "active_primary_shards": 6, //集群内所有索引的主分片总数
  "active_shards": 6, //集群内所有索引的分片总数
  "relocating_shards": 0, //正在迁移中的分片数
  "initializing_shards": 0, //正在初始化的分片数
  "unassigned_shards": 6, //未分配到具体节点上的分片数,仅使用一台机器部署会出现这种情况
  "delayed_unassigned_shards": 0,
  "number_of_pending_tasks": 0,
  "number_of_in_flight_fetch": 0,
  "task_max_waiting_in_queue_millis": 0,
  "active_shards_percent_as_number": 50
}

可以对具体Index库(一个或者多个库)进行查看健康状态:

curl -XGET 'http://localhost:8200/_cluster/health/index1?pretty' //一个index库
curl -XGET 'http://localhost:8200/_cluster/health/index1,index2?pretty' //多个index库