【星海随笔】云解决方案学习日志篇(一) ELK,kibana,Logstash安装

news2024/10/7 18:29:51
心路历程

本来想最近再研究研究DPDK的。但是自己做一个东西很多时候没有回报。因为自己的低学历问题,类似工作的面试都没有。所以很多东西学了很快就忘了,没有地方可以用。

今天看到了一个大佬,除了发型外,很多想法还是很共鸣的。
Shay Banon
决定开始跟着大佬的文章研究一段时间。这样梯度的学习中,自己就算没有一线的经验也可以学到很多一线的东西。

大佬是Elastic的创始人,决定先从ELK开始研究。

例如Elastic与Amazon, Elastic 和 Grafana Labs ,Elasticsearch、Kibana 及 X-Pack 、Kafka等。。。

在这当中,Kafka的作用是明显的,作为一个中间件,一个缓冲,它起到了提高吞吐,隔离峰值影响,缓存日志数据,快速落盘,同时通过producer/consumer模式,让Logstash能够横向拓展的作用,还能够用作数据的多路分发。
大多数时候,我们看到的实际架构,按数据流转顺序排列,应该是BKLEK架构。

Filebeat+kfaka+ELK

Elastic 社区

参考文档

https://blog.csdn.net/weixin_44991162/article/details/90257265


前置 Kibana 安装

Elasticsearch和Kibana之间的关系是紧密的,它们共同构成了Elastic Stack,也被称为ELK Stack
Elasticsearch是一个开源的分布式搜索和分析引擎

负责存储和搜索数据。

而Kibana是一个数据可视化工具

用于可视化和分析这些数据。

它们之间通过RESTful API 进行通信,使得集成非常简单。
Kibana提供了多种可视化工具,如线图、柱状图、饼图等,以及各种数据分析功能,如日志分析、监控、搜索等,可以帮助用户更好地理解和分析数据。
Kibana 通常与 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 提供图形化的 web 界面来浏览 Elasticsearch 日志数据,可以用来汇总、分析和搜索重要数据。

STEP1

首先要关闭Iptables 和 Selinux

Logstash 依赖于JAVA
Oracle 修复了 Java 超过一半的问题。所以我们到Oracle 官方网站上下载 java 的JDK

https://www.oracle.com/java/technologies/downloads/#java11

tar -zxf jdk-11.0.18_linux-x64_bin.tar.gz -C /usr/local/

配置环境变量
cat >> /etc/profile << "EOF"
export JAVA_HOME=/usr/local/jdk-11.0.18
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
EOF
#加载环境变量
source /etc/profile
#验证版本
java -version

Kibana 安装

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.1-linux-x86_64.tar.gz

tar -zxf kibana-7.16.1-linux-x86_64.tar.gz -C /usr/local/
mv /usr/local/kibana-7.16.1-linux-x86_64 /usr/local/kibana-7.16.1 
ls /usr/local/kibana-7.16.

环境变量配置:

cat >> /etc/profile << "EOF"
export PATH=$PATH:/usr/local/kibana-7.16.1/bin
EOF
source /etc/profile

修改Kibana配置kibana.yml

vim /usr/local/kibana-7.16.1/config/kibana.yml
#简单使用,只修改下面两个选项即可
server.port: 5601
server.host: "0.0.0.0"

创建Kibana 用户、授予Kibana 权限,并启动服务

#添加kibana用户,禁止ssh登录
useradd -s /sbin/nologin kibana
 
#授权
chown -R kibana:kibana /usr/local/kibana-7.16.1/
 
#切换kibana 用户,验证版本
su - kibana -s /bin/bash
kibana --version
 
#启动服务
nohup kibana >/tmp/kibana.log 2>&1 &
#查看端口是否监听
netstat -lntp |grep 5601
#服务没问题后退出当前用户
exit

Elasticsearch 安装

ElasticSearch是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。
Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。
Elasticsearch是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大容量的日志数据,也可用于搜索许多不同类型的文档。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.1-linux-x86_64.tar.gz

tar -zxf elasticsearch-7.16.1-linux-x86_64.tar.gz -C /usr/local/
ls /usr/local/elasticsearch-7.16.1/
cat >> /etc/profile << "EOF"
export PATH=$PATH:/usr/local/elasticsearch-7.16.1/bin
EOF
source /etc/profile
修改 Elasticsearch配置文件

