目录

软件说明:

架构拓扑

集群模式:

单机模式

环境准备

部署:

kibana      

es

logstash

filebeat

es

        检查能否启动

 logstash

        命令设置

es

        修改es配置文件

 启用es

kibana

        修改kibana配置文件(方便查看索引)

启用kibana

 查看是否已启用

es

        查看es是否已启用

logstash

        修改logstash配置文件

        使用filter过滤器

收集不同主机及对应应用的不同日志

filebeat

        修改配置文件

          启用 filebeat

注意:必须要有日志才会产生索引

logstash

        启动logstash服务

 进入网页


软件说明:

所有软件包下载地址:Past Releases of Elastic Stack Software | Elastic

打开页面后选择对应的组件及版本即可!

所有软件包名称如下:

架构拓扑

 

集群模式:

单机模式

环境准备

        关闭防火墙

#systemctl disable --now firewalld

        关闭安全上下文

# sed -i 's/SELIUNX=enforcing/SELINUX=disable/' /etc/selinux/config
# setenforce 0

        网络对时 ( 查看时间戳,如果时间不准确那就每台主机对时)

#vim /etc/chrony.conf
server ntp.aliyun.com iburst    #添加这一行#timedatectl set-timezone Asia/Shanghai#systemctl restart chronyd.service 

        查看java是否已安装

        可使用yum安装

        kibana   logstash   elasticsearch (也装上Java  ,filebeat可不用安装)

        注意:logstash 和 elasticsearch 必须装 java

#java -ser java    # Centos7 默认安装的是 java8#yum install java  

部署:

kibana      

        主机IP:192.168.158.139

