第一章 ElasticStack简介
1.1 ElasticStack
“ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。ELK Stack 中加入了一系列轻量型的单一功能数据采集器,并把它们叫做 Beats。所以改名为Elastic Stack 是 ELK Stack 的更新换代产品。
本文博客主要偏向实践,概念的介绍基本省略的,官网或者百度都可以轻松找到和理解。
1.2 ElasticSearch
https://learnku.com/docs/elasticsearch73/7.3
1.2.1 安装
下载
选择了7.3.0版本安装
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-3-0
所有产品的各种版本下载链接
https://www.elastic.co/downloads/past-releases
安装
注意:默认不使用root用户安装
创建用户 useradd elsearch
创建文件夹 elsearch ,将安装包解压到安装目录,修改文件用户 chown elsearch:elsearch elsearch -R
修改配置文件 :
elasticsearch.yml 修改 network.host: 0.0.0.0
jvm.options : 修改jvm参数,因为如果 network.host 被修改了,就会被认为是生产环境,默认启动jvm堆内存比较大,改小一点
-Xms512m
-Xmx512m
修改系统参数:
vim /etc/sysctl.conf 添加 vm.max_map_count = 655360
[root@prebuild0422-no elasticstack]# sysctl -p 生效
启动 ./elasticsearch
ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
解决办法 : elasticsearch.yml 中找到配置项修改
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
还有几个配置注意:不同版本和不同系统有不同差别,出错了看日志或者百度都可以解决;
检查
停止服务:
[root@prebuild0422-no ~]# jps
23491 Elasticsearch
19461 jar
[root@prebuild0422-no ~]# kill 23491
1.3 ElasticSearch-head安装
安装Node
下载 : 官网下载即可
解压 :
xz -d node-v14.16.0-linux-x64.tar.xz
tar -xvf node-v14.16.0-linux-x64.tar -C ../es-head/
修改文件夹名称 : mv node-v14.16.0-linux-x64/ node-v14.16.0
配置PATH :
# set node js env
export NODE_HOME=/data/oracle/conggao2/elasticstack/es-head/node-v14.16.0
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
配置生效 : source /etc/profile
安装 elasticsearch-head
从https://github.com/mobz/elasticsearch-head下载elasticsearch-head-master.zip
解压 :unzip elasticsearch-head-master.zip
安装:
cd elasticsearch-head-master/
npm install -g grunt-cli
npm install -g grunt
修改文件Gruntfile.js,添加hostname为 0.0.0.0
connect: {
server: {
options: {
hostname: '0.0.0.0',
port: 9100,
base: '.',
keepalive: true
}
}
}
启动 :grunt server
[root@prebuild0422-no elasticsearch-head-master]# grunt server
>> Local Npm module "grunt-contrib-clean" not found. Is it installed?
>> Local Npm module "grunt-contrib-concat" not found. Is it installed?
>> Local Npm module "grunt-contrib-watch" not found. Is it installed?
>> Local Npm module "grunt-contrib-connect" not found. Is it installed?
>> Local Npm module "grunt-contrib-copy" not found. Is it installed?
>> Local Npm module "grunt-contrib-jasmine" not found. Is it installed?
Warning: Task "connect:server" not found. Use --force to continue.
Aborted due to warnings.
缺少的组件挨个安装
npm install grunt-contrib-clean
npm install grunt-contrib-concat
npm install grunt-contrib-watch
npm install grunt-contrib-connect
npm install grunt-contrib-copy
npm install grunt-contrib-jasmine
安装jasmine 依赖组件报错重新安装 npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
启动成功:
[root@prebuild0422-no elasticsearch-head-master]# grunt server
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100
界面打开9100端口
注意 : 链接不上es : 需要增加配置项,重启
vim elasticsearch .yml
# 增加如下字段
http.cors.enabled: true
http.cors.allow-origin: "*"