vim /usr/local/elasticsearch-7.16.1/config/elasticsearch.yml
#只需修改添加下面几个选项即可
#可自定义数据存储路径(注意授权)
path.data: data
#可自定义日志存在路径(注意授权)
path.logs: logs
#监听的ip根据自己的情况修改,我的服务都部署在一台机器,所以监听127.0.0.1
network.host: 127.0.0.1
http.port: 9200
#开启密码认证
xpack.security.enabled: true
#集群模式,single-node 是单节点
discovery.type: single-node

修改ES JVM的内存限制
vim /usr/local/elasticsearch-7.16.1/config/jvm.options
#建议调至当前可用内存的一半
-Xms2g
-Xmx2g

创建elastic 用户、授予elastic 权限,并启动服务

#添加elastic用户,禁止ssh登录
useradd -s /sbin/nologin elastic
 
#授权
chown -R elastic:elastic /usr/local/elasticsearch-7.16.1/
 
#切换 elastic 用户,验证版本
su - elastic -s /bin/bash
elasticsearch --version
 
#启动服务
elasticsearch -d
#查看端口是否监听
netstat -lntp |grep 9200
#服务没问题后退出当前用户
exit

Elasticsearch 设置密码

/usr/local/elasticsearch-7.16.1/bin/elasticsearch-setup-passwords interactive
输入:y
输入自定义密码:1234567

验证密码

curl -u elastic:elk@2023 127.0.0.1:9200
修改 Kibana 配置,添加 es 密码认证

vim /usr/local/kibana-7.16.1/config/kibana.yml 
elasticsearch.hosts: ["http://127.0.0.1:9200"]
elasticsearch.username: "elstic"
elasticsearch.password: "1234567"

重启 Kibana

su - kibana -s /bin/bash
#停止服务重新启动
ps -ef |grep -w kibana-7.16.1 |grep -v grep | awk '{print $2}' |xargs kill
nohup kibana >/tmp/kibana.log 2>&1 &
#查看端口是否监听
netstat -lntp |grep 5601
#观察日志有无错误输出
tailf /tmp/kibana.log
#服务没问题后退出当前用户
exit

访问 Kibana :5601


Logstash 安装

Logstash 由 Ruby 语言编写,运行在 Java 虚拟机(JVM)上,是一款强大的数据处理工具, 可以实现数据传输、格式处理、格式化输出。Logstash 具有强大的插件功能,常用于日志处理。

Filebeat是一个轻量级的日志收集器,主要用于从文件中读取日志行并将其传输到其他地方,如Elasticsearch或Logstash。它适合部署在收集的最前端,用于日志收集和传输。
Logstash是一个功能强大的数据处理管道,可以从多种来源接收数据,并进行复杂的转换和过滤,然后将数据发送到许多不同的目标。它适用于大规模的日志处理任务,提供了更多的过滤插件和处理选项,可以进行更复杂的数据转换和处理操作。
由于其轻量级的设计,Filebeat占用的系统资源较少,适用于在较小的环境中部署。
而Logstash由于其更强大的功能和灵活性,需要更多的系统资源来运行,适用于大规模的日志处理任务。

logstash 超大规模日志时,日志先存到kafka,再通过logstash同步到elasticsearch
对于日志规模不大时,不需要用到logstash。
由于Elasticsearch具有解析的能力(如Logstash过滤器)— Ingest,这意味着可以将数据直接用Filebeat推送到Elasticsearch,并让Elasticsearch既做解析的事情,又做存储的事情

下载

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.16.1-linux-x86_64.tar.gz

加压安装包

tar -zxf logstash-7.16.1-linux-x86_64.tar.gz -C /usr/local/
ll /usr/local/logstash-7.16.1/

设置环境变量

cat >> /etc/profile << "EOF"
export PATH=$PATH:/usr/local/logstash-7.16.1/bin
EOF
source /etc/profile

Logstash JVM的内存限制

vim /usr/local/logstash-7.16.1/config/jvm.options
#建议调至当前可用内存的一半
-Xms1g
-Xmx1g

查看版本

[root@VM-5-163-centos ~]# logstash --version
Using bundled JDK: /usr/local/logstash-7.16.1/jdk
logstash 7.16.1

Logstash 不强制使用普通用户启动,如需普通用户启动,可以参考前面创建用户步骤


