ELK是一套日志管理的解决方案,是一套集中式日志收集系统。
– Elasticsearch:负责日志检索和储存
– Logstash:负责日志的收集和分析、处理
– Kibana:负责日志的可视化
ELK组件在海量日志系统的运维中,可用于解决:
– 分布式日志数据集中式查询和管理
– 系统监控,包含系统硬件和应用各个组件的监控
– 故障排查
– 安全信息和事件管理
– 报表功能
1.ElasticSearch 是一个基于 Lucene 的搜索服务器。
它提供了一个分布式多用户能力的全文搜索引擎,基
于 RESTful API 的 web 接口。
2.Elasticsearch是用Java开发的,并作为Apache许可
条款下的开放源码发布,是当前流行的企业级搜索引
擎。设计用于云计算中,能够达到实时搜索,稳定,
可靠,快速,安装使用方便
1.实时分析
2.分布式实时文件存储,并将每一个字段都编入索引
3.文档导向,所有的对象全部是文档
4.高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)
5. 接口友好,支持 JSON
6.Elasticsearch 是一种面向文档的数据库。
相关概念:
1. Node: 装有一个 ES 服务器的节点。
2. Cluster: 有多个Node组成的集群
3. Document: 一个可被搜素的基础信息单元
4. Index: 拥有相似特征的文档的集合
5. Type: 一个索引中可以定义一种或多种类型
6. Filed: 是 ES 的最小单位,相当于数据的某一列
7. Shards: 索引的分片,每一个分片就是一个 Shard
8. Replicas: 索引的拷贝
1. 在 ES 中,文档归属于一种 类型 (type) ,而这些类型
存在于索引 (index) 中,类比传统关系型数据库
2.关系型数据库
DB -> Databases -> Tables -> Rows -> Columns
– 关系型 数据库 表 行 列
3.Elasticsearch数据库
ES -> Indices -> Types -> Documents -> Fields
– ES 索引 类型 文档 域(字段)
4.图解ES与DBMS
5.Elasticsearch架构图
1.设置 ip 与主机名称对应关系
– 配置 /etc/hosts
192.168.5.11 node1
2.安装 JDK
– Elasticsearch 要求至少 Java 7
– 一般推荐使用 OpenJDK 1.8
– 配置好安装源以后,我们先解决依赖关系
~] # yum install -y java-1.8.0-openjdk
3.安装 ES
~] # rpm -ivh elasticsearch-2.3.4-1.noarch
4. 修改配置文件
~]# vim /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
5.启动服务,设置自启动
~] # systemctl enable elasticsearch
~] # systemctl start elasticsearch
6.验证服务是否正常启动
~] # netstat –ltunp
~] # curl http://192.168.4.11:9200/
1.es1~es5 安装JDK8和elasticsearch
~ ] # yum -y install java-1.8.0-openjdk elasticsearch
2.es1~es5 集群配置文件
~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-es //集群名称配置要求完全一致
node.name: es1 [..es5] //当前节点标识,配置本机的主机名
network.host: 0.0.0.0 //本机IP地址
discovery.zen.ping.unicast.hosts: ["es1", "es2","es3"] //集群节点机器,不需要全部配置
3.启动所有节点服务
~] # for i in {1..5} do ssh es${i} systemctl start elasticsearch done
4.验证集群,使用 ES 内置字段 _cluster/health
~] # curl http://192.168.5.11:9200/_cluster/health?pretty
– 分别是:请求行、消息报头、请求正文
– 请求行以一个方法符号开头,以空格分开,后面跟着
请求的URI和协议的版本,格式如下:
Method Request-URI HTTP-Version CRLF
– 常用方法 GET, POST, HEAD
– 其他方法 OPTIONS, PUT, DELETE, TRACE 和CONNECT
POST --POST不是幂等操作,因为多次请求会产生不同的结果,因此POST不是幂等操作
DELETE -- DELETE是幂等操作,第一次将资源删除后,后面多次进行此删除请求,最终结果是一样的。
PUT -- PUT是幂等性,将A修改为B,它第一次请求值变为了B,再进行多次此操作,最终的结果还是B,与一次执行的结果是 一样的。
GET --GET是幂等操作,第一次请求与多次请求得到的查询结果是一样的。
在linux中curl是一个利用URL规则在命令行下工作的
文件传输工具,可以说是一款很强大的http命令行工
具。它支持多种请求模式,自定义请求 头等强大功
能,是一款综合工具
curl 常用参数介绍
– -A 修改请求 agent
– -X 设置请求方法
– -i 显示返回头信息
1. 它展现ES集群的拓扑结构,并且可以通过它来进行索
引(Index)和节点(Node)级别的操作
2. 它提供一组针对集群的查询API,并将结果以json和表
格形式返回
3. 它提供一些快捷菜单,用以展现集群的各种状态
1. 是一个ElasticSearch的管理工具
2. 它提供了对ES集群操作的API
1.bigdesk是elasticsearch的一个集群监控工具
2.可以通过它来查看es集群的各种状态,如:cpu、内存
使用情况,索引数据、搜索情况,http连接数等
elk软件包下载地址:elk.zip
/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/public/bigdesk-master.zip
/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/public/elasticsearch-head-master.zip
/usr/share/elasticsearch/bin/plugin install ftp://192.168.1.254/public/elasticsearch-kopf-master.zip
/usr/share/elasticsearch/bin/plugin list
这里必须使用 url 的方式进行安装,如果文件在本地,我们也需要使用 file:// 的方式指定路径,例如文件在
/tmp/xxx 下面,我们要写成 file:///tmp/xxx 删除使用 remove 指令
1.ES HEAD插件 【通过它来进行索引(Index)和节点(Node)级别的操作】
http://192.168.5.15:9200/_plugin/head/
2. ES KOPF插件
http://192.168.5.15:9200/_plugin/kopf
3.ES bigdesk 插件 【查看集群状态】
http://192.168.5.15:9200/_plugin/bigdesk/
1.检查集群、节点、索引的健康度、状态和统计
2. 管理集群、节点、索引的数据及元数据
3. 对索引进行CRUD操作及查询操作
4. 执行其他高级操作如分页、排序、过滤等
– v 参数显示详细信息
http://192.168.4.15:9200/_cat/health?v
– help 显示帮助信息
http://192.168.4.15:9200/_cat/health?help
– nodes 查询节点状态信息
http://192.168.4.15:9200/_cat/nodes?v
– 索引信息
http://192.168.4.15:9200/_cat/indices?v
curl -XPUT 'http://192.168.1.13:9200/tedu/' -d \
'{
"settings":{
"index":{
"number_of_shards": 5,
"number_of_replicas": 1
}
}
}'
curl -XPUT "http://192.168.1.11:9200/nsd1804/teacher/2" -d \
'{
"title": "dog",
"name": {"first":"huang", "last":"a"},
"age":2
}'
curl -XPOST "http://192.168.1.15:9200/nsd1804/teacher/3/_update" -d \
'{
"doc": { "age":18 }
}'
~] # curl -XGET "http://192.168.1.14:9200/nsd1804/teacher/1?pretty"
~] # curl -XDELETE "http://192.168.1.14:9200/nsd1804/teacher/1?pretty