ELK(Elasticsearch、Logstash、Kibana) 分布式日志搭建详细过程

news2024/9/22 9:56:06

ELK是三款软件的简称,分别是Elasticsearch、 LogstashKibana组成

本文中描述了ELK日志平台的详细搭建过程,不对工具用途做描述。


一、准备

安装包

所需安装包及官网下载地址:

elasticsearch-8.14.3-linux-x86_64.tar.gz   (https://www.elastic.co/cn/downloads/elasticsearch)

logstash-8.14.3-linux-x86_64.tar.gz (https://www.elastic.co/cn/downloads/logstash)

kibana-8.14.3-linux-x86_64.tar.gz (https://www.elastic.co/cn/downloads/kibana)

elasticsearch-head.tar(docker离线包)

GeoLite2-City.mmdb

官网下载慢可以到网盘下载

链接: https://pan.baidu.com/s/1LL1oS4KTkcerd9ktjEK14Q?pwd=ku63 提取码: ku63

环境

Linux CentOS 7

ip地址:192.168.0.2


二、搭建过程

Elasticsearch

安装

  • 解压到相应目录
tar -zxvf elasticsearch-8.14.3-linux-x86_64.tar.gz -C /opt/elk/
  • 修改配置
vim /opt/elk/elasticsearch-8.14.3/config/elasticsearch.yml
node.name: node-1
path.data: /opt/elk/elasticsearch-8.14.3/data
path.logs: /opt/elk/elasticsearch-8.14.3/logs
network.host: 127.0.0.1
http.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]

  • 创建es用户,因为elasticsearch 不支持root用户操作

useradd es

chown -R es:es /opt/elk/elasticsearch-8.14.3

启动

  • 切换es用户进行启动
su - es

#一下启动方式二选一即可

#前台启动

/opt/elk/elasticsearch-8.14.3/bin/elasticsearch

#后台启动

/opt/elk/elasticsearch-8.14.3/bin/elasticsearch -d

注意:启动发现有报错,可以查看博主的另外一遍文章进行处理https://blog.csdn.net/a34569345/article/details/132768352?spm=1001.2014.3001.5501

在浏览器打开http://192.168.0.2:9200/,如果出现下面信息,则表示成功

这时候访问链接会发现不正常,是因为默认开启了ssl,下面把ssl和密码登录都关闭,再重启es,再访问就会正常

elasticsearch-head(选择性安装)(建议安装)

安装

具体安装过程可以查看博主另外一篇文章

https://blog.csdn.net/a34569345/article/details/132779146?spm=1001.2014.3001.5501

如果在线的docker镜像下载不了,可以下载离线包加载为镜像,离线包已放在上面网盘中

docker load -i elasticsearch-head.tar

Kibana

安装

  • 解压到相应目录
tar -zxvf kibana-8.14.3-linux-x86_64.tar.gz -C /opt/elk
  • 修改配置
vim /opt/elk/kibana-8.14.3/conifg/kibana.yml
server.port: 5601 
server.host: "0.0.0.0" 
elasticsearch.hosts: ["http://192.168.0.2:9200"] 
  • 创建启动/重启脚本文件
vim /opt/elk/restartKibana.sh
# 端口号
PORT=5601
# 杀进程 
for port in ${PORT}
do
    pid=`netstat -lnp | grep $port | awk '{print $7}' | awk -F"/" '{ print $1 }' | head -1`
    if  [ ! -n "$pid" ] ;then
        continue
    else
        kill -9 $pid
    fi
done

sleep 2
# 启动
# kibana默认不允许root⽤户启动,可以加--allow-root选项
nohup sh /opt/elk/kibana-8.14.3/bin/kibana --allow-root > kibana.log 2>&1 &

启动

执行时如果提示netstat不是内部命令等错误,请自行安装linux 相应命令,如果不想安装,restartKibana.sh文件可以只添加最后一行

sh /opt/elk/restartKibana.sh

在浏览器打开http://192.168.0.2:5601/,如果出现下面信息,则表示成功

切换中文

在/opt/elk/kibana-8.14.3/conifg/kibana.yml 添加,并重启

vim /opt/elk/kibana-8.14.3/conifg/kibana.yml
i18n.locale: "zh-CN"

Logstash

安装

  • 解压到相应目录
tar -zxvf logstash-8.14.3-linux-x86_64.tar.gz -C /opt/elk
  • 新增配置文件
vim /opt/elk/logstash-8.14.3/bin/logstash-elasticsearch.conf
# 以下是收集nginx日志
input {
  file {
        type => "my_nginx"
        path => "/usr/local/nginx/logs/*.log"
        # start_position => beginning :初始数据时开放,后续要关闭,不然重启后又会将所有日志都收集到es中
        start_position => beginning
        sincedb_path => "/dev/null"
        codec => plain {
                format => "%{message}%"
        }
  }
}

filter {
        if[type] == "my_nginx"
        {
                grok {
                        match => { "message" => "%{IPORHOST:remote_addr} - %{DATA:remote_user} \[%{HTTPDATE:timestamp}\] \"%{WORD:request_method} %{DATA:uri} HTTP/%{NUMBER:http_version}\" %{NUMBER:response_code} %{NUMBER:body_sent_bytes} \"%{DATA:http_referrer}\" \"%{DATA:http_user_agent}\"" }
                 }
                date {
                        match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]
                }
                geoip {
                        source => ["remote_addr"]
                        target => ["geoip"]
                        database => "/opt/elk/geoiplite2_city/GeoLite2-City.mmdb"
                }
        }
}

output {
        if [type] == "my_nginx"
        {
                elasticsearch {
                        hosts => '192.168.0.2:9200'
                        index => 'my_nginx'
                }
        }

        stdout {
                codec => rubydebug
        }
}

注意:配置文件的参数说明请百度查看,GeoLite2-City.mmdb文件在上面网盘中获取

  • 创建启动脚本文件:startLogstash.sh
vim /opt/elk/startLogstash.sh
# --config.reload.automatic : 表示配置文件修改,会重新加载
nohup sh /opt/elk/logstash-8.14.3/bin/logstash -f /opt/elk/logstash-8.14.3/bin/logstash-elasticsearch.conf --config.reload.automatic >> logstash.log 2>&1 &

启动

sh /opt/elk/startLogstash.sh
  • 如果安装了elasticsearch-head,浏览器打开192.168.0.2:9100页面如果有my_nginx,表示成功

kibana查看,打开索引管理,如果有my_nginx,表示成功


三、使用kibana

Discover

  • 创建数据视图

Dashboards

  • 创建可视化

Maps

  • 添加图层

  • 选择完视图后,会发现提示数据视图不包含任何地理空间字段,下面需要做一些配置

复制索引的映射

打开my_nginx->映射->List->复制,保存复制出来的字段映射

复制出来的这个geoip是重点

创建索引模板

每页安装以下配置即可

 索引设置中配置

{
  "index": {
    "number_of_shards": "1",
    "refresh_interval": "5s"
  }
}

映射->加载JSON,把刚刚复制的粘贴进去,删掉第一个大括号、第一个mappings、最后一个大括号,location里面添加,点击加载并覆盖

"type": "geo_point"

删除数据视图

 删除索引

重启logstash服务

重新创建数据视图

重新创建maps图层

这时就能看到访问的分配地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2100323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024 【Delphi 12】苹果ios开发环境配置(五星保姆级)

目录 一、创建证书 1. 创建证书签名请求:(在苹果电脑上操作): .certSigningRequest 文件 2. 创建证书:在苹果的 开发者网站 上操作 重复以上步骤并下载对应的证书文件如下: 3. 创建标识符(…

引爆关注!LLM大模型开源项目突破34.4千星,热度飙升!

其实这个Repo在外网知名度很高,但咱这似乎没看到咋推 随着近两年大型语言模型的发展,LLM在生活中发挥着愈发重要的作用,通过改变我们与技术互动的方式,为医疗、金融和教育等各领域带来变革性的变化,之前AI周刊中也说了…

开放式耳机怎么戴?开放式耳机比入耳式耳机舒适吗?

开放式耳机佩戴教程如下: 选择合适的耳挂或支架:开放式耳机通常有耳挂式或头梁式等设计。如果是耳挂式,确保耳挂的大小和形状适合您的耳朵,能够稳固地挂在耳朵上;如果是头梁式,调整头梁的长度,使…

交易处理商TAAL公司深度参与BSV区块链的ARC研发

​​发表时间:2024年8月7日 TAAL技术主管Michael Bckli表示,TAAL公司一直在对ARC进行测试,并准备在今年年底全面发布。因TAAL在区块链交易处理方面具备深厚的专业知识,BSV区块链委托TAAL进行ARC开源参考落地方案的开发。 ARC是一个…

jmeter的1个线程如何遍历提取到的1个变量的多个值?

某个请求的uri是动态变化的,且这个url这个从上一个接口中提取到,但是其值可能有多个,也可能有1个,1个用户执行时,需要将这几个值作为uri全部请求一遍。 如我需要把变量C53这个变量(共计取到了3个值&#x…

Language Models are Few-Shot Learners

Abstract 最近的研究表明,通过在大量文本语料上进行预训练,然后在特定任务上进行微调,可以在许多自然语言处理任务和基准测试中取得显著进展。尽管这种方法在架构上通常是任务无关的,但它仍然需要特定任务的微调数据集&#xff0…

机器人外呼有哪些优势?

机器人外呼,作为一种结合了计算机技术和人工智能技术的自动化工具,具有多重显著优势。以下是其主要优势的详细阐述: ### 1. 高效性 * **大幅提升工作效率**:机器人外呼可以全天候、不间断地进行工作,不受时间、地点和…

第二十一届华为杯数学建模经验分享之资料分享篇

今天给大家分享一些数学建模的资料,通过这些资料的学习相信你们一定在比赛中获得好的成绩。今天分享的资料包括美赛和国赛的优秀论文集、研赛的优秀论文集、推荐数学建模的相关书籍、智能算法的学习PPT、python机器学习的书籍和数学建模经验分享与总结,其…

PlugIR:开源还不用微调,首尔大学提出即插即用的多轮对话图文检索 | ACL 2024

即插即用的PlugIR通过LLM提问者和用户之间的对话逐步改进文本查询以进行图像检索,然后利用LLM将对话转换为检索模型更易理解的格式(一句话)。首先,通过重新构造对话形式上下文消除了在现有视觉对话数据上微调检索模型的必要性&…

想亲手制作一款属于自己的游戏吗,游戏零基础入门【文末送书】

学习目录 📢 前言 🎬 Unity简介🎥 Unity学习专栏介绍🥇 专栏亮点🙉 适用对象🎁 赠送学习书籍 💬 结语 📢 前言 随着科技的不断进步,游戏制作领域迎来了前所未有的发展机…

EE trade:辨别真假银5个实用的技巧

从古至今, 银器以其闪耀的光泽和高贵典雅的魅力, 深受人们喜爱。 然而, 由于银具有较高的市场价值, 也引来了一些不法商贩的仿造。 如何辨别真假银, 成为许多人关注的话题。 别担心, 今天我们就来揭秘5个简…

FT4232芯片(USB转4串口)的国产化替代

之前有些项目用到FT4232HL芯片,无奈不好买(加之价格高等原因),需要找些Pin脚替代的型号。此前,部分项目已经使用了沁恒微电子发布的一些自有封装型号,像CH344Q、CH9344L等。但个别项目(主板复杂…

react-native ios Android 打包 以及 Ios 证书 签名问题

mai一、ios 查看当前可用设备 xcrun simctl list devices 修改名称 info.plist 文件下: CFBundleDisplayName 下的名称: 修改图标: 图标工厂 iOS一键生成所有尺寸的应用图标/启动图 - 知乎,生成你需要的图标,在XCode 打开项…

java导出Excel接口

需求:需要实现一个导出的接口,点导出同时导出5个Excel表格,五种表格的数据筛选不同数据 public String export(MarketReceiveVo query) {Date winApprovalStartDate query.getWinApprovalStartDate();Date winApprovalEndDate query.getWin…

笔记:应用Visual Studio Profiler识别和解决内存泄漏问题

一、目的:应用Visual Studio Profiler识别和解决内存泄漏问题 识别和解决内存泄漏问题是确保应用程序稳定性和性能的关键步骤。 二、实现 以下是如何使用 Visual Studio Profiler 识别和解决内存泄漏问题的详细步骤: 1. 启动内存分析 1. 打开项目&…

从最浅层剖析C语言————第四节(深入了解二维数组存储以及实现二分查找)

目录 1. 前情提要 2. sizeof计算数组元素个数 3. 二维数组的创建及其初始化 3.1 二维数组的概念 3.2 二维数组的创建 3.3 二维数组的初始化 4. 二维数组的使用 4.1 二维数组的下标 4.2 二维数组在内存之中的存储 4.3 C99中的变长数组 1. 前情提要 前面一篇博客中&…

经纬恒润天津工厂荣获2024年第一批天津市数字化车间

在数字化转型的浪潮中,天津市工业与信息化局本月正式公布了2024年第一批数字化车间和智能工厂名单,经纬恒润天津工厂凭借其卓越的创新能力与先进的智能制造技术成功入选,荣膺"天津市数字化车间"称号,标志着经纬恒润在数…

SOMEIP_ETS_081: ClientServiceActivate_Server_reboot

测试目的: 验证设备(DUT)是否能够检测到其服务器的重启,并通过重新建立通信来适当地做出反应。 描述 本测试用例旨在检查DUT在检测到服务器重启后,是否能够重新建立TCP连接,并重新订阅事件组&#xff0c…

联想凌拓产品生命周期管理系统(PLM)解决方案

PLM(Product Lifecycle Management)产品生命周期管理系统其内部集合了 CAD、CAE、CAM、PDM 等设计类产品,是主要的研发设计类软件产品。PLM 系统有助于缩短产品开发周期、实时同步产品信息、降低风险和成本、提升产品质量、加强和供应商的协作…

苹果11月推出新款M4 Mac:Mac mini设计焕新 MacBook Pro仅例行更新

据外媒 MacRumors 报道,苹果公司计划在 11 月推出首批 M4 Mac,这一时间表与去年相似,当时苹果公司在同样的时间点中宣布推出搭载 M3 芯片的 MacBook Pro。 ▲ 苹果公司在 2023 年 10 月 31 日推出的 M3 MacBook Pro 同时根据古尔曼爆料称苹果…