测试采集 nginx 日志
创建 logstash config配置文件
cat > /usr/local/logstash-7.16.1/config/logstash.conf <<  "EOF"
input {
  file {
    path => "/usr/local/nginx/logs/access.log"
  }
}
filter {
    grok {
        match => {
            "message" => '(?<remote_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - - \[(?<timestamp>\S+ \+\d+)\] "(?<method>[A-Z]+) (?<request>\S+) HTTP/\d.\d" (?<status>\d+) (?<bytes>\d+) "[^"]+" "(?<agent>[^"]+)"'
        }
        remove_field => ["message","@version","path"]
    }
    date {
        match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
        target => "@timestamp"
    }
}
output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
    user => "elastic"
    password => "elk@2023"
    index => "logstash-%{+YYYY.MM.dd}"
  }
}
EOF

启动logstash

logstash -f /usr/local/logstash-7.16.1/config/logstash.conf 

Kibana 查看ES 是否已经有Logstash 的 index
在这里插入图片描述
添加索引
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


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

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

相关文章

2024年6月11日 (周二) 叶子游戏新闻

万能嗅探: 实测 网页打开 某视频号、某音、某红薯、某站&#xff0c;可以做到无水印的视频和封面下载功能哦&#xff0c;具体玩法大家自行发挥吧。 WPS免登录一键修改器: 去除烦人的登录且能正常使用 日本一首部游戏《拼图世界》上架Steam 30年PS名作日本游戏厂商日本一的首部品…

Keil一键添加.c文件和头文件路径脚本--可遍历添加整个文件夹

最近想移植个LVGL玩玩&#xff0c;发现文件实在是太多了&#xff0c;加的手疼都没搞完&#xff0c;实在不想搞了就去找脚本和工具&#xff0c;基本没找到一个。。。。。。 主要是自己也懒得去研究写脚本&#xff0c;偶然搜到了一个博主写的脚本&#xff0c;原博客地址:https:/…

前端传递bool型后端用int收不到

文章目录 背景模拟错误点解决方法 背景 我前几天遇到一个低级错误&#xff0c;就是我前端发一个请求&#xff0c;把参数送到后端&#xff0c;但是我参数里面无意间传的布尔型&#xff08;刚开始一直没注意到&#xff0c;因为当时参数有十几个&#xff09;&#xff0c;但是我后…

CMS与AI的融合:构建万能表单小程序系统

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;MyCMS作为一款功能强大的内容管理系统&#xff0c;通过集成AI技术&#xff0c;进一步拓展了其应用范围和智能化水平。本文将探讨如何利用MyCMS结合AI技术&#xff0c;构建一个能够将用户提交的万能表单数据转化为智能提…

【Nginx系列】基于请求头的分发

文章目录 一、HTTP请求头和响应头二、基于请求头的分发2.1、基于host分发2.2、基于域名的分发测试&#xff1a;2.3、基于开发语言分发2.4、基于浏览器分发2.5、基于源IP分发 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能…

上新即爆品?2024小红书爆款黄金公式

5月&#xff0c;小红书正式上线了平台级新品营销IP——“宝藏新品”&#xff0c;旨在消费愈发审慎的当下&#xff0c;帮助品牌破除不确定性&#xff0c;达成新品的高质量生长。 本期千瓜将进一步解读「宝藏新品」策略&#xff0c;帮助品牌推新呈现更多样化的成长可能。 强种草…

PyTorch中配置CUDA

第零部分&#xff1a; 首先查看CUDA版本 打开cmd&#xff0c;输入&#xff1a;nvidia-smi 可以看到CUDA的版本&#xff0c;后面安装的pytorch相关的库不高于这个版本的就行。 这里CUDA的版本是12.5&#xff0c;但是由于pytorch目前最高支持的cuda版本是12.1&#xff08;在下…

Spring Security实现用户认证四:使用JWT与Redis实现无状态认证

Spring Security实现用户认证四&#xff1a;使用JWT与Redis实现无状态认证 1 什么是无状态认证&#xff1f;2 什么是JWT&#xff1f;2.1 需要注意的事项2.2 JWT构成 3 Spring Security JWT实现无状态认证3.1 创建一个Spring Boot项目3.1.1 依赖3.1.2 Main3.1.3 application.ym…

劝你千万别碰CSGO/Steam游戏搬砖

添加链接描述 CSGO游戏搬砖这个项目&#xff0c;大家也不陌生了&#xff0c;所有人都在夸它如何如何好&#xff0c;如何如何赚钱&#xff0c;今天我们客观一点&#xff0c;不偏不倚&#xff0c;来聊聊CSGO游戏搬砖的弊端。 首先&#xff0c;这个项目最大的弊端就是不太适合大部…

