elasticsearch 的入門

參考文檔

1.全文搜索引擎 Elasticsearch 入門教程(http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html)html

2.elasticsearch的一次體驗——1.Java環境的安裝(https://blog.csdn.net/lowerxiaoshen/article/details/79208758)java

3.Elasticsearch 權威指南(中文版)(https://es.xiaoleilu.com/)node

要使用 elasticsearch 必須安裝 java8 相關環境

1.去java官網下載jdk8 java環境官方下載地址(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)mysql

2.將下載好的壓縮包上傳到服務器。在這裏能夠選擇安裝ftp服務,也可使用在線導入安裝包的插件。linux

ftp安裝查看 
lrzsz插件安裝查看 git

3.解壓文件並添加添加環境變量github

經過 vim /etc/profile 命令打開 profile 文件盤配置環境變量 
文本最後添加sql

export JAVA_HOME=/home/lxshen/java/jdk1.8.0_161   #這個是本身的java文件的位置
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

保存完以後輸入:source /etc/profile 命令使剛纔配置的環境變量生效 
4.查看Java環境是否安裝成功 docker

到這裏說明Java環境安裝成功。數據庫

安裝 elasticsearch 相關環境

1. 安裝完 Java,就能夠跟着官方文檔安裝 Elastic。直接下載壓縮包比較簡單。

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
$ unzip elasticsearch-5.5.1.zip
$ cd elasticsearch-5.5.1/ 

2.接着,進入解壓後的目錄,運行下面的命令,啓動 Elastic。

$ ./bin/elasticsearch

3.若是這時報錯"max virtual memory areas vm.maxmapcount [65530] is too low",要運行下面的命令。

$ sudo sysctl -w vm.max_map_count=262144

若是出現這個錯誤,是由於使用root用戶啓動elasticsearch,elasticsearch是不容許使用root用戶啓動的,因此咱們須要添加用戶。

建立新用戶
建立一個用戶名爲:linuxidc

[root@localhost ~]# adduser linuxidc
爲這個用戶初始化密碼,linux會判斷密碼複雜度,不過能夠強行忽略:

[root@localhost ~]# passwd linuxidc
更改用戶 zhangbiao 的密碼 。
新的 密碼:
無效的密碼: 密碼未經過字典檢查 - 過於簡單化/系統化
從新輸入新的 密碼:
passwd:全部的身份驗證令牌已經成功更新。

centos系統添加/刪除用戶和用戶組(https://blog.csdn.net/qq_31279347/article/details/82696731)

CentOS 7中添加一個新用戶並受權(https://www.linuxidc.com/Linux/2016-11/137549.htm)

adduser ***   //添加用戶

passwd ***  //給用戶賦值

添加完用戶以後:

用root用戶執行 : chown -R 文件夾名 用戶名

將這幾個壓縮包所在的文件夾及解壓完的文件夾權限給你新建的用戶。以後再使用新用戶啓動就OK了。

其餘幾個問題:https://segmentfault.com/a/1190000011899522

問題一
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

max_map_count 的值是指一個進程最多可用於的內存映射區(memory map areas),在調用malloc會用到,由mmap/mprotect生成。

解決辦法:

切換到root用戶修改配置/etc/sysctl.conf

su root
vim /etc/sysctl.conf

加入

vm.max_map_count=655360

而後使其生效

sysctl -p
問題二
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

文件描述符過低

解決辦法:

切換到root用戶修改/etc/security/limits.conf

su root
vim /etc/security/limits.conf

加入

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096 
問題三

使用supervisor啓動時,查看日誌仍然報下面的錯誤

[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

解決辦法:

切換到root用戶修改vim /etc/supervisord.d/elasticsearch.conf

[supervisord]
minfds=65536
minprocs=32768

[program:es]
process_name=%(program_name)s_%(process_num)02d
directory=/usr/local/elasticsearch-5.6.3/
command=/usr/local/elasticsearch-5.6.3/bin/elasticsearch
;autostart=true
autorestart=false
user=testuser
numprocs=1

 

4.若是一切正常,Elastic 就會在默認的9200端口運行。這時,打開另外一個命令行窗口,請求該端口,會獲得說明信息。

$ curl localhost:9200

{
  "name" : "atntrTf",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "tf9250XhQ6ee4h7YI11anA",
  "version" : {
    "number" : "5.5.1",
    "build_hash" : "19c13d0",
    "build_date" : "2017-07-18T20:44:24.823Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

上面代碼中,請求9200端口,Elastic 返回一個 JSON 對象,包含當前節點、集羣、版本等信息。

按下 Ctrl + C,Elastic 就會中止運行。

默認狀況下,Elastic 只容許本機訪問,若是須要遠程訪問,能夠修改 Elastic 安裝目錄的config/elasticsearch.yml文件,去掉network.host的註釋,將它的值改爲0.0.0.0,而後從新啓動 Elastic。

network.host: 0.0.0.0

上面代碼中,設成0.0.0.0讓任何人均可以訪問。線上服務不要這樣設置,要設成具體的 IP。

 

ELK(elasticsearch+logstash+kabana)安裝及簡單入門

https://blog.csdn.net/lck5602/article/details/79673087

ElasticSearch安裝

一、下載安裝包

https://www.elastic.co/downloads/elasticsearch
wget https://www.elastic.co/downloads/elasticsearch

二、解壓到文件夾

tar -zxvf elasticsearch-5.2.2.tar.gz -C /bigdata/

三、修改配置文件(在安裝目錄的config目錄下) 
編輯配置文件elasticsearch.yml(配置es的相關配置) 
vi /bigdata/elasticsearch-5.2.2/config/elasticsearch.yml 修改

cluster.name: ELK #集羣名稱,以此做爲是不是贊成集羣的判斷 
node.name: es-01 #節點名稱,以此做爲集羣中不一樣節點的分區條件 
path.data: /data/es/data #數據存儲地址 
path.logs: /data/es/logs #日誌存儲地址 
network.host: 192.168.1.34 #(主機地址)對外發布的網絡地址 
http.port: 9200 #ES默認監聽的端口 
discovery.zen.ping.unicast.hosts: ["node01"]

編輯配置文件jvm.options(jvm的相關配置)

IMPORTANT: JVM heap size #配置jvm的大小(默認配置是2G)
-Xms2g
-Xmx2g

編輯配置文件log4j2.properties(日誌打印輸出相關配置,通常不須要修改) 
配置文件的參數也能夠在啓動的時候指定 
例如:bin/elasticsearch -Ehttp.port=19200 
本地快速啓動集羣

bin/elasticsearch #默認的配置啓動
bin/elasticsearch -Ehttp.port=19200 #修改端口號爲19200啓動
#看到started說明集羣啓動成功
輸入:http://ip:port 查看Elasticsearch服務狀態
查看節點時候組成集羣,在瀏覽器中輸入http://ip:port/_cat/nodes
例如:
http:192.168.1.31:9200/_cat/nodes
查看集羣相關信息,執行http://ip:port/_cluster/stats
http://192.168.1.31:9200/_cluster/stats

四、elasticsearch經常使用術語
Document文檔數據(就是具體存在ES中的一條數據)
Index索引(能夠理解爲mysql中的數據庫)
Type索引中的數據類型(能夠理解爲mysql中的table)
Field字段,文檔的屬性
Query DSL查詢語法
五、Elasticsearch中CRUD操做

Create建立文檔 
POST /accounts/person/1 { "name":"John""lastname":"Doe", "job_description":"Systems asministrator and Linux specialit" } 
#accounts 至關於索引Index 
#person 至關於類型Type 

Read讀取文檔 GET /accounts/person/1 

update更新文檔 POST /accounts/person/1/_update { "name":"John""lastname":"Doe", "job_description":"Systems asministrator and Linux specialit" } 

Delete刪除文檔 DELETE /accounts/person/1

六、ElasticSearch 中Query語法

第一種Query String 
GET /accounts/person/_search?q=john 
第二種Query DSL 
GET /accounts/person/_search { "query" :{ "match" :{ "name" : "john" } } }

Kabana安裝

一、下載kabana

https://www.elastic.co/downloads/kibana

二、解壓縮

tar -zxvf kibana-6.2.3-darwin-x86_64.tar.gz -C /bigdata/

三、修改配置文件安裝啓動 
修改config/kibana.yml

server.port: 5601 # Kibana對外訪問的端口 
server.host: "192.168.1.31" #Kibana對外訪問的地址 
elasticsearch.url: "http://192.168.1.31:9200"  #Kibana須要訪問的ElasticSearch的地址 

啓動服務後,看到server running的時候說明已經跑起來了

四、kabana經常使用功能

Discover數據搜索查看 
Visualize圖表製做 
Dashboard儀表盤製做 
Timelion時序數據的高級可視化分析 
DevTools開發者工具(常常會用到) 
Managerment配置管理

LogStash使用

一、下載

https://www.elastic.co/downloads/logstash

二、解壓縮

三、準備logstash 配置文件

input { stdin { } }
output {
  elasticsearch { hosts => ["127.0.0.1:9200"] }
  stdout { codec => rubydebug }
}

四、啓動 

logstash -f logstash.conf
相關文章
相關標籤/搜索