0 说明
本次EFK分布式日志收集系统节点安排如下:
主机名 | 主机ip | 部署情况 |
---|---|---|
chen-1 | 192.168.218.100 | Elasticsearsh Logstash Filebeat Namenode ResourceManager ZK |
chen-2 | 192.168.218.101 | Elasticsearsh SecondaryNamenode Datanode Nodemanager ZK |
chen-3 | 192.168.218.102 | Elasticsearsh Datanode Nodemanager ZK |
chen-4 | 192.168.218.103 | Kibana Datanode Nodemanager |
chen-5 | 192.168.218.104 | Datanode Nodemanager |
Filebeat和Logstash都具有日志采集功能,不同的是Filebeat是轻量级的,Logstash运行在JVM上,但其功能更强大。本文采用Filebeat+Logstash方式采集日志。
1 Kibana的简单使用说明:
1.1 创建索引(index)相当于数据库
1.2 增加一个文档(type)相当于表
/索引/类型/id
POST /chen/student/1
{
"name":"zhangsan","age":20,"email":"zhangsan@qq.com"
}
结果解析:
took:整个搜索请求花费的毫秒数。
_shards字段:
total:查询的分片数
successful:成功的分片数
failed:失败的分片数
1.3 检索
1.3.1 获取指定文档
GET /chen/student/1
1.3.2 获取文档中指定的字段
GET /chen/student/1?_source=name
1.3.3 只显示_source字段
GET /chen/student/1/_source
1.3.4 获取头信息
HEAD /chen/student/1
1.3.5 删除
DELETE /chen/student/1
2 使用RESTful操作elasticsearch
REST通常是开发的一种约定,当所有的开发者都遵从这种约定的时候,
可以大大简化开发的沟通成本。REST其核心操作只有POST,GET,PUT,DELETE,
正好可以对应CRUD(Create、Read、Update、Delete)4种数据操作。
POST /uri 新增一个没有ID的资源
DELETE /uri/xxx 删除
PUT /uri/xxx 更新或新增一个含ID的资源
GET /uri/xxx 取得资源curl -X GET http://192.168.218.100:9200/chen/student/1
curl -X GET http://192.168.218.100:9200/chen/student/1?pretty
pretty参数可以优化输出格式
传入json数据,新建test.json
{
"first_name":"John",
"last_name":"Smith",
"age":25
}
curl -H "Content-Type:application/json" -X PUT http://192.168.218.100:9200/chen/student/2 -d @test.json
打开/关闭索引,当关闭索引后,不能通过索引进行查询。
POST /chen/_open
POST /chen/_close
重新打开后,才可以继续查询
此时再查询就可以查询到相应的内容了
查询索引下面的所有doc:
GET /chen/_search
{
"query": {
"match_all": {
}}
}