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

在Linux上面部署ELK

注明:一下的软件需要自己准备

一、准备环境:

1.两台elasticsearch主机4G内存

2.两台elasticsearch配置主机名node1和node2(可以省略)

#vim  /etc/hostname

#reboot

3. 两台elasticsearch配置hosts文件

#vim  /etc/hosts

192.168.1.1  node1

192.168.1.2  node2

4.检查java环境

#java  -version

5.关闭防火墙和selinux

6.利用ping测试,分别ping两个主机的名,看是否可以通

二、部署elasticsearch

以下前五步,在两个es上都要做,只是节点名不一样,es1位node1,es2为node2

1.安装elasticsearch(在两台主机上都要安装)

#rpm  -ivh  /mnt/elasticsearch-5.5.0.rpm

#systemctl  daemon-reload

#systemctl  enable elasticsearch

2.更改elasticsearch主配置文件(配置都有修改即可 )

#vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-application   //群集名字

node.name: node1  //节点名字

path.data: /data/elk_data  //数据存放路径

path.logs: /var/log/elasticsearch  //日志存放路径

bootstrap.memory_lock: false  //在启动时不锁定内存,可以提高性能

network.host: 0.0.0.0   //监听地址0.0.0.0代表所有

http.port: 9200       //监听端口

discovery.zen.ping.unicast.hosts: ["node1", "node2"]  //群集发现通过单播实现

3.创建数据存放路径并授权

#mkdir  -p  /data/elk_data 

#chown  elasticsearch:elasticsearch   /data/elk_data  将/data/elk_data目录的归属更改为elasticsearch

4.启动elasticsearch并查看是否启动成功(可能需要重启系统)

#systemctl  start  elasticsearch

# netstat -anpt|grep 9200

tcp6       0      0 :::9200         :::*       LISTEN      1018/java

5.在客户机上查看节点信息

Node1节点1的信息

Node2节点1的信息

查看群集是否健康

查看群集的状态

三、在es1上安装elasticsearch-head插件

注:es-head是es的web前端工具,可以更直观方便的管理es集群,在es5.0后需要做为独立服务进行安装,需要npm命令,安装es-head需要提前安装node和phantomjs,node是一个基于chrome v8引擎的javascript运行环境,而phantomjs是一个基于webkit的javascriptAPI,可以理解为一个隐形的浏览器

(1)安装node 大约需要40分钟时间

#tar zxf  /mnt/node-v8.2.1.tar.gz -C /usr/src   //解压的目录不能有中文路径

# cd  /usr/src/node-v8.2.1/

#./configure&&make&&make install

(2)安装phantomjs

#tar  xvjf  /mnt/phantomjs-2.1.1-linux-x86-64.tar.bz2 -C  /usr/src

#cd  /usr/src/phantomjs-2.1.1-linux-x86_64/bin

#cp  phantomjs  /usr/local/bin

(3)安装elasticsearch-head

# tar zxf  /mnt/elasticsearch-head.tar.gz  -C  /usr/src

#cd  /usr/src/elasticsearch-head/

#npm  install  //安装依赖包

(4)修改elasticsearch主配置文件

#vim  /etc/elasticsearch/elasticsearch.yml

http.cors.enabled:  true   //增加  开启跨域访问支持,默认为false

http.cors.allow-origin:  "*"  //增加  跨域访问允许的域名地址 即在es head中访问es

# systemctl restart  elasticsearch.service

(5)启动es-head服务(必须在elasticsearch-head目录下启动):监听端口为tcp 9100

[root@node4 elasticsearch-head]# npm run start & //前台启动,一旦关闭中断,服务也将随之关闭

(6)通过elasticsearch-head查看elasticsearch信息,发现索引为空

(7)插入索引。通过命令插入一个测试索引,通过输出信息可以看到索引为index-demo,类型为test(此步完全是为了验证可以省略)

# curl  -XPUT  'localhost:9200/index-demo/test/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

{

  "_index" : "index-demo",

  "_type" : "test",

  "_id" : "1",

  "_version" : 1,

  "result" : "created",

  "_shards" : {

    "total" : 2,

    "successful" : 2,

    "failed" : 0

  },

  "created" : true

}

四、在node1上安装kibana

1.安装kibana

# rpm  -ivh  /mnt/kibana-5.5.1-x86_64.rpm

# systemctl enable  kibana

2.设置kibana的主配置文件/etc/kibana/kibana.yml(默认存在配置,去掉注释)

server.port: 5601                               //kibana打开的监听端口

server.host: "0.0.0.0"         //kibana监听的地址

elasticsearch.url: http://192.168.1.1:9200   与elasticsearch建立连接

kibana.index: ".kibana"   //在es中添加.kibana索引

3.启动kibana服务:监听端口为tcp5601

# systemctl  start  kibana

4.在客户机访问kibana验证kibana

   

五、在apache上安装并配置logstash,收集apache的访问和错误日期,并将其发送给elashticsearch服务器

将apache服务器的日志添加到elasticsearch并通过kibana显示

1.准备工作,安装httpd

