Linux安装EFK日志分析系统

news2025/6/4 2:13:09

目标:能够实现采集指定路径日志到es,用kibana实现日志分析

在这里插入图片描述
在这里插入图片描述
单es节点集群规划:

主机名IP 地址组件
a1192.168.1.111Kibana + elasticsearch
a2192.168.1.112Fluentd
a3192.168.1.103Fluentd

1、安装Elasticsearch

1.1添加 Elastic 仓库并安装 Elasticsearch

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat > /etc/yum.repos.d/elastic.repo <<EOF
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
#安装elasticsearch
yum install -y elasticsearch

1.2用户配置

ES不能使用root用户来启动,必须使用普通用户来安装启动。我们必须创建一个es专门的用户

#新建es用户并设置密码
useradd es
passwd es
#将es用户加入elasticsearch组
usermod -G elasticsearch es
#es用户设置为可用sudo等命令
vim /etc/sudoers 末尾添加
#es ALL=(ALL) NOPASSWD: ALL
es ALL=(ALL) ALL
#保存退出后出来生效
source /etc/sudoers

#解决问题1:es用户执行以下命令解除打开文件数据的限制:

vim /etc/security/limits.conf末尾添加
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

问题错误信息描述:
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

#解决问题2:修改es用户可以创建的最大线程数

vim /etc/security/limits.d/20-nproc.conf
* soft nproc 1024
 #修改为
* soft nproc 4096

问题错误信息描述:
max number of threads [1024] for user [es] likely too low, increase to at least [4096]

#解决问题3:es用户调大虚拟内存

vim /etc/sysctl.conf末尾添加
vm.max_map_count=262144

错误信息描述:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

**

1.3 配置Elasticsearch(/etc/elasticsearch/elasticsearch.yml)

cat > /etc/elasticsearch/elasticsearch.yml <<EOF
#集群名称, 处于同一个集群所有节点,该名称必须相同
cluster.name: efk-cluster
# 节点名称. 两台机器名字必须都不一样
node.name: a1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
# 网络绑定,这里我绑定 0.0.0.0,支持外网访问
network.host: 0.0.0.0
# 设置对外服务的http端口,默认为9200
http.port: 9200
#single-node单节点集群
discovery.type: single-node
xpack.security.enabled: true
# 支持跨域访问
http.cors.enabled: true 
http.cors.allow-origin: "*"
EOF
#编辑/etc/elasticsearch/jvm.options将注释内容修改
vim /etc/elasticsearch/jvm.options
-Xms2g
-Xmx2g

1.4启动Elasticsearch

#切换es用户
su es
#启动
systemctl start elasticsearch
#开机自启
systemctl enable elasticsearch

如果报错
#查看es日志(efk-cluster是配置文件定义的集群名)
cat /var/log/elasticsearch/efk-cluster.log | tail -n 50
如果出现org.elasticsearch.ElasticsearchSecurityException: invalid configuration for xpack.security.transport.ssl - [xpack.security.transport.ssl.enabled] is not set, but the following settings have been configured in elasticsearch.yml : [xpack.security.transport.ssl.keystore.secure_password,xpack.security.transport.ssl.truststore.secure_password]
就是xpack.security.transport.ssl 的配置无效 - [xpack.security.transport.ssl.enabled] 未设置,但已在 elasticsearch.yml 中配置了以下设置

解决方法:之前安装了缓存设置的 ElasticSearch,尝试使用以下命令重置安全设置
rm /etc/elasticsearch/elasticsearch.keystore
/usr/share/elasticsearch/bin/elasticsearch-keystore create

1.5查看密码(记录用户密码)

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

会得到如下用户和密码,保存记录

用户名密码
elasticTo0wR2hSaPLsKFBbOyHl
kibana_systemNueXLxMBkbZFkL7stbP9
kibanaNueXLxMBkbZFkL7stbP9
apm_systemAfcXVRt1b9hdDflfNSbP
logstash_systemY9TaPbMxXB2BTpqWbIOB
beats_systemhgMyPYqsxvKgAqghOEMm
remote_monitoring_users65gIUsT97jdisnfcS2E
#如果不是第一次启动,重置密码
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic --batch

2、 安装Kibana

yum install -y kibana

2.1配置Kibana(/etc/kibana/kibana.yml)

#下面的用户密码都拿上面记录的
cat > /etc/kibana/kibana.yml <<EOF
server.host: "0.0.0.0"
server.port: 5601
elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "NueXLxMBkbZFkL7stbP9"
EOF

2.2启动Kibana

#启动
systemctl start kibana
#开机自启
systemctl enable kibana

在a1 和 a2 安装 Fluentd

3、安装td-agent(Fluentd官方发行版)

curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh | sh
yum install -y td-agent

3.1配置Fluentd(/etc/td-agent/td-agent.conf)

