ELKstack入门

什么是ELKstack

通俗来讲,ELK是由Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,ELK 又称为ELK stack,官方域名为elastic.co,ELK stack的主要优点有如下几个:

  • 1.处理方式灵活: elasticsearch是实时全文索引,具有强大的搜索功能
  • 2.配置相对简单:elasticsearch全部使用JSON 接口,logstash使用模块配置,kibana的配置文件部分更简单。
  • 3.检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
  • 4.集群线性扩展:elasticsearch和logstash都可以灵活线性扩展
  • 5.前端操作绚丽:kibana的前端设计比较绚丽,而且操作简单

什么是elasticsearch

是一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索搜索、支持分布式可实现高可用、提供API接口,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。

什么是Logstash

可以通过插件实现日志收集和转发,支持日志过滤,支持普通log、自定义json格式的日志解析。

什么是Kibana

主要是通过接口调用elasticsearch的数据,并进行前端数据可视化的展现。

部署elasticsearch

环境

主机名 IP 角色 安装包
db01 10.0.0.51 elasticsearch elasticsearch-5.3.0.rpm
db02 10.0.0.52 elasticsearch elasticsearch-5.3.0.rpm、

安装JDK

下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

# 安装jdk
[root@db01 ~]# tar xf jdk-8u181-linux-x64.tar.gz

# 将jdk移动到/usr/local下
[root@db01 ~]# mv jdk1.8.0_181 /usr/local/

# 做软连接
[root@db01 ~]# ln -s /usr/local/jdk1.8.0_181/bin/* /usr/local/bin/

# 配置java环境变量
[root@db01 ~]# vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk1.8
export
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# 检查版本
[root@db01 ~]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

# 加载环境变量
[root@db01 ~]# source /etc/profile

安装elasticsearch

下载地址https://mirrors.aliyun.com/elasticstack/yum/elastic-5.x/

# 安装elasticsearch
[root@db01 ~]# yum localinstall -y elasticsearch-5.3.0.rpm

# 修改配置文件
[root@db01 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elkstack
node.name: es01
path.data: /data/es/data
path.logs: /data/es/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["10.0.0.51", "10.0.0.52"]
# 创建数据目录和日志目录
[root@db01 ~]# mkdir -p /data/es/{data,logs}
# 授权
[root@db01 ~]# chown -R elasticsearch.elasticsearch /data
# CentOS7修改启动脚本
[root@db01 ~]# vim /usr/lib/systemd/system/elasticsearch.service
LimitMEMLOCK=infinity
# 重新加载启动脚本
[root@db01 ~]# systemctl daemon-reload
# 优化文件描述符
[root@db01 ~]# vim /etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
* soft nofile 131072
* hard nofile 131072
# 修改JVM
[root@db01 ~]# vim /etc/elasticsearch/jvm.options
-Xms512m
-Xmx512m
# 启动es
[root@db01 ~]# systemctl start elasticsearch.service

# 检查端口
[root@db01 ~]# netstat -lntup|grep java
tcp6       0      0 :::9300                 :::*                    LISTEN      1396/java           
tcp6       0      0 :::9200                 :::*                    LISTEN      1396/java 

image-20211101103106647

安装es第三方head插件

插件是为了完成不同的功能,官方提供了一些插件但大部分是收费的,另外也有一些开发爱好者提供的插件,可以实现对elasticsearch集群的状态监控与管理配置等功能,我们现在要安装的是Elasticsearch的head插件,此插件提供elasticsearch的web界面功能。

安装Elasticsearch的head插件时,要安装npm,npm的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。

在Elasticsearch 5.x版本以后不再支持直接安装head插件,而是需要通过启动一个服务方式。
Github地址:https://github.com/mobz/elasticsearch-head

# 1.安装git命令
[root@db01 ~]# yum install -y git
# 2.下载head插件
[root@db01 ~]# git clone git://github.com/mobz/elasticsearch-head.git
# 3.下载nodejs
[root@db01 ~]# wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.xz
# 4.解压nodejs
[root@db01 ~]# tar xf node-v16.13.0-linux-x64.tar.xz
# 5.做软连接
[root@db01 ~]# ln -s /app/node-v16.13.0-linux-x64 /app/node
[root@db01 ~]# ln -s /app/node-v16.13.0 /app/node-16
# 6.添加环境变量
[root@db01 ~]# vim /etc/profile.d/node.sh
export PATH="/app/node/bin:$PATH"
# 7.重新加载环境变量
[root@db01 ~]# source /etc/profile
# 8.查看版本
[root@db01 ~]# npm --version
8.1.0
# 9.进入head插件目录
[root@db01 ~]# cd elasticsearch-head/
# 10.安装换源命令
[root@db01 elasticsearch-head]# npm install -g nrm
[root@db01 elasticsearch-head]# nrm use taobao
# 11.安装grunt插件
[root@db01 elasticsearch-head]# npm install grunt -save
# 12.启动head插件
[root@db01 elasticsearch-head]# npm run start &
[root@db01 ~]# netstat -lntup|grep 9*00

image-20211101154235045

解决跨域问题

[root@db01 data]# vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"

image-20211101154410781

原文地址:http://www.cnblogs.com/bloglee/p/16787773.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性