ES的搭建及简单操作

成功界面图:

使用ES注意事项:

1、es版本2.x以上需要JDK 1.8以上

2、运行es不能使用root用来来运行

3、es目录必须指定一个普通用户和组(授权)

4、es对内存和CPU的消耗比较高

5、es版本在5.X以上系统要求至少要能够开启2048个线程才可以启动,系统版本使用CENTOS7才可以

6、es使用的端口看开放iptables:9200,9300等

7、es配置其他插件实现资源等可视化监控

8、es的版本和插件之间版本要匹配

9、es集群配置,第一节点配置好scp到其他节点即可(修改配置文件)

一、es启动

1、下载es包.2.4.2版本、解压到/usr/local/并命名为elasticsearch

2、修改配置文件

cluster.name: my-application

node.name: mycat

path.data: /home/elastic/

path.logs: /home/elastic/logs

network.host: 192.168.1.114

http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.1.114"]

3、添加用户

useradd elastic

4、给/usr/local/elasticsearch授权

chown -R elastic.elastic /usr/local/elasticsearch

5、切换用户启动elastcisearch

su elastic

/usr/local/elasticsearch/bin/elasticsearch &

6、验证服务

登陆http://192.168.1.114:9200/

{

"name" : "mycat",

"cluster_name" : "my-application",

"cluster_uuid" : "nwPLOaaEQrGrMXsQpL61sg",

"version" : {

"number" : "2.4.1",

"build_hash" : "c67dc32e24162035d18d6fe1e952c4cbcbe79d16",

"build_timestamp" : "2016-09-27T18:57:55Z",

"build_snapshot" : false,

"lucene_version" : "5.5.2"

},

"tagline" : "You Know, for Search"

}

启动OK~~!

8、安装kibana+sence可视化报表

1、修改kibana的配置文件/usr/local/kibana/config/kibana.yml

server.port: 5601#kibana使用的服务端口

server.host: "192.168.1.114"#kibana实例主机

elasticsearch.url: "http://192.168.1.114:9200" ##指向elasticsearch实例,监控es服务的状态,关闭服务先关闭kibana服务先

2、启动kibana,这个可以在root模式下启动

/usr/local/kibana/bin/kibana &

3、加载sence插件

/usr/local/kibana/bin/kibana plugin --install elastic/sense

3、通过http://192.168.1.114:5601就可以可视化页面

8、安装管理和监控工具,使用marvel插件,这个插件是收费的,免费试用一个月。

Marvel基础功能是免费的 但是下载的是全功能版本 需要后续申请基础功能的license

Marvel是Elasticsearch的管理和监控工具

##在/usr/local/elasticsearch/目录下,安装marvel的许可和代理,用root来执行

Step 1: bin/plugin install license

bin/plugin install marvel-agent

#cd /usr/local/kibana/ #把marvel服务安装到kibana里

Step 2: Install Marvel into Kibanabin/kibana plugin --install elasticsearch/marvel/latest

#重启es和kibana服务

Step 3: bin/elasticsearch

bin/kibana

Step 4: http://localhost:5601

Step 5:配置index pattern

修改index name or pattern里值为:.marvel-*(第一次的时候这么配置,后期使用后又索引了,写索引名字即可)

至此可以登录kibana页面,可以看到kibana\marvel\sence都集成在页面也里了。

默认安装的是带有安全模块的30天试用版 https://www.elastic.co/guide/en/marvel/current/license-management.html

如果只使用marvel的监控模块 需要更换license为Basic License

register for a Basic license

安装license

curl -XPUT -u admin ‘http://<host>:<port>/_license?acknowledge=true‘ -d @license.json ### @后面是license文件, 安装后不需要重启ES和kibana

查看license是否更新成功

curl -XGET -u admin:password ‘http://<host>:<port>/_license‘

全文索引的设置:

1、下载包、解压

https://www.elastic.co/downloads/past-releases/logstash-2-4-1

2、添加配置文件目录

mkdir /usr/local/logstash/conf

touch /usr/local/logstash/conf/logstash.conf

