前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5分钟快速搭建你的第一个 ELK 日志分析系统

5分钟快速搭建你的第一个 ELK 日志分析系统

作者头像
希里安
发布2023-10-30 18:44:40
3410
发布2023-10-30 18:44:40
举报
文章被收录于专栏:希里安希里安

截止昨天,我们研究监控模块,基本监控就是转外链或者内嵌三方成熟工具的页面,今天就来研究下日志这块。日志也有很多成熟的工具,自己暂时在日志这块还没有造轮子的能力,只会收集顶多使用脚本处理一下。

一般流程就是收集—处理—存储—展示—分析—垃圾桶,之前使用python处理过日志再到redis存储,再到elk进行分析。

接着说平台的开发:

传统模块,涉及监控、批量执行、日志、资产管理、网络、终端等功能。

批量执行这里涉及的工具有saltstack、ansible

监控会涉及工具prometheus、zabbix、grafana

日志涉及elk、loki

网络涉及lstio以及常用排障命令

终端涉及xterm

统模块这里的功能更多的是集成三方应用的一个超链接,这里的功能大框架肯定是没必要重复造轮子,直接用已经成熟的工具,除非是业务特殊要求,才会自己研发。

怎么比较合适的开发,是值得思考的,平台要像kubesphere一样,接入jenkins、elk等功能一样。

我这里就先把大致模样给开发出来,后面再一步一步的细化完善,自己在开发这个项目中更重要的点是自己知识体系的重新梳理和搭建。

前期只能借鉴他人的优秀案例,不断学习,相信后期一定会有自己的创新和见解!

传统模块我目前觉得开发量不是特别大,因为基本都是直接用别人的工具,就是怎么设计个页面跳转的问题。

主要功能就是监控和日志占比较大,顺道就把elk搭建的流程梳理一下:

官网地址:

代码语言:javascript
复制
https://www.elastic.co/

安装文档地址:

代码语言:javascript
复制
https://www.elastic.co/guide/en/elasticsearch/reference/8.7/targz.html
https://www.elastic.co/guide/en/logstash/current/installing-logstash.html

目前的主流稳定版本是8.7,可以使用docker安装,我们这里直接使用二进制包安装,安装 Elasticsearch 之前,你需要先安装一个较新的版本的 Java,最好jdk11+,Elasticsearch和Logstash需要Java运行环境。

1. 安装Elasticsearch:Elasticsearch是一个实时分布式搜索和分析引擎,用来存储日志数据。

代码语言:javascript
复制
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.7.1-linux-x86_64.tar.gz
tar -xzf
elasticsearch-8.7.1-linux-x86_64.tar.gz
cd elasticsearch-8.7.1/
./bin/elasticsearch # 启动Elasticsearch
代码语言:javascript
复制
[root@test bin]# ./elasticsearch
[2023-04-28T08:56:24,968][ERROR][o.e.b.Elasticsearch ] [test] fatal exception while booting
Elasticsearchjava.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.server@8.7.1/org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:262)
at
org.elasticsearch.server@8.7.1/org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:161)
at org.elasticsearch.server@8.7.1/org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:66)
See logs for more details.
ERROR: Elasticsearch did not exit normally
- check the logs at /root/rpm/elasticsearch-8.7.1/logs/my-es.log
ERROR: Elasticsearch exited unexpectedly

以root用户运行Elasticsearch时出现了问题。Elasticsearch 不支持以root用户运行,因为这样会产生安全隐患。

解决方法是切换到普通用户运行Elasticsearch。具体步骤如下:

1. 创建elasticsearch用户组和用户:

代码语言:javascript
复制
groupadd elasticsearch
useradd elasticsearch -g elasticsearch

2. 修改Elasticsearch目录的所有权限:

代码语言:javascript
复制
chown -R elasticsearch:elasticsearch /path/to/elasticsearch

3. 切换到elasticsearch用户:

代码语言:javascript
复制
su elasticsearch

4. 以elasticsearch用户启动Elasticsearch:

代码语言:javascript
复制
/path/to/elasticsearch/bin/elasticsearch

2. 安装Logstash:Logstash用来收集、解析和过滤日志,发送到Elasticsearch中。

代码语言:javascript
复制
wget wget https://artifacts.elastic.co/downloads/logstash/logstash-8.7.1-linux-x86_64.tar.gz
tar -xzf logstash-8.7.1-linux-x86_64.tar.gz
cd logstash-8.7.1/
./bin/logstash -f logstash.conf # 使用logstash.conf配置文件启动Logstash

3. 安装Kibana:Kibana是一个数据可视化平台,用来检索、分析和展示存储在Elasticsearch索引中的数据。

代码语言:javascript
复制
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.7.1-linux-x86_64.tar.gz
tar -xzf kibana-8.7.1-linux-x86_64.tar.gz
cd kibana-8.7.1-linux-x86_64/
./bin/kibana # 启动Kibana

4. 在Kibana中配置Elasticsearch、Logstash地址,然后就可以在Kibana的Web UI中使用了。

代码语言:javascript
复制
编辑elasticsearch/config/elasticsearch.yml文件:
network.host: 0.0.0.0 # 允许远程访问 
http.port: 9200 # Elasticsearch端口
cluster.name: my-es # 集群名称
编辑logstash/config/logstash.yml
http.host: "0.0.0.0" # 允许远程连接
编辑kibana/config/kibana.yml文件:
server.host: "0.0.0.0" # 允许远程访问 
elasticsearch.hosts:
["http://localhost:9200"] # ES地址

安装完成后访问kibana页面:

默认用户名:elastic

密码:在启动elaticsearch的时候在哪个界面有初始密码

在devtool中输入

代码语言:javascript
复制
GET _cluster/health

返回数据表示安装成功啦。

到这就算初步搭建完成了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 希里安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档