在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 知识蒸馏已成功应用于各种任务。当前的蒸馏算法通常通过模仿教师的输出来提高学生的性能。本文表明,教师还可以通过指导学生的特征恢复来提高学生的表示能力。从这一观点出发,我们提出了掩码生成蒸馏(…...
【C#实战】Newtonsoft.Json基类子类解析
情景再现 假设你有如下类: public class Item {public int Id;public string Name; }public class Weapon: Item {public int CurrentAmmo; }public class Inventory {public List<Item> Items; } 其中你序列化的是Inventory类,Items列表里混杂着…...
表达式求值的相关语法知识(C语言)
目录 整型提升 整型提升的意义 整型提升规则 整型提升实例 算术转换 赋值转换 操作符的属性 C语言的语法并不能保证表达式的执行路径唯一!!! 问题表达式 整型提升 C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这…...
开发中遇到Electron自定义窗口的问题
开发中遇到Electron自定义窗口的问题 使用VUE3 Electron 开发一个音乐软件,自定义导航栏的放大、缩小和关闭。 其中使用ipcRenderer进行联系Electron,进行放大、缩小和关闭操作。 遇到问题 遇到__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,通过 evictor(...) 方法传入 Evictor。 Evictor 可以在 trigger 触发后、调用窗口函数之前或之后从窗口中删除元素, Evictor 接口提供了两个方法实现此功能&#x…...
Flutter 中的 DefaultTabController 小部件:全面指南
Flutter 中的 DefaultTabController 小部件:全面指南 在Flutter中,DefaultTabController是一个用于管理Tab控制器的widget,它允许你控制Tab视图的初始索引和动态更新。这个组件在实现具有可滚动标签页的界面时非常有用,例如在设置…...
C++技能进阶指南——多态语法剖析
前言:多态是面向对象的三大特性之一。顾名思义, 多态就是多种状态。 那么是什么的多种状态呢? 这里的可能有很多。比如我们去买火车票, 有普通票, 学生票; 又比如我们去旅游, 有儿童票ÿ…...
Linux内存管理--系列文章肆
一、引子 上篇文章介绍了目标文件,也就是讲到编译过程中的汇编这个阶段。本篇要讲目标文件怎么变成一个可执行文件的,介绍编译过程中的链接。 链接主要分为两种,静态链接和动态链接。它们本质上的区别,是在程序的编译和运行过程中…...
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 【面试题】
题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末。 1. jQuery中,以下哪个选项用于筛选出第一个匹配的元素? a) first() b) get(0) c) eq(0) d) find(":first") 2. 在jQuery中,以下哪个选项用于在元素上…...
网站笔记:huggingface model memory calculator
Model Memory Utility - a Hugging Face Space by hf-accelerate 这个工具可以计算在 Hugging Face Hub上托管的大型模型训练和执行推理时所需的vRAM内存量。模型所需的最低推荐vRAM内存量表示为“最大层”的大小,模型的训练大约是其大小的4倍(针对Adam…...
SpringBoot2.0.x旧版集成Swagger UI报错Unable to infer base url...解决办法
一、问题描述 1.1项目背景 SpringBoot2.0.9的旧版项目维护开发,集成Swagger-ui2.9.2无法访问的问题。不用想啊,这种老项目是各种过滤器拦截器的配置,访问不到,肯定是它们在作妖。懂得都懂啊,这里交给大家一个排错的办…...
软件项目详细设计说明书实际项目参考(word原件下载及全套软件资料包)
系统详细设计说明书案例(直接套用) 1.系统总体设计 2.性能设计 3.系统功能模块详细设计 4.数据库设计 5.接口设计 6.系统出错处理设计 7.系统处理规定 软件开发全文档下载(下面链接或者本文末个人名片直接获取):软件开发全套资料-…...
电脑文件qt5core.dll如何修复?如何快速的解决qt5core.dll丢失问题
软件应用程序依赖于各种复杂的文件系统以保证其顺畅运行。这些文件中,动态链接库(Dynamic Link Library,简称DLL)是Windows操作系统中实现多种功能的关键组件之一。然而,DLL文件出现问题是Windows用户可能面临的常见挑…...
USART串口通信(stm32)
一、串口通信 通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统 通信协议:制定通信的规则,通信双方按照协议规则进行数据收发 STM32F103C8T6 USART资源: USART1、 USART2、 USART3 自带波特率发生器&…...
快速分析变量间关系(Boruta+SHAP+RCS)的 APP(streamlit)
快速分析变量间关系(BorutaSHAPRCS)的 APP(streamlit) 以下情况下,你需要这个快速分析的APP: 正式分析之前的预分析,有助于确定分析的方向和重点变量;收集变量过程中,监测收集的变量…...
解决docker中container运行闪退终止的问题
在运行bindmount-test时,点击完运行按钮后闪退结束运行。 第一步查看log日志: 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) …...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