cat > /etc/td-agent/td-agent.conf <<EOF
# 收集系统日志
#<source>
#  @type tail
#  path /var/log/messages
#  pos_file /var/log/td-agent/messages.pos
#  tag system.messages
#  format syslog
#</source>

# 采集 /data/logs/TALogs/xjp_official 目录下的日志
<source>
  @type tail
  path /data/logs/TALogs/xjp_official/log.*_0  # 匹配 log.YYYY-MM-DD_0 格式的文件
  pos_file /var/log/td-agent/xjp_official.pos
  tag xjp_official
  format json #json格式
  time_key    #根据日志中的time进行解析
  time_format %Y-%m-%d %H:%M:%S.%L
  # 按 mtime(修改时间)排序,false优先读取最新文件,true旧数据也读取
  #read_from_head false
  read_from_head true
</source>

# 输出到Elasticsearch
<match **>
  @type elasticsearch
  host 192.168.1.111  # es-kibana节点IP
  port 9200
  user elastic
  password "To0wR2hSaPLsKFBbOyHl"
  logstash_format true
  logstash_prefix fluentd
  include_tag_key true
  tag_key @log_name
</match>
EOF
#保证采集路径td-agent有权限访问,下列的都是方法,可采用
#添加其他用户可访问/var/log/messages
chmod o+r /var/log/messages
#td-agent用户添加到master组
usermod -G master td-agent
#将/data/logs/TALogs/xjp_official/赋权给td-agent和组
chown -R td-agent:td-agent /data/logs/TALogs/xjp_official/

3.2启动Fluentd

#启动
systemctl start td-agent
#开机自启
systemctl enable td-agent

#查看Fluentd日志验证是否传输成功
tail -n 20 /var/log/td-agent/td-agent.log

4、访问 Kibana
打开浏览器访问 http://192.168.1.11:5601,使用 elastic 用户和密码登录。并访问dev tools
在这里插入图片描述
检索#account_id为250000001311的日志文件
在这里插入图片描述

操作备忘

1、(删除现有数据重新传输到es)无需操作!!

#es查看已有的日志
curl -u elastic:"To0wR2hSaPLsKFBbOyHl" -X GET "http://192.168.1.111:9200/_cat/indices/fluentd-*?v"
#es删除已有日志
curl -u elastic:"To0wR2hSaPLsKFBbOyHl" -X DELETE "http://192.168.1.111:9200/fluentd-2025.05.27"
# Fluentd删除 pos 文件
rm -f /var/log/td-agent/xjp_official.pos
#重启Fluentd
systemctl restart td-agent

2、查看日志

#查看es日志
cat /var/log/elasticsearch/efk-cluster.log | tail -n 50
#查看Fluentd日志
tail -n 30 /var/log/td-agent/td-agent.log

kibana查询语句

#单条件查询语句
GET fluentd*/_search
{
  "query": {
    "term": {
      "#account_id": "250000001311"
    }
  },
  "size": 100
}
#多条件查询语句
GET fluentd-*/_search
{
  "query": {
    "bool": {
      "must": [
        { "term": { "properties.num": 20 }},
        { "term": { "properties.num_before": 37 }},
        { "term": { "properties.num_after": 57 }},
        { "term": { "properties.item_id.keyword": "SkinSuperBoxKey" }},
        { "match": { "#account_id": "250000001311" }}
      ]
    }
  }
}

配置多elasticsearch节点,例如配置三台elasticsearch服务器(如需)

1、多es节点操作(各节点都需)

vim /etc/hosts末尾添加主机配置相互通信
192.168.1.111 a1
192.168.1.112 a2
192.168.1.113 a3

2、es配置文件修改(各节点都需,并修改node.name即可,discovery.seed_hosts和cluster.initial_master_nodes根据实际情况修改)

cat > /etc/elasticsearch/elasticsearch.yml <<EOF
#集群名称, 处于同一个集群所有节点,该名称必须相同
cluster.name: efk-cluster
# 节点名称. 两台机器名字必须都不一样
node.name: a1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
# 网络绑定,这里我绑定 0.0.0.0,支持外网访问
network.host: 0.0.0.0
# 设置对外服务的http端口,默认为9200
http.port: 9200
#TCP9300配置节点间相互通信
transport.port: 9300
# 集群发现
discovery.seed_hosts: ["192.168.1.111","192.168.1.112","192.168.1.113"]
cluster.initial_master_nodes: ["a1","a2","a3"]
# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
EOF

多节点集群证书部署(如需)

1、生成ca证书

/usr/share/elasticsearch/bin/elasticsearch-certutil ca --out elastic-stack-ca.p12 --pass "root"

2、随便一个目录/test/编写一个node.yaml文件

