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

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

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

本文章包含四个模块:准备、搭建过程、使用kibana、kibana 添加登录


一、准备

安装包

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

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.youkuaiyun.com/a34569345/article/details/132768352?spm=1001.2014.3001.5501

在浏览器打开http://192.16

### ELK 堆栈的日志管理和分析 #### 工作原理概述 ELK 是由 ElasticsearchLogstashKibana 组成的一个开源工具链,用于日志管理与分析。其基本工作流如下: - **Logstash** 负责从各种来源收集日志数据,并对其进行过滤和格式化后发送至 Elasticsearch[^1]。 - **Elasticsearch** 提供强大的搜索引擎功能,负责对接收到的数据进行索引和存储。 - **Kibana** 则作为前端界面,允许用户通过图形化的方式查询、分析以及可视化这些数据[^3]。 #### 安装与配置步骤说明 ##### 1. 安装 Elasticsearch Elasticsearch 是整个系统的基石,它提供了分布式搜索和数据分析的能力。安装过程中需要注意版本兼容性问题。下载地址可以通过官方链接获取[^2]。完成安装后需调整 `elasticsearch.yml` 文件中的集群名称、节点名称以及其他必要的网络设置参数以适应实际环境需求。 ##### 2. 部署 Logstash Logstash 主要承担着数据输入端的角色,可以从文件系统、数据库或其他服务中提取原始记录再经过一系列插件处理之后传送给下游组件即 Elasticsearch 实例群组里去。具体操作包括解压软件包到目标目录下然后编辑对应的 configuration file 来定义 pipeline 的行为模式比如 source type filter output destination等等。 ##### 3. 设置 Kibana 最后一步就是启动 Kibana 应用来连接已有的 ES 数据库实例从而实现交互式的探索体验。同样地也需要修改默认路径下的 kibana.config.json 或者其他形式的初始化脚本来指定正确的 backend URL 地址确保两者之间能够正常通信握手成功建立联系。 以下是简单的 Python 示例来演示如何向运行中的 logstash 发送消息: ```python import logging import socket def send_log_to_logstash(message): host = 'localhost' # 替换为您的logstash主机名/IP port = 5000 # 替换为您所使用的TCP端口号 try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) sock.sendall(bytes(message + '\n', 'utf-8')) sock.close() except Exception as e: logger.error(f"Failed to send message {message} due to error: {e}") if __name__ == "__main__": test_message = "This is a test log entry" send_log_to_logstash(test_message) ``` 此代码片段展示了怎样利用标准库里的套接字模块构建起基础版客户端程序以便于测试目的验证我们的pipeline是否按预期那样运作良好。 #### 总结 综上所述,通过合理规划各部分之间的协作关系再加上细致入微得当的各项设定就可以顺利达成基于ELK框架之上高效稳定可靠的解决方案来满足企业级应用场合当中对于海量结构化半结构性乃至完全非结构化的各类事件追踪审计等方面提出的苛刻要求了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值