Elasticsearch环境准备(一)
一、ELKStack簡介
中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details
?
ELK Stack包含:ElasticSearch、Logstash、Kibana
ElasticSearch是一個搜索引擎,用來搜索、分析、存儲日志。它是分布式的,也就是說可以橫向擴容,可以自動發現,索引自動分片,總之很強大。
文檔介紹:?https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
Logstash用來采集日志,把日志解析為json格式交給ElasticSearch。
kibana 也是一個開源和免費的工具,Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
Beats在這里是一個輕量級日志采集器,其實Beats家族有5個成員
早期的ELK架構中使用Logstash收集、解析日志,但是Logstash對內存、cpu、io等資源消耗比較高。相比 Logstash,Beats所占系統的CPU和內存幾乎可以忽略不計
x-pack對Elastic Stack提供了安全、警報、監控、報表、圖表于一身的擴展包,是收費的。
2、ELK架構:
?
二、Elasticsearch部署
2.1、安裝JDK
2.1.1 yum安裝JDK [root@linux-node1 ~]# yum install -y java [root@linux-node1 ~]# java -version openjdk version "1.8.0_151" OpenJDK Runtime Environment (build 1.8.0_151-b12) OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)2.1.2 源碼安裝JDK 下載 [root@linux-node1 ~]# wget http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz 配置Java環境 [root@linux-node1 ~]# tar zxf jdk-8u151-linux-x64.tar.gz -C /usr/local/ [root@linux-node1 ~]# ln –s /usr/local/jdk1.8.0_91 /usr/local/jdk[root@linux-node1 ~]# vim /etc/profile export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin [root@linux-node1 ~]# source /etc/profile [root@linux-node1 ~]# java -version注:linux-node2節點上也安裝JDK2.2、安裝Elasticsearch
(安裝版本為為elasticsearch6.X)
(1)源碼安裝elasticsearch:
(1)源碼安裝elasticsearch: 安裝elasticsearch [root@linux-node1 ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.rpm [root@linux-node1 ~]# yum install -y elasticsearch-6.0.0.rpm 配置elasticsearch,linux-node2配置一個相同的節點,通過組播進行通信,會通過cluster進行查找,如果無法通過組播查詢,修改成單播即可。 [root@linux-node1 ~]# vim /etc/elasticsearch/elasticsearch.yml cluster.name:elk-cluster #集群名稱 node.name:elk-node1 #節點名稱,一個集群之內節點的名稱不能重復 path.data:/data/elkdata #數據路徑 path.logs:/data/logs #日志路徑 #bootstrap.memory_lock:true #鎖住es內存,保證內存不分配至交換分區,這里暫時不配置。注釋掉 network.host:192.168.56.11 #網絡監聽地址 http.port:9200 #用戶訪問查看的端口,9300是組件訪問使用 discovery.zen,ping.unicast.hosts:["10.0.0.22","10.0.0.23"] #單播(配置一臺即可,生產可以使用組播方式) [root@linux-node1 ~]# mkdir /data/{elkdata,logs} [root@linux-node1 ~]# chown elasticsearch.elasticsearch /data -R [root@linux-node1 ~]# systemctl start elasticsearch.service [root@linux-node1 ~]# netstat -tulnp |grep java tcp6 0 0 192.168.56.11:9200 :::* LISTEN 26866/java tcp6 0 0 192.168.56.11:9300 :::* LISTEN 26866/java 將配置文件拷貝到linux-node2 [root@linux-node1 ~]# scp /etc/elasticsearch/elasticsearch.yml 192.168.56.12:/etc/elasticsearch/ [root@linux-node2 ~]# vim /etc/elasticsearch/elasticsearch.yml 修改: node.name=elk-node2 network.host=192.168.56.12 [root@linux-node2 ~]# mkdir /data/{elkdata,logs} [root@linux-node2 ~]# chown elasticsearch.elasticsearch /data -R [root@linux-node2 ~]# systemctl start elasticsearch.service [root@linux-node2 ~]# netstat -tulnp |grep java tcp6 0 0 10.0.0.22:9200 :::* LISTEN 16346/java tcp6 0 0 10.0.0.23:9300 :::* LISTEN 16346/java(2)yum安裝elasticsearch
1.下載并安裝GPG key [root@linux-node1 ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch2.添加yum倉庫 [root@linux-node1 ~]# vim /etc/yum.repos.d/es.repo [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md3.安裝elasticsearch [root@hadoop-node1 ~]# yum install -y elasticsearch三、Elasticsearch的集群配置和監控
3.1 可以使用命令來查看elasticsearch的狀態內容
[root@linux-node1 ~]# curl http://10.0.0.22:9200/_cluster/health?pretty=true {"cluster_name" : "elk-cluster","status" : "green","timed_out" : false,"number_of_nodes" : 2,"number_of_data_nodes" : 2,"active_primary_shards" : 0,"active_shards" : 0,"relocating_shards" : 0,"initializing_shards" : 0,"unassigned_shards" : 0,"delayed_unassigned_shards" : 0,"number_of_pending_tasks" : 0,"number_of_in_flight_fetch" : 0,"task_max_waiting_in_queue_millis" : 0,"active_shards_percent_as_number" : 100.0 }3.2 檢查集群的健康狀態
curl http://10.0.0.22:9200/_cluster/health?pretty 健康檢查 curl http://10.0.0.23:9200/_cluster/state?pretty 集群詳細信息四、Elasticsearch插件
Head插件安裝
插件作用:主要是做集群管理的插件(Elasticsearch6.0不能使用命令直接安裝head插件)
Github下載地址:https://github.com/mobz/elasticsearch-head
4.1 安裝node
[root@linux-node1 ~]# wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.xz [root@linux-node1 ~]# tar xf node-v8.10.0-linux-x64.tar.xz [root@linux-node1 ~]# mv node-v8.10.0-linux-x64 /usr/local/node [root@linux-node1 ~]# vim /etc/profile export NODE_HOME=/usr/local/node export PATH=$PATH:$NODE_HOME/bin [root@linux-node1 ~]# source /etc/profile [root@linux-node1 ~]# which node /usr/local/node/bin/node [root@linux-node1 ~]# node -v v8.10.0 [root@linux-node1 ~]# which npm /usr/local/node/bin/npm [root@linux-node1 ~]# npm -v 5.6.04.2 安裝grunt
(grunt是基于Node.js的項目構建工具,可以進行打包壓縮、測試、執行等等的工作,head插件就是通過grunt啟動)
[root@linux-node1 ~]# npm install -g cnpm --registry=https://registry.npm.taobao.org [root@linux-node1 ~]# npm install -g grunt-cli --registry=https://registry.npm.taobao.org [root@linux-node1 ~]# grunt -version grunt-cli v1.2.04.3 修改head插件源碼
修改服務器監聽地址:Gruntfile.js[root@linux-node1 ~]# wget https://github.com/mobz/elasticsearch-head/archive/master.zip [root@linux-node1 ~]# unzip master.zip [root@linux-node1 ~]# cd elasticsearch-head-master/ [root@linux-node1 elasticsearch-head-master]# vim Gruntfile.js 90 connect: { 91 server: { 92 options: { 93 hostname: '10.0.0.22', 94 port: 9100, 95 base: '.', 96 keepalive: true 97 } 98 } 99 }4.4 修改連接地址:_site/app.js
[root@linux-node1 elasticsearch-head-master]# vim _site/app.js 4354 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://10.0.0.22:9200"; [root@linux-node1 elasticsearch-head-master]# cnpm install [root@linux-node1 elasticsearch-head-master]# grunt --version grunt-cli v1.2.0 grunt v1.0.14.5 運行head
在elasticsearch-head-master目錄下
[root@linux-node1 elasticsearch-head-master]# cnpm install #(安裝下載下來的包) [root@linux-node1 elasticsearch-head-master]# grunt --version grunt-cli v1.2.0 grunt v1.0.1 [root@linux-node1 elasticsearch-head-master]# vim /etc/elasticsearch/elasticsearch.yml 90 # ---------------------------------- Head -------------------------------------增加如下兩行: 91 # 92 http.cors.enabled: true 93 http.cors.allow-origin: "*" [root@linux-node1 elasticsearch-head-master]# systemctl restart elasticsearch [root@linux-node1 elasticsearch-head-master]# grunt server (node:2833) ExperimentalWarning: The http2 module is an experimental API. Running "connect:server" (connect) task Waiting forever... Started connect web server on http://10.0.0.22:91004.6?瀏覽器訪問:http://10.0.0.22:9100,可以看到各個節點的狀態信息,如圖:
?4.7?head插件使用
返回"概述"頁面,點擊"連接"
上圖中01234粗框是主分片,01234細框是副本分片,主分片和副本分片的數據一致,做備份。
理論上應該分別放入2臺主機,目前只用了一臺主機,所以圖中看到的副本分片是灰色,同時右上角的"集群健康值"顯示黃色警告,10個分片只有5個。
備注:如果出現紅色,可能主分片和副本分片的數據同時丟失。
上圖中藍色“信息”按鈕,包含索引狀態和索引信息。藍色“動作”按鈕,包含刷新、關閉、刪除、快照、優化、測試分析器等功能。
?
?
轉載于:https://www.cnblogs.com/jimmy-xuli/p/9202643.html
總結
以上是生活随笔為你收集整理的Elasticsearch环境准备(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 正则 —— 捕获与分组
- 下一篇: Python之io概念