input {

jdbc {

jdbc_driver_library => "/opt/logstash/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar" #这个包要在logstash服务器上存在包

jdbc_driver_class => "com.mysql.jdbc.Driver"

jdbc_connection_string => "jdbc:mysql://host:3306/database" #数据库信息

jdbc_user => ""

jdbc_password => ""

#    schedule => "0 1 * * *"

statement => "select * from aaa"

clean_run => true

}

}

output

{

elasticsearch {

hosts => ["host:9200"]

index => "index" #自定义

document_type => "index" #自定义

document_id => "%{id}"       ###设置ID为ES主键,当数据库有update操作时,原记录会被覆盖

}

}

####

input {

jdbc {

jdbc_driver_library => "/usr/local/mysql-connector-java-5.1.40-bin.jar"

jdbc_driver_class => "com.mysql.jdbc.Driver"

jdbc_connection_string => "jdbc:mysql://192.168.1.114:3306/test"

jdbc_user => "dlan"

jdbc_password => "root123"

schedule => "0 1 * * *"

statement => "select * from aaa"

jdbc_paging_enabled =>"true"

clean_run => "true"

}

}

output

{

elasticsearch {

hosts => ["192.168.1.114:9200"]

index => "index"

document_type => "index"

document_id => "%{id}"

}

}

###

3、启动logstash

/usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf &

4、然后再kibana里面sense

Server的localhost改成es的ip地址

GET /index_mycat/index_mycat/_search#返回所有的数据

GET /index_mycat/index_mycat/_search

{

"query": {

"term": {

"id": {

"value": "7"

}

}

}

}#查看某个值

GET /index_mycat/index_mycat/_search

{

"query": {

"terms": {

"id": [

"1",

"2",

"3"

]

}

}

}#查询一个ID的多个值

ES写入和查询数据

POST /logstach20161203/testlog

{

"date":"111111111",

"user":"chen",

"mesg":"first message"

}

GET _cat/indices

GET /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_source#返回原始的数据,根据hash取回来的值

GET /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu?fields=user,mesg

#返回多个值

GET /logstach20161203/testlog/_search/

{

"query": {

"term": {

"user": {

"value": "chen"

}

}

}

}

ES数据更新的方法:

一种为全量提交,即根据_id再发送一次写请求

POST /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu

{

"date":"111111112",

"user":"chen",

"mesg":"first message1"

}

另外一种是局部更新

POST /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_update

{"doc":{"user":"aaa1a"}}

curl -XPOST ‘http://192.168.1.114:9200/logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_update‘ -d ‘{"doc":{"user":"aaaa"}}‘

ES的查询

GET /logstach20161203/testlog/_search?q=aaa1a

GET /logstach20161203/testlog/_search?q=user:"aaa1a"

?q=后写写就是querystring语法

1、全文检索:直接写搜索的单词,如上例中的?? first?;

2、单字段的全文检索:在搜索单词之前加上字段名和冒号,比如如果知道单词

first?肯定出现在?mesg?字段,可以写作?? mesg:first?;

3、单字段的精确检索:在搜索单词前后加双引号,比如?? user:"chenlin7"?;

4、多个检索条件的组合:可以使用?? NOT?,?? AND??和??OR??来组合检索,注意必须是大写。比如?? user:("chenlin7"?OR?"chenlin")?AND?NOT

mesg:first?;

5、字段是否存在:? _exists_:user??表示要求?user?字段存在,? _missing_:user??表示要求?user?字段不存在;

6、通配符:用?? ???表示单字母,? *??表示任意个字母。比如??fir?t?mess*?;

7、正则:需要比通配符更复杂一点的表达式,可以使用正则。比如

? mesg:/mes{2}ages?/?。注意?ES?中正则性能很差,而且支持的功能也不是

特别强大,尽量不要使用。ES?支持的正则语法

见:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-

regexp-query.html#regexp-syntax;

8、近似搜索:用?? ~??表示搜索单词可能有一两个字母写的不对,请?ES?按照相似

9、度返回结果。比如?? frist~?;

10、范围搜索:对数值和时间,ES?都可以使用范围搜索,比

如:? rtt:>300?,? date:["now-6h"?TO?"now"}??等。其中,?[]??表示端点

数值包含在范围内,? {}??表示端点数值不包含在范围内;

时间: 2024-10-06 10:31:29

ES的搭建及简单操作的相关文章

ttserver搭建及简单操作