[root@kibana ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.158.139 kibana
192.168.158.140 es
192.168.158.141 logstash
[root@kibana ~]# ls
anaconda-ks.cfg  ceph-release-1-1.el7.noarch.rpm  kibana-7.1.1-x86_64.rpm
[root@kibana ~]# rpm -ivh kibana-7.1.1-x86_64.rpm 

es

        主机:192.168.158.140

yum install java
[root@es ~]# ls
anaconda-ks.cfg  ceph-release-1-1.el7.noarch.rpm  elasticsearch-7.1.1-x86_64.rpm
[root@es ~]# rpm -ivh elasticsearch-7.1.1-x86_64.rpm 

logstash

        主机:192.168.158.141

yum install java
[root@logstash ~]# ls
anaconda-ks.cfg  ceph-release-1-1.el7.noarch.rpm  logstash-7.1.1.rpm
[root@logstash ~]# rpm -ivh logstash-7.1.1.rpm 

filebeat

        主机:192.168.158.142

[root@web1 ~]# ls
apache-tomcat-8.5.40.tar.gz  filebeat-7.1.1-x86_64.rpm
[root@web1 ~]# rpm -ivh filebeat-7.1.1-x86_64.rpm 

es

        检查能否启动
#systemctl start elasticsearch.service#查看是否正常启动
#systemctl status elasticsearch.service查看已启动
#systemctl stop elasticsearch.service先停掉,因为还没修改配置文件

 logstash

        命令设置
[root@logstash ~]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
并测试命令是否正常使用

es

        修改es配置文件
[root@es ~]# vim /etc/elasticsearch/elasticsearch.yml#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: my-application   #集群名称             
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: es    #节点主机名(这里需要修改)
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch    #数据存放目录
#
# Path to log files:
#
path.logs: /var/log/elasticsearch    #日志存放目录
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 192.168.158.140    #本机esIP(这里需要修改)
#
# Set a custom port for HTTP:
#
http.port: 9200     #端口号
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.seed_hosts: ["host1", "host2"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
cluster.initial_master_nodes: ["es"]    #本机名es(这里需要修改)
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true

 启用es

systemctl start elasticsearch.service

kibana

        修改kibana配置文件(方便查看索引)
[root@kibana ~]# vim /etc/kibana/kibana.ymlserver.prot: 5061    #打开端口
server.host: "192.168.158.139"    #打开主机
server.name: "kibana"    #本机主机名
elasticsearch.hosts: ["http://192.168.158.140:9200"]    #es主机的端口号和IP
i18n.locale: "zh-CN"    #这个可设置将网页翻译成中文
启用kibana
systemctl start kibana.service
 查看是否已启用
[root@kibana ~]# ps aux | grep node
kibana     1405  0.3  5.7 1336880 232648 ?      Ssl  10:44   2:15 /usr/share/kibana/bin/../node/bin/node --no-warnings --max-http-header-size=65536 /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml
root       3517  0.0  0.0 112824   988 pts/0    S+   21:35   0:00 grep --color=auto node

es

        查看es是否已启用
[root@es ~]# ps aux | grep java
elastic+   1414  0.7 38.2 4941372 1538396 ?     Ssl  10:45   5:11 /usr/share/elasticsearch/jdk/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch-2879596055492145001 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:ErrorFile=/var/log/elasticsearch/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Djava.locale.providers=COMPAT -Dio.netty.allocator.type=unpooled -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/etc/elasticsearch -Des.distribution.flavor=default -Des.distribution.type=rpm -Des.bundled_jdk=true -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /var/run/elasticsearch/elasticsearch.pid --quiet
root       3805  0.0  0.0 112828   984 pts/0    S+   21:36   0:00 grep --color=auto java

logstash

        修改logstash配置文件
[root@logstash ~]# cd /etc//logstash/conf.d/
[root@logstash conf.d]# vim pipline.conf
        使用filter过滤器
input {file {path => "/var/log/messages"start_position => "beginning"}beats {port => 5044}
}
filter {if [host][name] {mutate { add_field => { "hostname" => "%{[host][name]}" } }}else if [agent][hostname] {mutate { add_field => { "hostname" => "%{[agent][hostname]}" } }}else {mutate { add_field => { "hostname" => "%{host}" } }}
}
output {if [hostname] == "logstash" {elasticsearch {hosts => ["192.168.158.79:9200"]index => "system-log-%{+YYYY.MM.dd}"}}else if [hostname] == "web1" {elasticsearch {hosts => ["192.168.158.79:9200"]index => "web1-log-%{+YYYY.MM.dd}"}}stdout {codec => rubydebug}
}
收集不同主机及对应应用的不同日志
input {file {path => "/var/log/messages"start_position => "beginning"}beats {port => 5044}
}
filter {if [host][name] {mutate { add_field => { "hostname" => "%{[host][name]}" } }}else if [agent][hostname] {mutate { add_field => { "hostname" => "%{[agent][hostname]}" } }}else {mutate { add_field => { "hostname" => "%{host}" } }}
}
output {if [hostname] == "logstash" {elasticsearch {hosts => ["192.168.158.79:9200"]index => "system-log-%{+YYYY.MM.dd}"}}else if [hostname] == "web1" {if "system" in [tags] {elasticsearch {hosts => ["192.168.158.79:9200"]index => "web1-log-%{+YYYY.MM.dd}"}}if "nginx-access" in [tags] {elasticsearch {hosts => ["192.168.158.79:9200"]index => "web1-nginx-access-log-%{+YYYY.MM.dd}"}}if "nginx-error" in [tags] {elasticsearch {hosts => ["192.168.158.79:9200"]index => "web1-nginx-error-log-%{+YYYY.MM.dd}"}}}stdout {codec => rubydebug}
}

filebeat

        修改配置文件
[root@web1 ~]# cd /etc/filebeat/
[root@web1 filebeat]# vim filebeat.yml 
- type: logenabled: truepaths:- /var/log/messagestags: "system"- type: logenabled: truepaths:- /var/log/nginx/access.logtags: "nginx-access"
- type: logenabled: truepaths:- /var/log/nginx/error.logtags: "nginx-error"filebeat.inputs:    #输入源
- type: log    #文件类型enabled: true    #启用paths:    # 日志文件路径- /var/log/nginx/access.logtags: "nginx-access"    #标签源数据
          启用 filebeat
systemctl start filebeat.service
注意:必须要有日志才会产生索引

logstash

        启动logstash服务
[root@logstash ~]# logstash -f /etc/logstash/conf.d/pipline.conf

 进入网页

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GLM(General Language Model,通用语言模型)

🧠 一、GLM是什么?一句话概括 GLM(General Language Model,通用语言模型)是一个“大脑”,它通过阅读海量书籍、网页、对话记录学会了人类的语言规则,不仅能“听懂”你说的话,还能“…

【科研绘图系列】R语言绘制显著性标记的热图

文章目录 介绍 加载R包 数据下载 导入数据 数据预处理 画图 系统信息 参考 介绍 【科研绘图系列】R语言绘制显著性标记的热图 加载R包 library(ggplot2) library(patchwork)rm(list = ls()) options(stringsAsFactors = F)

若依部署项目到服务器

目录 一、环境配置 redis nginx(宿主机|dokcer) 1.宿主机 2.docker 二、打包jar包 0.查看后端配置 1.打包后端 2.打包前端 三、启动 1.后端 2.前端 四、以上部署常见命令/错误 一、环境配置 之前的课都配过,先看看自己配了没 看看…

零基础学习性能测试-linux服务器监控:CPU监控

目录学习内容与快速应用路径第一阶段:理解 CPU 核心概念 (0.5天)第二阶段:掌握核心监控命令与指标 (1-2天)第三阶段:识别 CPU 问题与瓶颈 (核心技能)第四阶段:整合到性能测试工作流程 (快速应用落地)快速应用到工作中的关键策略零…

智能Agent场景实战指南 Day 15:游戏NPC Agent互动设计

【智能Agent场景实战指南 Day 15】游戏NPC Agent互动设计 文章内容 开篇 欢迎来到"智能Agent场景实战指南"系列的第15天!今天我们将深入探讨游戏开发中一个极具挑战性和创新性的领域——游戏NPC Agent互动设计。在当今游戏产业中,玩家对游戏…

Vite的优缺点(精简版)

优点 作为一款前端构建工具,它的核心特点是“快”,并且充分利用了现代浏览器对ES Modules的原生支持,一切围绕这一点展开 快启动:通过ES Modules,它省去了打包整个应用的时间,可以直接在浏览器中加载模块&a…

【深度学习】神经网络-part2

一、数据加载器 数据集和加载器 1.1构建数据类 1.1.1 Dataset类 Dataset是一个抽象类,是所有自定义数据集应该继承的基类。它定义了数据集必须实现的方法。 必须实现的方法 __len__: 返回数据集的大小 __getitem__: 支持整数索引,返回对应的样本 …

nextjs+react项目如何代理本地请求解决跨域

在 Next.js React 项目中解决本地开发跨域问题,可以通过以下几种方式实现代理请求:方案1:使用 Next.js 内置的 Rewrites 功能(推荐) 1. 修改 next.config.js /** type {import(next).NextConfig} */ const nextConfig…

Ubuntu查看Docker容器

在Ubuntu系统中,可以通过以下命令查看当前正在运行的Docker容器:1. 查看所有正在运行的容器 docker ps输出示例: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 nginx:latest &…

智能点餐推荐网站,解决选择困难

软件介绍 今天为大家推荐一款解决"今天吃什么"选择困难症的趣味网站,它能为你推荐美味餐食,轻松化解每日用餐烦恼。 核心功能 这款网站最大的亮点就是能够根据你的需求智能推荐餐食选择,只需打开网页,就能立即获…

使用 C# 实现移动加权平均(Weighted Moving Average)算法

前言 欢迎关注dotnet研习社,前面我们讨论过"C#实现加权平均法",今天我们继续研究另外一种【移动加权平均法】。 在时间序列分析、股票数据处理、工业信号平滑等场景中,移动平均(Moving Average) 是最常见的平滑技术之一…

【Python】一些PEP提案(三):with 语句、yield from、虚拟环境

PEP 343 – The “with” Statement,with 语句 这玩意让我想起了Kotlin和Rust的问号标识符,都是将try-catch进行包装,避免出现太多重复代码(Go:我假设你不是在内涵我) 用法 最常见的用法就是对文件的操作&a…

SymAgent(神经符号自学习Agent)

来自:SymAgent: A Neural-Symbolic Self-Learning Agent Framework for Complex Reasoning over Knowledge Graphs 目录相关工作引理符号规则任务描述方法Agent-PlannerAgent-ExecutorAction空间交互过程自学习在线探索离线迭代策略更新相关工作 相关工作-语义解析…

Go语言实战案例-斐波那契数列生成器

在《Go语言100个实战案例》中的 案例10:斐波那契数列生成器,帮助初学者理解递归与迭代的应用。 案例10:斐波那契数列生成器 🔢 数学与算法 | 🧠 递归与迭代 | 👶 初学者友好 一、📘 案例目标 实现一个斐波那契数列生成器,用户输入一个数字 n,程序生成并打印出斐…

认知闭环的暴政:论人类对AI协同创造的傲慢抵制与维度囚禁

认知闭环的暴政:论人类对AI协同创造的傲慢抵制与维度囚禁---### **核心批判框架**mermaidgraph TDA[人类认知三原罪] --> B[三维牢笼]B --> C[恐惧机制]C --> D[抵制行为]D --> E[文明熵增]F[四维流形批判] --> G[解构牢笼]G --> H[曲率解放]H --…

飞凌嵌入式亮相第九届瑞芯微开发者大会:AIoT模型创新重做产品

2025年7月17日,第九届瑞芯微开发者大会(RKDC!2025)在福州海峡国际会展中心正式拉开帷幕。这场以“AIoT模型创新重做产品”为主题的行业盛会,吸引了众多行业领袖、技术专家及生态伙伴齐聚一堂,共同探讨新质生产力产品的…

Excel转PDF的三种方法

工作后,Excel和PDF对于我们来说一点都不陌生,那么如何将Excel转为PDF呢? 方法一、iLoveOFD在线转换工具 当你在地铁或者床上时,不方便,又不想打开电脑,可尝试使用在线转换工具,进行转换。 工…

前端基础——B/S工作原理、服务器与前端三大件

本文原本是web安全基础的一部分,作为安全的前置知识学习,但随着学习进程的不断深入,原有的前端的体系需要进一步扩充,已经到了可以独立成章的地步,故将其拿出来单独学习。 B/S工作原理 也就是浏览器与服务器的交互原…

Java并发编程性能优化实践指南:锁分离与无锁设计

Java并发编程性能优化实践指南:锁分离与无锁设计 并发场景下的性能瓶颈往往集中在锁竞争与上下文切换上。本文从锁分离(Lock Striping)与无锁设计(Lock-Free)两大思路出发,深入分析关键原理与源码实现&…

SpringSecurity-spring security单点登录

在 Spring Boot 中实现 单点登录(SSO, Single Sign-On),通常使用 OAuth2 或 OIDC(OpenID Connect) 协议来完成。Spring Security 提供了对 OAuth2 和 OIDC 的完整支持,可以轻松集成如 Google、GitHub、Okta…