ELK学习笔记1:简介及安装

news/2024/11/25 4:48:21/

ELK学习笔记1:简介及安装

ELK的简介

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

  • Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
  • Kibana也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
    在这里插入图片描述

ES安装步骤

下载elasticsearch(6.8.7版本)
elastic下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-8-7
遇到的问题:

  • https://blog.csdn.net/weixin_40816738/article/details/123434998

1 解压es文件,并来到bin目录下

# 经历将该目录放在当前的用户目录下,否则可能会报权限拒绝问题
tar -zxvf elasticsearch-6.8.7.tar.gz 
ls
cd elstaicsearch-6.8.7/bin/

2 启动es,在es的bin目录下

./elstaicsearch

后台启动可以 ./elasticsearch -d

3 测试连接(另起一个界面),会看到一份JSON数据

如果curl没有安装,需要使用apt安装一下curl
curl 127.0.0.1:9200

4 实现远程访问,在config/elasticsearch.yml配置

vi elasticsearch.yml

需要修改的配置内容,cluster.name(集群名称),path.data(数据存放位置),path.logs(日志存放位置),network.host(集群ip),http.port(集群端口)

cluster.name: my-application
path.data: /home/grid/elasticsearch-6.8.7/data
path.logs: /home/grid/elasticsearch-6.8.7/logs
network.host: 192.168.171.101
http.port: 9200

5 重新启动es

./elstaicsearch
若出现错误,无法启动:请自行百度原因
启动成功,访问网址测试连接http://127.0.0.1:9200/
在这里插入图片描述

安装head(elasticsearch-head-master)

elasticsearch-head-master是es的集群管理工具,可以用来数据的浏览和查询。

head是开源软件,托管在github,需要在github下载,地址:git://github.com/mobz/elasticsearch-head.git。
head的运行需要用到grunt,而grunt需要npm,所以需要安装nodejs。
es5.0之后,head已经不做为插件方在plugins目录,直接拷贝在本地就行。

1 安装nodejs

安装教程: https://baijiahao.baidu.com/s?id=1714641263988021723&wfr=spider&for=pc

2 下载elasticsearch-head-master

下载地址:https://github.com/mobz/elasticsearch-head
下载zip后,解压到文件夹中。

3 安装grunt

npm install -g grunt-cli

4 安装head需要的npm包

来到head目录下安装head的依赖包,

cd elasticsearch-head-master/
npm install -g cnpm --registry=https://registry.npm.taobao.org
或者
npm install 

5 查看版本

grunt -version
在这里插入图片描述

6 修改各类配置文件

  • 修改Gruntfile.js配置文件vim Gruntfile.js
    在connect–>server–>options下面添加:hostname:’*’,允许所有IP可以访问hostname:'*',
    在这里插入图片描述

  • 修改_site目录下的 app.js 中 head 的默认连接地址

    cd _site
    vi app.js
    

    在这里插入图片描述

    “http://localhost:9200"改成"http://192.168.171.101:9200”

    在这里插入图片描述

  • 配置es允许跨域访问,es目录下的config的elasticsearch.yml

    cd config
    vi elasticsearch.yml
    

    在这里插入图片描述
    在文件末尾追加

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    在这里插入图片描述

  • 启动head

    grunt server
    

    在这里插入图片描述

7 在浏览器访问head

http://127.0.0.1:9100/

在这里插入图片描述

安装Kibana

1 解压缩kibana

tar -zxvf kibana-6.8.7-linux-x86_64.tar.gz

2 修改配置文件在config下的kibana.yml

cd kibana-6.8.7-linux-x86_64/config/
vi kibana.yml

修改为以下内容:

server.port: 5601
server.host: "127.0.0.1"
elasticsearch.hosts: ["http://127.0.0.1:9200"]

在这里插入图片描述

3 启动kibana,在kibana的bin目录下执行