#yum  -y  install  httpd

2.启动httpd

#systemctl  restart  httpd

3.在客户机上访问httpd

4.在apache服务器上安装logstash,以便将收集到的日志发送到elasticsearch中

#rpm  -ivh  /mnt/logstash-5.5.1.rpm

#systemctl  daemon-reload

#systemctl  enable  logstash

5.编写logstash配置文件apache_log.conf

# vim  /etc/logstash/conf.d/apache_log.conf

input {      

 file{

                path => "/etc/httpd/logs/access_log"  //收集apache的访问日志

                type => "access"   //指定日志类型为access(访问日志),可以自定义

                start_position => "beginning"  //从日志开始处收集

 }

 file{

                path => "/etc/httpd/logs/error_log"  //收集apache的错误日志

                type => "error"        //指定日志类型为error(错误日志),可以自定义

                start_position => "beginning"  //从日志开始处收集

 }

}

output {

        if [type] == "access" {         //如果类型为access,即apache访问日志

                elasticsearch {         //输出到elasticsearch

                        hosts => ["192.168.1.1:9200"]  //es服务器监听地址及端口

                        index => "apache_access-%{+YYYY.MM.dd}" //指定索引格式

                        }

   }

        if [type] == "error" {   //如果类型为error,即apache错误日志

                elasticsearch {   //输出到elasticsearch

                        hosts => ["192.168.1.1:9200"]   //es服务器监听地址及端口

                        index => "apache_error-%{+YYYY.MM.dd}"  //指定索引格式

                        }

   }

  }

6.启动logstash并加载配置文件

# /usr/share/logstash/bin/logstash  -f  /etc/logstash/conf.d/apache_log.conf

7.通过浏览器访问http://192.168.1.1:9100查看索引是否创建

六、在apache服务器上,通过修改logstash配置文件,让其收集系统日志/va/log/messages,并将其输出到elasticsearch中(视需要)

# chmod  o+r  /var/log/messages

# vim /etc/logstash/conf.d/system.conf

input {

        file{

                path => "/var/log/messages"

                type => "system"

                start_position => "beginning"

        }

 }