pikachu靶场上的暴力破解

目录 一、暴力破解 基于表单的暴力破解 验证码绕过(on server) ​编辑 验证码绕过(on client) ​编辑 token防爆破? 二、暴力破解的相关知识点 (1)Burte Force&#xff08;暴力破解&#xff09;概述 (2)验证码的绕过原理 【验证码机制原理】 【客户端可能存在的安全…

debian系统apt 国内安装源

debian系统apt 国内安装源&#xff1a; 国内阿里镜像源&#xff1a; deb http://mirrors.aliyun.com/debian stable main non-free contrib deb-src http://mirrors.aliyun.com/debian stable main non-free contrib 打开源文件位置&#xff1a;/etc/apt/sources.list,原来的内…

证照之星 XE版软件最新版下载及详细安装教程

简介&#xff1a; 全新的证照之星XE版本内置500证件照规格&#xff0c;100套服装素材&#xff0c;新增AI算法&#xff0c;一键处理更智能&#xff0c;轻松将生活照变成证件照。 ​安 装 包 获 取 地 址&#xff1a; 证照之星 XE版&#xff1a;​​https://souurl.cn/4fuRmg​…

学习笔记——路由网络基础——路由度量值

3、路由度量值 (1)基本概念 路由度量值表示到达这条路由所指目的地址的代价。度量值数值越小越优先&#xff0c;度量值最小路由将会被添加到路由表中。度量值很多时候被称为开销(Cost)。 路由度量(路由开销 cost)对于同一个路由协议&#xff0c;当到达某目标网段有多条路由供…

海洋CMS admin_notify.php 远程代码执行漏洞复现(CVE-2024-30565)

0x01 产品简介 海洋CMS是一套专为不同需求的站长而设计的内容管理系统,灵活、方便、人性化设计、简单易用是最大的特色,可快速建立一个海量内容的专业网站。海洋CMS基于PHP+MySql技术开发,完全开源免费 、无任何加密代码。 0x02 漏洞概述 海洋CMS admin_notify.php 接口处…

Android本地Gradle Plugin的创建以及使用

有些Gradle插件&#xff0c;不想放到云端&#xff0c;本来也只是小功能而已&#xff0c;还放到云端&#xff0c;每次修改和发布都很麻烦&#xff0c;这种需求的插件放到本地还是合适的。 1.直接放到build.gradle 2.新建一个module 取名叫buildSrc(注意&#xff0c;一定要叫这个…

ATA-2088高压放大器在细胞分选中的作用是什么

细胞分选是生物医学研究中至关重要的一步&#xff0c;它允许科学家们从混合细胞群中分离出特定类型的细胞&#xff0c;以进行进一步的研究。高压放大器在细胞分选中发挥着关键作用&#xff0c;其主要任务是处理和放大细胞产生的电信号&#xff0c;使得这些信号能够被准确地检测…

全国产的香橙派 AIpro AI开发硬件,对标nvidia jetson硬件。太香了

1. 导语 国产化AI芯片的发展不仅反映了中国在信息技术产业的战略布局&#xff0c;更是对全球科技竞争格局的积极回应。随着人工智能与大数据技术的飞速进步&#xff0c;国内对高性能计算的需求日益增长&#xff0c;促使科研机构与高新技术企业加大对AI芯片研发的投入&#xff0…

vscode编辑器警告, jsconfig.json 第一行红色波浪线

问题 配置文件jsconfig.json 第一行总是有个&#xff0c;红色下划线 项目是可以正常运行的&#xff0c;就是编辑器有个红色提示看着不顺眼。 开启检查 解决红色波浪线问题

算法体系-20 第二十节暴力递归到动态规划

前言 动态规划模型从尝试暴力递归到傻缓存到动态规划 四种模型和体系班两种模型一共六种模型 0.1 从左往右模型 0.2 范围讨论模型范围尝试模型 &#xff08;这种模型特别在乎讨论开头如何如何 结尾如何如何&#xff09; 玩家博弈问题&#xff0c;玩家玩纸牌只能那左或者右 0.3 …

MapperStruct拷贝数据的介绍和使用

1、前言 在java 编程中&#xff0c;对象直接拷贝是很常用的方法&#xff0c;最初我们常用spring提供的拷贝工具BeanUtils的copyProperties方法完成对象之间属性的拷贝。但是它有几个明显的如下缺点 1、属性类型不一致导致摸一个属性值拷贝失败 2、通一个字段使用基本类型和包…