启动kibana之前需要先启动elasticsearch
./kibana
浏览器访问:http://127.0.0.1:5601
在这里插入图片描述

安装中文分词器

下载网址:https://github.com/medcl/elasticsearch-analysis-ik
将解压后的ik文件夹移动到es的plugins目录下
在这里插入图片描述

安装logstash

  • 解压缩logstash
    tar -zxvf logstash-6.8.7.tar.gz  
    
  • 启动logstash小案例(在logstash目录的bin中)
    ./logstash -e 'input { stdin { } } output { stdout {} }'
    
  • 一般启动logstach是需要配置 input,output
    比如新建一个demo,在demo中新建一个xxx.conf,将input和output配置。在conf时启动方式:
    ./logstash -f ../demo/xxx.conf

Linux启动ELK步骤

  • 启动 elasticsearch
    elasticsearch目录下(master)./bin/elasticsearch
    在这里插入图片描述

  • 启动 elasticsearch-head-master
    elasticsearch-head-master目录下 grunt server
    在这里插入图片描述

  • 启动 kibana
    kibana目录下./bin/kibana
    在这里插入图片描述

  • 启动logstash(选择性是否启动)
    logstash目录下./bin/logstash -e 'input {stdin {} } output{ stdout {}}'
    在这里插入图片描述

至此ELK都安装成功


http://www.ppmy.cn/news/1109015.html

相关文章

Elasticsearch:为具有许多 and/or 高频术语的 top-k 查询带来加速

作者:Adrien Grand Disjunctive queries(term_1 OR term_2 OR ... OR term_n)非常常用,因此在提高查询评估效率方面它们受到了广泛关注。 Apache Lucene 对于评估 disjunctive queries 有两个主要优化:一方面用于详尽评…

2023最新AI创作商用ChatGPT源码分享+支持AI绘画

一、SparkAI智能创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文…

西门子S7-1200F或1500F系列安全PLC的组态步骤和基础编程(二)

西门子S7-1200F或1500F系列安全PLC的组态步骤和基础编程(二) 上一次和大家分享了组态相关的重要内容,具体可以参考以下链接中的内容: 西门子S7-1200F或1500F系列安全PLC的组态步骤和基础编程(一) 本次继续和大家分享关于安全PLC基础编程的相关内容: 如下图所示,在左侧的…

并查集快速查找(Java 实例代码)

目录 并查集快速查找 Java 实例代码 UnionFind1.java 文件代码: 并查集快速查找 本小节基于上一小节并查集的结构介绍基础操作,查询和合并和判断是否连接。 查询元素所在的集合编号,直接返回 id 数组值,O(1) 的时间复杂度。 …

后端字典的优雅设计

背景 今天讲到的是数据字典的设计。为什么要讲到这个呢,因为我下午在做开发的时候遇到了一个问题。我先扔出来某个表的字段的定义吧: business_type int default 0 comment 0:收款计划;1:付款计划而且我还有一个字典…

Python---匿名函数 lambda

匿名函数 ---- lambda (不能重复使用) 匿名函数定义语法:lambda 传入参数: 函数体(一行代码) lambda 是关键字,表示定义匿名函数 传入参数表示匿名函数的形式参数,如:xy表示接收2个形式参数函数体,就是函数的执行逻辑,要注意:只能…

c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】

C 手动内存管理:C语言没有内置的安全检查机制,容易出现内存泄漏、缓冲区溢出等安全问题。 适用于系统级编程 C 手动内存管理:C需要程序员手动管理内存,包括分配和释放内存,这可能导致内存泄漏和指针错误。 适用于…

《TCP/IP网络编程》阅读笔记--epoll的使用

1--epoll的优点 select()的缺点: ① 调用 select() 函数后针对所有文件描述符的循环语句; ② 调用 select() 函数时需要向操作系统传递监视对象信息; epoll()的优点: ① 无需编写以监视状态变化为目的的针对所有文件描述符的循环语…