ELK-①Elasticsearch安装
Elasticsearch
条件要点:①非root用户启动,②文件属主为启动的非root用户,③系统参数优化,④内核参数优化,⑤修改仅本机访问,⑥增大jvm.options(-Xms1g -Xmx1g)
安装使用解决方案:
Logging with Elasticsearch & Elastic Stack | Elastic
http://www.elastic.co/cn/solutions/logging
port:9200
version:6.2.3,6.3.0
安装Elasticsearch
安装Elasticsearch唯一的要求是安装官方新版的Java,地址:www.java.com
从 elasticsearch.org/download 下载最新版本的
- 6.3.0默认自带x-pack插件
设置X-Pack
Elasticsearch
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.zip
unzip elasticsearch-6.2.3.zip
cd elasticsearch-6.2.3
安装Marvel//可忽略
Marvel是Elasticsearch的管理和监控工具,在开发环境下免费使用。它包含了一个叫做Sense
的交互式控制台,使用户方便的通过浏览器直接与Elasticsearch进行交互。
运行Elasticsearch
Elasticsearch已经准备就绪,执行以下命令可在前台启动:su - elk /home/ELK/elasticsearch-6.2.3/bin/elasticsearch
如果想在后台以守护进程模式运行,添加-d参数。su - elk /home/ELK/elasticsearch-6.2.3/bin/elasticsearch -d
启动后有一个Error(centos):①java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP
not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
解决方法①:
#版本5.2.0开始,Elasticsearch默认尝试使用seccomp(通过设置bootstrap.system_call_filter),如果内核不支持,则引导失败,或换成支持seccomp的内核或禁用
修改elasticsearch.yml 添加一下内容
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
启动后,如果只有本地可以访问,尝试修改配置文件 elasticsearch.yml
中network.host(注意配置文件格式不是以#开头的要空一格, :后要空一格) 为
network.host: 0.0.0.0
启动后有一个Error:②ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法②:(可能有其他参数不足的错误,参考系统优化)
在/etc/sysctl.conf文件中添加一行,sysctl -p生效
vm.max_map_count = 655360
jvm.options
由-Xms1g, -Xmx1g改为-Xms2g, -Xmx2g
访问出现下面的代码说明成功
{
"name" : "mQhJZ5H",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "mSrlR7sPSDWpLC7-u_yxow",
"version" : {
"number" : "6.2.3",
"build_hash" : "c59ff00",
"build_date" : "2018-03-13T10:06:29.741383Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
REST简介(二):Rest具体操作说明
资源 一组资源的URI,比如:http://example.com/res/ 单个资源的URI,比如:http://example.com/res/123
GET 列出URI,以及该资源组中每个资源的详细信息(后者可选) 获取指定的资源的详细信息,格式可以自选一个合适的网络媒体类型(比如:XML、JSON等)
PUT 使用给定的一组资源替换当前整组资源 替换/创建指定的资源。并将其追加到相应的资源组中。
POST 在本组资源中创建/追加一个新的资源。该操作往往返回新的URL 把指定的资源当做一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源。
DELETE 删除整组资源 删除指定的元素
REST简介(三):ES内置REST接口
URL 描述
/index/_search 搜索指定索引下的数据
/_aliases 获取或操作索引的别名
/index/ 查看指定索引的详细信息
/index/type/ 创建或操作类型
/index/_mapping 创建或操作mapping
/index/_setting 创建或操作设置(number_of_shards是不可更改的)
/index/_open 打开指定被关闭的索引
/index/_close 关闭指定索引
/index/_refresh 刷新索引(使新加内容对搜索可见,不保证数据被写入磁盘)
/index/flush 刷新索引(会触发Lucene提交)
集群和节点
节点(node)是一个运行着的Elasticsearch实例。集群(cluster)是一组具有相同cluster.name的节点集合,他们协同工作,共享数据并提供故障转移和扩展功能,当然一个节点也可以组成一个集群。
你最好找一个合适的名字来替代cluster.name的默认值,比如你自己的名字,这样可以防止一个新启动的节点加入到相同网络中的另一个同名的集群中。
你可以通过修改config/目录下的elasticsearch.yml文件,然后重启ELasticsearch来做到这一点。当Elasticsearch在前台运行,可以使用Ctrl-C快捷键终止,或者你可以调用shutdown API来关闭:curl -XPOST 'http://localhost:9200/_shutdown'
修改如下配置之后,就可以从别的机器上进行访问了
Transport.tcp.port:9300 设置节点间交互的tcp端口,默认为9300
查看Marvel和Sense
如果你安装了Marvel(作为管理和监控的工具),就可以在浏览器里通过以下地址访问它:
http://localhost:9200/_plugin/marvel/
你可以在Marvel中通过点击dashboards
,在下拉菜单中访问Sense开发者控制台,或者直接访问以下地址:
http://localhost:9200/_plugin/marvel/sense/
推荐阅读