vim /test/node.yaml
instances:
  - name: a1
    dns: [a1]
    ip: [192.168.1.111]
  - name: a2
    dns: [a2]
    ip: [192.168.1.112]
  - name: a3
    dns: [a3]
    ip: [192.168.1.113]
  - name: a4
    dns: [a4]
    ip: [192.168.1.114]

3、使用ca签发多节点证书

/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 --ca-pass "root" --in /test/node.yaml --multiple --out certs.zip --pass "root"

4、解压复制到各个节点

#某个节点操作即可,我这里是a1服务器
unzip certs.zip -d /usr/share/elasticsearch/
cp /usr/share/elasticsearch/a1/a1.p12 -d /etc/elasticsearch/certs/
scp /usr/share/elasticsearch/a2/a2.p12 root@192.168.1.112:/etc/elasticsearch/certs/
scp /usr/share/elasticsearch/a3/a3.p12 root@192.168.1.113:/etc/elasticsearch/certs/
#文件给用户elasticsearch权限(每个节点都要)
chown -R elasticsearch:elasticsearch /etc/elasticsearch/certs/

5、配置文件修改

vim /etc/elasticsearch/elasticsearch.yml末尾添加
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/certs/a1.p12
xpack.security.transport.ssl.keystore.password: root
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/certs/a2.p12
xpack.security.transport.ssl.truststore.password: root

6、重启测试

su es
systemctl restart elasticsearch
浏览器访问:192.168.1.111:9200

7、后续扩容新es节点,只需要将yaml文件中的旧节点去掉,然后添加新的节点去生成证书即可

8、查看证书有效期(根据实际情况修改一下自己的/usr/share/elasticsearch/a1/a1.p12)

openssl pkcs12 -in /usr/share/elasticsearch/a1/a1.p12 -clcerts -nokeys -passin pass:"root" | openssl x509 -noout -dates
#得到结果生效时间:2025 年 5 月 28 日 07:28:46 GMT 过期时间:2028 年 5 月 27 日 07:28:46 GMT
MAC verified OK
notBefore=May 28 07:28:46 2025 GMT
notAfter=May 27 07:28:46 2028 GMT

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

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

相关文章

Linux(9)——进程(控制篇——下)

目录 三、进程等待 1&#xff09;进程等待的必要性 2&#xff09;获取子进程的status 3&#xff09;进程的等待方法 wait方法 waitpid方法 多进程创建以及等待的代码模型 非阻塞的轮训检测 四、进程程序替换 1&#xff09;替换原理 2&#xff09;替换函数 3&…

E. Melody 【CF1026 (Div. 2)】 (求欧拉路径之Hierholzer算法)

E. Melody 思路 将所有出现过的音量和音高看作一个点&#xff0c;一个声音看作一条边&#xff0c;连接起来。那么很容易知道要找的就是图上的一条欧拉路径&#xff08;类似一笔画问题&#xff09; 又已知存在欧拉路径的充要条件为&#xff1a;度数为奇数的点的个数为0或者2个…

粽叶飘香时 山水有相逢

粽叶飘香时 山水有相逢 尊敬的广大客户们&#xff1a; 五月初五&#xff0c;艾叶幽香。值此端午佳节&#xff0c;衡益科技全体同仁向您致以最诚挚的祝福&#xff01; 这一年我们如同协同竞渡的龙舟&#xff0c;在数字化转型的浪潮中默契配合。每一次技术对接、每轮方案优化&a…

YC-8002型综合变配电监控自动化系统

一 .系统概述 YC-8002型综合变配电监控自动化系统是西安亚川电力科技有限公司为适应广大客户要求&#xff0c;总结多项低 压配电网络自动化工程实例的经验&#xff0c;基于先进的电子技术、计算机和网络通讯等技术自主研发的--套结合本公司网络配电产品的应用于低压配电领域的…

react diff 算法

diff 算法作为 Virtual DOM 的加速器&#xff0c;其算法的改进优化是 React 整个界面渲染的基础和性能的保障&#xff0c;同时也是 React 源码中最神秘的&#xff0c;最不可思议的部分 diff 算法会帮助我们就算出 VirtualDOM 中真正变化的部分&#xff0c;并只针对该部分进行原…

近期手上的一个基于Function Grap(类AWS的Lambda)小项目的改造引发的思考

函数式Function是云计算里最近几年流行起来的新的架构和模式&#xff0c;因为它不依赖云主机&#xff0c;非常轻量&#xff0c;按需使用&#xff0c;甚至是免费使用&#xff0c;特别适合哪种数据同步&#xff0c;数据转发&#xff0c;本身不需要保存数据的业务场景&#xff0c;…

VSCode的下载与安装(2025亲测有效)

目录 0 前言1 下载2 安装3 后记 0 前言 丫的&#xff0c;谁懂啊&#xff0c;尝试了各种办法不行的话&#xff0c;我就不得不拿出我的最后绝招了&#xff0c;卸载&#xff0c;重新安装&#xff0c;我经常要重新安装&#xff0c;所以自己写了一个博客&#xff0c;给自己&#xf…

