因为打算采用Elasticsearch来管理Docker容器的日志,需要掌握Elasticsearch API的使用。Elasticsearch提供RESTful APIs,通过API可以执行创建和管理索引、存储和检索文档的操作。执行RESTful APIs调试有三个常用的工具:curl、firefox浏览器的RESTClient插件和RESTClient(java程序)。RESTClient(java程序)功能强大,缺点是需要安装JDK, curl适用于脚本自动化,一般情况先还是使用firefox浏览器的RESTClient插件方式比较方便。对应GET方式的API也可以直接在浏览器的地址栏中直接输入URL就可以了。
1. 工具使用
1)直接在浏览器中输入url ,如下图所示:
1)使firefox浏览器的RESTClient
先安装插件,下载地址:https://addons.mozilla.org/zh-CN/firefox/addon/restclient/
安装见下图,选择从文件安装附件组件。
使用方法如下图,点击浏览器地址栏右边的RESTClient图标,弹出RESTClient的页面,然后输入,点SEND执行操作。
3)使用 curl
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>/<OPERATION_NAME>?<QUERY_STRING>' -d '<BODY>
VERB对应GET、PUT等操作,BODY对应的是PUT和POST操作的上传数据,JSON格式。
2. 常用API
1)查看所有索引
curl -XGET 'http://192.168.207.241:9200/_cat/indices?v'
2)查看集群上的所有节点
curl -XGET 'http://192.168.207.241:9200/_cat/nodes?v'
3)查看集群的健康状况
curl -XGET 'http://192.168.207.241:9200/_cluster/health?pretty=true'
更换url可以查看shards、indices等的健康状况
http://192.168.207.241:9200/_cluster/health?level=shards&pretty=true
http://192.168.207.241:9200/_cluster/health?level=indices&pretty=true
4)创建索引
创建名称为bookstore的索引
curl -XPUT 'http://192.168.207.241:9200/bookstore/?pretty'
增加类型
curl -XPUT 'http://192.168.207.241:9200/bookstore/_mapping/computer' -d
'{
"properties":{
"book_name":{"type":"text"}
}
}'
5) 增加文档
curl -XPUT 'http://192.168.207.241:9200/bookstore/computer/1' -d
'{
"book_name":"ELK Cookbook"
}'
6) 删除文档
curl -XDELETE 'http://192.168.207.241:9200/bookstore/computer/1'
7)删除索引
curl -XDELETE 'http://192.168.207.241:9200/bookstore/'
8) 查询语言
具体可参考官方网站上的文档,这里只是举一个例子。查找tomcat的access日志,按时间段查询。其中 size为返回的记录数。