Tokyo Cabinet 是一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍.利用Tokyo Tyrant构建兼容Memcached协议.支持故障转移.高并发的分布式key-value持久存储系统.key-value分布式存储系统查询速度快.存放数据量大.支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询. Tokyo Tyrant 是由同一作者开发的 Tokyo

七技术之Git服务器gitolite的搭建及简单操作

最近人比较懒了,为了让自己改变一下,所以决定抽空去学习一些新的技术,对于这些新的技术,目前的要求不是很高,只是要求入门就可以了. 由于本人只是花三四天整出来的东西,所以不洗勿喷,另外难免会有错误,如有还请指出. 环境: Ubuntu server 14.04.1 .Git 1.9.1 gitolite3 对于Git的介绍这里就不介绍,有兴趣的大家可以自己去网上搜搜. 下面介绍怎么安装Git服务器gitolite,以及怎么建立仓库.添加用户等操作,本篇文章不会介绍太多的Git本身的命令,因为我自己

使用新浪云 Java 环境搭建一个简单的微信处理后台

前一段时间,写了一篇在新浪云上搭建自己的网站的教程,通过简单构建了一个 maven 的项目,展示部署的整个流程,具体的操作可以参看这里. 新浪云服务器除了可以搭建自己的网站以外,也非常的适合作为微信公众号回调地址来使用(熟悉微信公众号开发的朋友可能已经了解了,如果不太清楚请参看微信公众平台),微信公众号的开发需要一个公网可以访问的服务器,用于处理消息的 token 的验证,以及自身业务的定制开发.在这里,写了一些简单操作的例子,给大家参考. 准备 开发微信公众号首先要申请自己的公众号,或者获得相

用nodejs搭建一个简单的服务器

使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安装成功 [常用命令] 切换盘符 d:进入文件夹 cd nodejs返回上一级目录 cd..清屏 cls展示目录 dir复制文件名 选中右键--复制历史操作 上箭头 执行文件 node 文件名(在文件文件夹目录中)停止命令行 ctrl+c nodejs可以使用的ECMAScript.读写文件.数据库操

使用 Nodejs 搭建一个简单的Web服务器

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.

11.汇编代码简单操作

11.汇编代码简单操作 使用汇编的原因很简单,就是汇编代码的高效.在机器启动的时候,利用汇编的高效,对硬件进行初始化,为加载内核,提供条件. 目前常用的ARM汇编指令有两种: *ARM标准汇编:适用于ARM公司的汇编器,适合在Windows平台下使用. *GNU汇编:使用与GNU交叉编译工具链中的汇编器,适合于Linux平台开发. 3.汇编程序框架:注意下面的操作环境是Redhat 6.4 + eclipse C/C++ +CDT插件. 汇编代码的基本框架 ? 汇编用到的地方,启动代码,效率要求

Redis集群搭建与简单使用【转】

Redis集群搭建与简单使用 安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. 两台虚拟机都是 oracle linux 6.6 ,一台(IP:192.168.31.245),一台(IP:192.168.31.210) . 安装过程 1. 下载并解压 cd /root/software wget http://download.redis.io/releases/redis-3.2.4.t

使用Flask+MongoDB实现基于REST的接口简单操作

目录 前言 1 准备工作 2 具体实现 前言 最近在捣鼓如何使用阿里云服务器搭建一个简单的基于Flask框架的后端接口,刚开始为了图方便,就直接买了一个Windows Server 2008系统服务器,这也埋下了不小的坑. 服务买下来后,会给你一个公网IP和内网IP,由于是第一次学习搭建后端接口,对于如何正确使用阿里云服务器,来处理好公网IP和内网IP之间的关系埋下了不小的坑,真是对应的一句话:技术的成长往往是一步一个坑. 下面简单说一下搭建Flask服务器端遇到的问题: 首先,Flask自带了

简单操作Zabbix安装配置与邮件报警(centos 7.4)

Zabbix官网下载地址:https://www.zabbix.com/download 实验拓扑:zabbix server端: 192.168.80.101 公网环境 centos 7.4 LAMP架构zabbix angent端: 192.168.80.102 公网环境 centos 7.4注:zabbix(音同 z?bix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix由2部分构成,zabbix server与可选组件zabbix agent