当前位置: 首页 > article >正文

Linux安装EFK日志分析系统

目标:能够实现采集指定路径日志到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-elasticsearchcat > /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 tailpath /data/logs/TALogs/xjp_official/log.*_0  # 匹配 log.YYYY-MM-DD_0 格式的文件pos_file /var/log/td-agent/xjp_official.postag xjp_officialformat json #json格式time_key    #根据日志中的time进行解析time_format %Y-%m-%d %H:%M:%S.%L# 按 mtime(修改时间)排序,false优先读取最新文件,true旧数据也读取#read_from_head falseread_from_head true
</source># 输出到Elasticsearch
<match **>@type elasticsearchhost 192.168.1.111  # es-kibana节点IPport 9200user elasticpassword "To0wR2hSaPLsKFBbOyHl"logstash_format truelogstash_prefix fluentdinclude_tag_key truetag_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: a1dns: [a1]ip: [192.168.1.111]- name: a2dns: [a2]ip: [192.168.1.112]- name: a3dns: [a3]ip: [192.168.1.113]- name: a4dns: [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

相关文章:

Linux安装EFK日志分析系统

目标&#xff1a;能够实现采集指定路径日志到es&#xff0c;用kibana实现日志分析 单es节点集群规划&#xff1a; 主机名IP 地址组件a1192.168.1.111Kibana elasticsearcha2192.168.1.112Fluentda3192.168.1.103Fluentd 1、安装Elasticsearch 1.1添加 Elastic 仓库并安装 E…...

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个…...

@Pushgateway 数据自动清理

文章目录 Pushgateway 数据自动清理一、Pushgateway 数据清理的必要性二、自动清理方案方案1&#xff1a;使用带TTL功能的Pushgateway分支版本方案2&#xff1a;使用Shell脚本定期清理方案3&#xff1a;结合Prometheus记录规则自动清理 三、最佳实践建议四、验证与维护五、示例…...

粽叶飘香时 山水有相逢

粽叶飘香时 山水有相逢 尊敬的广大客户们&#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;…...

Obsidian 社区插件下载修复

Obsidian 社区插件下载修复 因为某些原因&#xff0c;在国内经常无法下载 Obsidian 的社区插件。这个项目的主要目的就是修复这种情况&#xff0c;让国内的用户也可以无障碍的下载社区插件。 上手指南 下载 obsidian-proxy-github.zip解压 obsidian-proxy-github.zip将解压的…...

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/…...

Ansible模块——Ansible的安装!

Ansible 安装 Ansible 有三种安装方式&#xff0c;源码安装、发行版安装和 Python 安装。 使用发行版安装或 Python 安装两种方式时&#xff0c;Ansible 的安装包有两个&#xff0c;区别如下&#xff1a; • ansible-core&#xff1a;一种极简语言和运行时包&#xff0c;包含…...

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

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

​扣子Coze飞书多维表插件-查询数据

search_record - 查询数据 请求参数 apptoken - 多维表的唯一标识服 可选参数&#xff1a; automatic_fields - 控制是否返回自动计算的字段, true 表示返回。 field_names - 字段名称&#xff0c;用于指定本次查询返回记录中包含的字段。 示例值&#xff1a;["字段1&…...

计算机模拟生物/化学反应有哪些软件?

以下是用于计算机模拟生物/化学反应的软件分类总结&#xff0c;涵盖量子化学、分子动力学、化学信息学及新兴混合方法等方向&#xff0c;结合其核心功能和应用场景进行整理&#xff1a; ⚛️ 一、量子化学计算软件 ChemiQ&#xff08;本源量子&#xff09; 类型&#xff1a;量子…...

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

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

MySQL数据归档利器:pt-archiver原理剖析与实战指南

MySQL数据归档利器:pt-archiver原理剖析与实战指南 在MySQL数据库管理中,数据归档是一个永恒的话题——随着业务数据的不断增长,如何高效、安全地将历史数据从生产表迁移到归档表或文件,同时不影响在线业务,是每个DBA和开发者都需要面对的挑战。Percona Toolkit中的pt-ar…...

【论文阅读】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;…...

Catch That Cow POJ - 3278

农夫约翰得知了一头逃亡奶牛的位置&#xff0c;想要立即抓住她。他起始于数轴上的点N&#xff08;0 ≤ N ≤ 100,000&#xff09;&#xff0c;而奶牛位于同一条数轴上的点K&#xff08;0 ≤ K ≤ 100,000&#xff09;。农夫约翰有两种移动方式&#xff1a;步行和传送。 * 步行…...

【计算机网络】传输层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 文件…...

算法打卡第11天

36.有效的括号 &#xff08;力扣20题&#xff09; 示例 1&#xff1a; **输入&#xff1a;**s “()” **输出&#xff1a;**true 示例 2&#xff1a; **输入&#xff1a;**s “()[]{}” **输出&#xff1a;**true 示例 3&#xff1a; **输入&#xff1a;**s “(]”…...

【决策分析】基于Excel的多变量敏感性分析解决方案

在Excel中实现多变量敏感性分析&#xff08;3个及以上变量&#xff09;需要结合更灵活的工具和方法&#xff0c;因为Excel内置的数据表功能仅支持最多双变量分析。以下是针对多变量场景的解决方案&#xff0c;按复杂度和实用性排序&#xff1a; 方法1&#xff1a;场景管理器 摘…...

php:5.6-apache Docker镜像中安装 gd mysqli 库 【亲测可用】

Dockerfile 代码如下&#xff1a; FROM php:5.6-apache# 使用Debian归档源 RUN echo "deb http://archive.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list && \echo "deb http://archive.debian.org/debian-security s…...

小程序跳转H5或者其他小程序

1. h5跳转小程序有两种情况 &#xff08;1&#xff09;从普通浏览器打开的h5页面跳转小程序使用wx-open-launch-weapp可以实现h5跳转小程序 <wx-open-launch-weappstyle"display:block;"v-elseid"launch-btn":username"wechatYsAppid":path…...

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

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