千库/六图素材下载工具

—————【下 载 地 址】——————— 【​本章下载一】&#xff1a;https://pan.xunlei.com/s/VORW9TbxC9Lmz8gCynFrgdBzA1?pwdxiut# 【​本章下载二】&#xff1a;https://pan.quark.cn/s/829e2a4085d3 【百款黑科技】&#xff1a;https://ucnygalh6wle.feishu.cn/wiki/…

差分S参数-信号与电源完整性分析

差分S参数: 由于差分互连中使用差分信号传递信息&#xff0c;接收器最关心的是差分信号的质量&#xff0c;如果互连通道的S参数能直接反映出对差分信号的影响&#xff0c;对分析问题将方便得多。差分互连通道可以看成是一个四端口网络&#xff0c;激励源为单端信号&#xff0c;…

PostIn V1.1.2版本发布,新增接口评审功能,提升接口质量与合理性

PostIn是一款国产开源免费的接口管理工具&#xff0c;包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块&#xff0c;支持常见的HTTP协议、websocket协议。本周PostIn V1.1.0版本发布&#xff0c;新增接口评审、接口统计功能。 1、版本更新日志 新增 ➢ 接口评审&a…

【论文阅读】User Diverse Preference Modeling by Multimodal Attentive Metric Learning

User Diverse Preference Modeling by Multimodal Attentive Metric Learning 题目翻译&#xff1a;基于多模态注意度量学习的用户不同偏好建模 摘要 提出一个**多模态注意力度量学习&#xff08;MAML, Multimodal Attentive Metric Learning&#xff09;**方法&#xff0c;…

【计算机网络】传输层TCP协议——协议段格式、三次握手四次挥手、超时重传、滑动窗口、流量控制、

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;计算机网络 &#x1f339;往期回顾&#x1f339;&#xff1a; 【计算机网络】传输层UDP协议 &#x1f516;流水不争&#xff0c;争的是滔滔不息 一、TCP协议 UDP&…

文件服务端加密—minio配置https

1.安装openssl 建议双击安装包默认安装&#xff0c;安装完成之后配置环境变量 如下图则配置成功&#xff1a; 二、生成自签名CA证书及私钥 1、生成私钥 openssl genrsa -out private.key 20482、生成自签名证书 &#xff08;1&#xff09;编写openssl.conf文件&#xff0c;…

界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现自定义遥测?

DevExpress XAF是一款强大的现代应用程序框架&#xff0c;允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计&#xff0c;开发人员可以选择内建模块&#xff0c;也可以自行创建&#xff0c;从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 .NET As…

多卡训练核心技术详解

多卡训练核心技术详解 多卡训练 主要围绕分布式环境初始化、模型并行化、数据分片和梯度同步展开。下面结合您的代码,详细解释这些核心部分: 并行执行命令 torchrun --nproc_per_node=5 TokenLossMulCard.py 1. 分布式环境初始化 def init_distributed():init_process_…

深度学习全面掌握指南

一、引言 深度学习是机器学习的一个分支&#xff0c;它通过构建多层神经网络来模拟人类大脑的信息处理方式&#xff0c;从而实现对复杂数据的自动特征提取和模式识别。近年来&#xff0c;深度学习在计算机视觉、自然语言处理、语音识别等领域取得了巨大的突破&#xff0c;引发…

magic-api配置Git插件教程

一、配置gitee.com 1&#xff0c;生成rsa密钥&#xff0c;在你的电脑右键使用管理员身份运行&#xff08;命令提示符&#xff09;&#xff0c;执行下面命令 ssh-keygen -t rsa -b 2048 -m PEM一直按回车键&#xff0c;不需要输入内容 找到 你电脑中的~/.ssh/id_rsa.pub 文件…

【AI赋能,视界升级】智微智能S134 AI OPS,重构智慧大屏未来

智慧教室中&#xff0c;教师通过电子白板&#xff0c;4K高清课件、3D教学模型同步呈现&#xff0c;后排学生也能看清画面细节&#xff0c;课堂变得趣味十足&#xff1b;智能会议室里&#xff0c;会议内容、多人云会议多屏投放依旧畅通清晰&#xff0c;会议纪要自动生成Word/PPT…

外网访问可视化工具 Grafana (Linux版本)

Grafana 是一款强大的可视化监控指标的展示工具&#xff0c;可以将不同的数据源数据以图形化的方式展示&#xff0c;不仅通用而且非常美观。它支持多种数据源&#xff0c;如 prometheus 等&#xff0c;也可以通过插件和 API 进行扩展以满足各种需求。 本文将详细介绍如何在本地…

Kafka性能调优三剑客:深度解析buffer_memory、linger_ms和batch_size

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 持续学习&#xff0c;不断…