output {

        elasticsearch {

        hosts => ["192.168.1.1:9200"]

        index => "system-%{+YYYY.MM.dd}"

}

七、在es1上配置kibana

1.在客户机上登录kibana

2.点击+create  index  pattern添加apache_access索引和apache_error索引

输入索引关键字

3.选择Discover选项卡,在中间下拉列表中选择刚添加的apache_access-*索引,可以查看相应的图表及日志信息

相关文章:

在Linux上面部署ELK

注明:一下的软件需要自己准备 一、准备环境: 1.两台elasticsearch主机4G内存 2.两台elasticsearch配置主机名node1和node2(可以省略) #vim /etc/hostname #reboot 3. 两台elasticsearch配置hosts文件 #vim /etc/hosts 192.168.1.1 node1 192…...

Langchain-Chatchat的markdownHeaderTextSplitter使用

文章目录 背景排查步骤官方issue排查测试正常对话测试官方默认知识库Debug排查vscode配置launch.json命令行自动启动condadebug知识库搜索测试更换ChineseRecursiveTextSplitter分词器 结论 关于markdownHeaderTextSplitter的探索标准的markdown测试集Langchain区分head1和head…...

掩码生成蒸馏——知识蒸馏

摘要 https://arxiv.org/pdf/2205.01529 知识蒸馏已成功应用于各种任务。当前的蒸馏算法通常通过模仿教师的输出来提高学生的性能。本文表明,教师还可以通过指导学生的特征恢复来提高学生的表示能力。从这一观点出发,我们提出了掩码生成蒸馏&#xff08…...

【C#实战】Newtonsoft.Json基类子类解析

情景再现 假设你有如下类&#xff1a; public class Item {public int Id;public string Name; }public class Weapon: Item {public int CurrentAmmo; }public class Inventory {public List<Item> Items; } 其中你序列化的是Inventory类&#xff0c;Items列表里混杂着…...

表达式求值的相关语法知识(C语言)

目录 整型提升 整型提升的意义 整型提升规则 整型提升实例 算术转换 赋值转换 操作符的属性 C语言的语法并不能保证表达式的执行路径唯一&#xff01;&#xff01;&#xff01; 问题表达式 整型提升 C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这…...

开发中遇到Electron自定义窗口的问题

开发中遇到Electron自定义窗口的问题 使用VUE3 Electron 开发一个音乐软件&#xff0c;自定义导航栏的放大、缩小和关闭。 其中使用ipcRenderer进行联系Electron&#xff0c;进行放大、缩小和关闭操作。 遇到问题 遇到__dirname is not defined in ES module scope //在V…...

c# sqlite使用

安装包 使用 const string strconn "Data Sourcedata.db"; using (SQLiteConnection conn new SQLiteConnection(strconn)) {conn.Open();var cmd conn.CreateCommand();cmd.CommandText "select 1";var obj cmd.ExecuteScalar();MessageBox.Show(ob…...

39、Flink 的窗口剔除器(Evictors)详解

Evictors Flink 的窗口模型允许在 WindowAssigner 和 Trigger 之外指定可选的 Evictor&#xff0c;通过 evictor(...) 方法传入 Evictor。 Evictor 可以在 trigger 触发后、调用窗口函数之前或之后从窗口中删除元素&#xff0c; Evictor 接口提供了两个方法实现此功能&#x…...

Flutter 中的 DefaultTabController 小部件:全面指南

Flutter 中的 DefaultTabController 小部件&#xff1a;全面指南 在Flutter中&#xff0c;DefaultTabController是一个用于管理Tab控制器的widget&#xff0c;它允许你控制Tab视图的初始索引和动态更新。这个组件在实现具有可滚动标签页的界面时非常有用&#xff0c;例如在设置…...

C++技能进阶指南——多态语法剖析

前言&#xff1a;多态是面向对象的三大特性之一。顾名思义&#xff0c; 多态就是多种状态。 那么是什么的多种状态呢&#xff1f; 这里的可能有很多。比如我们去买火车票&#xff0c; 有普通票&#xff0c; 学生票&#xff1b; 又比如我们去旅游&#xff0c; 有儿童票&#xff…...

Linux内存管理--系列文章肆

一、引子 上篇文章介绍了目标文件&#xff0c;也就是讲到编译过程中的汇编这个阶段。本篇要讲目标文件怎么变成一个可执行文件的&#xff0c;介绍编译过程中的链接。 链接主要分为两种&#xff0c;静态链接和动态链接。它们本质上的区别&#xff0c;是在程序的编译和运行过程中…...

kali下载zsteg和stegpy

1.kali下载zsteg 从 GitHub 上克隆zsteg到kali git clone https://github.com/zed-0xff/zsteg 切换目录 cd zsteg 用于安装名为 zsteg 的 Ruby Gem 包 gem install zsteg 2.kali下载stegpy 下载网站内的stegpy-master压缩包GitCode - 开发者的代码家园 并拉到kali中 切换到s…...

前端面试题日常练-day34 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末。 1. jQuery中&#xff0c;以下哪个选项用于筛选出第一个匹配的元素&#xff1f; a) first() b) get(0) c) eq(0) d) find(":first") 2. 在jQuery中&#xff0c;以下哪个选项用于在元素上…...

网站笔记:huggingface model memory calculator

Model Memory Utility - a Hugging Face Space by hf-accelerate 这个工具可以计算在 Hugging Face Hub上托管的大型模型训练和执行推理时所需的vRAM内存量。模型所需的最低推荐vRAM内存量表示为“最大层”的大小&#xff0c;模型的训练大约是其大小的4倍&#xff08;针对Adam…...

SpringBoot2.0.x旧版集成Swagger UI报错Unable to infer base url...解决办法

一、问题描述 1.1项目背景 SpringBoot2.0.9的旧版项目维护开发&#xff0c;集成Swagger-ui2.9.2无法访问的问题。不用想啊&#xff0c;这种老项目是各种过滤器拦截器的配置&#xff0c;访问不到&#xff0c;肯定是它们在作妖。懂得都懂啊&#xff0c;这里交给大家一个排错的办…...

软件项目详细设计说明书实际项目参考(word原件下载及全套软件资料包)

系统详细设计说明书案例&#xff08;直接套用&#xff09; 1.系统总体设计 2.性能设计 3.系统功能模块详细设计 4.数据库设计 5.接口设计 6.系统出错处理设计 7.系统处理规定 软件开发全文档下载&#xff08;下面链接或者本文末个人名片直接获取)&#xff1a;软件开发全套资料-…...

电脑文件qt5core.dll如何修复?如何快速的解决qt5core.dll丢失问题

软件应用程序依赖于各种复杂的文件系统以保证其顺畅运行。这些文件中&#xff0c;动态链接库&#xff08;Dynamic Link Library&#xff0c;简称DLL&#xff09;是Windows操作系统中实现多种功能的关键组件之一。然而&#xff0c;DLL文件出现问题是Windows用户可能面临的常见挑…...

USART串口通信(stm32)

一、串口通信 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统 通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 STM32F103C8T6 USART资源&#xff1a; USART1、 USART2、 USART3 自带波特率发生器&…...

快速分析变量间关系(Boruta+SHAP+RCS)的 APP(streamlit)

快速分析变量间关系&#xff08;BorutaSHAPRCS&#xff09;的 APP&#xff08;streamlit&#xff09; 以下情况下&#xff0c;你需要这个快速分析的APP: 正式分析之前的预分析&#xff0c;有助于确定分析的方向和重点变量&#xff1b;收集变量过程中&#xff0c;监测收集的变量…...

解决docker中container运行闪退终止的问题

在运行bindmount-test时&#xff0c;点击完运行按钮后闪退结束运行。 第一步查看log日志&#xff1a; 2024-05-18 23:46:18 Error: Cannot find module /app/nodemon 2024-05-18 23:46:18 at Function.Module._resolveFilename (internal/modules/cjs/loader.js:668:15) …...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...