ELK日志收集系统集群实验

news2024/12/25 14:37:13

目录

一、实验拓扑

二、环境配置

(一)设置各个主机的IP地址为拓扑中的静态IP,在两个节点中修改主机名为node1和node2并设置hosts文件

1、在虚拟机node1上操作

2、在虚拟机node2上操作

3、测试node1与node2的通联性

三、 安装node1与node2节点的elasticsearch

(一)在虚拟机node1与node2分别安装

 (二)修改配置文件

1、在虚拟机node1上操作

2、在虚拟机node2上操作

(三)启动elasticsearch服务(在虚拟机node1和node2上分别操作)

(四)查看节点信息

 四、在虚拟机node1安装elasticsearch-head插件

(一)安装node

 (二)拷贝命令

 (三)安装elasticsearch-head

 (四)修改elasticsearch配置文件

 (五)启动elasticsearch-head

 (六)访问

  (七)测试

 五、node1服务器安装logstash

(一)安装

(二)启动服务

(三)查看端口号                      

(四)测试1:标准输入与输出

(五)测试2: 使用rubydebug解码

(六)测试3:输出到elasticsearch

 (七)查看结果:

 六、logstash日志收集文件格式(默认存储在/etc/logstash/conf.d)

(一)Logstash配置文件基本由三部分组成:input、output以及 filter(根据需要)。

(二)在每个部分中,也可以指定多个访问方式。

(三)案例

1、通过logstash收集系统信息日志

2、重启日志服务

3、查看日志: http://192.168.1.1:9100

 七、在虚拟机node1节点上操作安装kibana

(一)安装

 (二)配置kibana

(三)启动kibana

 (四)访问kibana :http://192.168.1.1:5601

 八、企业案例:收集httpd访问日志信息(在客户端httpd服务器上操作)

(一)安装httpd

(二)启动服务

(三)安装logstash

(四)编写httpd日志收集配置文件

(五)使用logstash命令导入配置:

 (六)使用kibana查看即可!http://192.168.1.1:5601


一、实验拓扑

二、环境配置

(一)设置各个主机的IP地址为拓扑中的静态IP,在两个节点中修改主机名为node1和node2并设置hosts文件

1、在虚拟机node1上操作

①修改主机名

命令:hostnamectl set-hostname node1

②设置hosts文件

vim /etc/hosts
192.168.1.1  node1
192.168.1.2  node2

2、在虚拟机node2上操作

①修改主机名

命令:hostnamectl set-hostname node2

②设置hosts文件

vim /etc/hosts
192.168.1.1  node1
192.168.1.2  node2

3、测试node1与node2的通联性

三、 安装node1与node2节点的elasticsearch

(一)在虚拟机node1与node2分别安装

命令:mv elk软件包  elk

          cd elk

          rpm -ivh elasticsearch-5.5.0.rpm

 (二)修改配置文件

1、在虚拟机node1上操作

vim /etc/elasticsearch/elasticsearch.yml

cluster.name:my-elk-cluster  //集群名称   
node.name:node1 //节点名字
path.data:/var/lib/elasticsearch                          //数据存放路径
path.logs: /var/log/elasticsearch/                    //日志存放路径
bootstrap.memory_lock:false                           //在启动的时候不锁定内存
network.host:0.0.0.0                                       //提供服务绑定的IP地址,0.0.0.0代表所有地址
http.port:9200                                                 //侦听端口为9200
discovery,zen.ping.unicast.hosts:【"node1","node2"】                         //群集发现通过单播实现

2、在虚拟机node2上操作

vim /etc/elasticsearch/elasticsearch.yml

cluster.name:my-elk-cluster  //集群名称   
node.name:node2 //节点名字
path.data:/var/lib/elasticsearch                          //数据存放路径
path.logs: /var/log/elasticsearch/                    //日志存放路径
bootstrap.memory_lock:false                           //在启动的时候不锁定内存
network.host:0.0.0.0                                        //提供服务绑定的IP地址,0.0.0.0代表所有地址
http.port:9200                                                  //侦听端口为9200
discovery.zen.ping.unicast.hosts:【"node1","node2"】                         //群集发现通过单播实现

(三)启动elasticsearch服务(在虚拟机node1和node2上分别操作)

命令:systemctl start elasticsearch

 netstat   -anptu  | grep  :9200                #查看端口号,elasticsearch服务是否启动

(四)查看节点信息

http://192.168.1.1:9200

 http://192.168.1.2:9200

 四、在虚拟机node1安装elasticsearch-head插件

(一)安装node

命令:cd elk
        tar xf node-v8.2.1.tar.gz                                #解包
        cd node-v8.2.1
        ./configure && make && make install            #配置、编译、安装

#等待安装完毕,安装完最终界面
 

 (二)拷贝命令

命令:cd elk
          tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2
          cd phantomjs-2.1.1-linux-x86_64/bin
          cp phantomjs  /usr/local/bin

(三)安装elasticsearch-head

命令:cd elk
          tar xf elasticsearch-head.tar.gz
          cd elasticsearch-head
           npm install
   

 (四)修改elasticsearch配置文件

vim /etc/elasticsearch/elasticsearch.yml

# Require explicit names when deleting indices:
#
#action.destructive_requires_name:true
http.cors.enabled:   true                                  //开启跨域访问支持,默认为false
http.cors.allow-origin:   "*"                              //跨域访问允许的域名地址

截图内容

 重启服务: systemctl restart elasticsearch

 (五)启动elasticsearch-head

命令:cd /root/elk/elasticsearch-head

           npm run start &

 查看监听: netstat -anput | grep :9100

(六)访问

命令:http://192.168.1.1:9100

 (七)测试

在node1的终端中输入:

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

#最终显示界面

 #刷新浏览器可以看到对应信息即可,相关界面如下

 

 五、node1服务器安装logstash

(一)安装

命令:cd  elk

           rpm -ivh logstash-5.5.1.rpm               

(二)启动服务

 systemctl start logstash.service 

(三)查看端口号                      

netstat  -anputu  |  grep  java                            

 In -s /usr/share/logstash/bin/logstash  /usr/local/bin/                        #优化命令路径

(四)测试1:标准输入与输出

命令:logstash -e 'input{ stdin{} }output { stdout{} }'

# 注意:最终界面显示情况如上图,当你输入w时,会有回应,按ctrl+c退出

(五)测试2: 使用rubydebug解码

命令:logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug }}'

 

#注意:当你输入相应的内容时,会有回应,表示解码成功,按ctrl+c退出

(六)测试3:输出到elasticsearch

命令:logstash -e 'input { stdin{} } output { elasticsearch{ hosts=>["192.168.1.1:9200"]} }'

 (七)查看结果:

http://192.168.1.1:9100                #若看不到,请刷新!!!

 

 六、logstash日志收集文件格式(默认存储在/etc/logstash/conf.d)

(一)Logstash配置文件基本由三部分组成:input、output以及 filter(根据需要)。

标准的配置文件格式如下:
    input (...)  输入
    filter {...}   过滤
    output {...}  输出

(二)在每个部分中,也可以指定多个访问方式。

例如,若要指定两个日志来源文件,则格式如下:

input {
file{path =>"/var/log/messages" type =>"syslog"}
file { path =>"/var/log/apache/access.log"  type =>"apache"}
}

(三)案例

1、通过logstash收集系统信息日志

命令: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}"
}
}

2、重启日志服务

命令:systemctl restart logstash

3、查看日志: http://192.168.1.1:9100

 七、在虚拟机node1节点上操作安装kibana

(一)安装

命令:cd elk

           rpm -ivh kibana-5.5.1-x86_64.rpm

 (二)配置kibana

vim /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"                                                        //在Elasticsearch中添加.kibana索引

(三)启动kibana

命令:systemctl start kibana

          netstat  -anptu  |  grep :5601

 (四)访问kibana :http://192.168.1.1:5601

# 首次访问需要添加索引,我们添加前面已经添加过的索引:system-*

 八、企业案例:收集httpd访问日志信息(在客户端httpd服务器上操作)

(一)安装httpd

命令:yum   -y  install  httpd

(二)启动服务

命令:systemctl   start  httpd

(三)安装logstash

命令:cd  elk
           rpm -ivh logstash-5.5.1.rpm                                                #安装
           systemctl start logstash.service                                          #启动服务
           In -s /usr/share/logstash/bin/logstash  /usr/local/bin/          #优化命令路径
           #logstash在httpd服务器上作为agent(代理),不需要启动

(四)编写httpd日志收集配置文件

vim /etc/logstash/conf.d/httpd.conf

input {
file{
path=>"/var/log/httpd/access_log"                         //收集Apache访问日志
type => "access"                                                    //类型指定为 access
start_position => "beginning"                                 //从开始处收集
}
output{
elasticsearch {
hosts =>["192.168.1.1:9200"]                                 // elasticsearch 监听地址及端口
index =>"httpd_access-%{+YYYY.MM.dd}"            //指定索引格式
}
}

(五)使用logstash命令导入配置:

命令:logstash -f  /etc/logstash/conf.d/httpd.conf

 (六)使用kibana查看即可!http://192.168.1.1:5601

#查看时在mangement选项卡创建索引httpd_access-*  即可!

 

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

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

相关文章

大数据Doris(四十四):kafka json 数组格式数据导入到Doris

文章目录 kafka json 数组格式数据导入到Doris 一、创建 Doris 表 二、创建 Kafka topic

[论文笔记]Bidirectional LSTM-CRF Models for Sequence Tagging

引言 本文是论文Bidirectional LSTM-CRF Models for Sequence Tagging的阅读笔记。这篇论文是15年发表的,比上次介绍的那篇还要早。 首次应用双向LSTM+CRF(BI-LSTM-CRF)到序列标注数据集。BI-LSTM-CRF模型可以有效地使用双向输入特征,也因为CRF层可以利用句子级标签信息。…

前端web入门-CSS-day06

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一、标准流 二、Flex 布局 组成 主轴对齐方式 侧轴对齐方式 修改主轴方向 弹性伸缩比 弹性盒子换行…

chatgpt赋能python:Python如何优雅地退出程序执行

Python如何优雅地退出程序执行 Python是一种非常强大的编程语言,它易于学习和使用,并拥有许多有用的功能和库。在Python编程中,经常需要退出程序执行。本文将介绍一些Python中退出程序执行的方法,并探讨它们的优缺点。 1. 使用s…

数据库中的SQL是如何执行的?

简介 参考文献:03丨学会用数据库的方式思考SQL是如何执行的 以oracle和MySQL为例,讲解了sql是怎么被执行的,并且对比了执行过程中,oracle和MySQL的异同。 个人感觉,讲解的核心是SQL执行时的缓存机制。 Oracle中的s…

算法刷题-字符串-重复的子字符串

KMP算法还能干这个 459.重复的子字符串 力扣题目链接 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 示例 1: 输入: “abab” 输出: True 解释: 可由子字符串 “ab” 重复两…

计算机网络面试

计算机网络面试 OSI七层模型 七层网络体系结构各层的主要功能: 应用层:为应用程序提供交互服务。在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等。表示层:主要负责数据格式的转换,如加密解密、转换翻译、压缩解压缩等。…

Navicat如何连接MySQL

市面上有很多数据库连接工具,比如Navicat、SQLYog、WorkBench等,用的比较多的,比较好用的,还是Navicat。现在我们就来说说Navicat如何连接Mysql,此文仅适用于小白,大神可略过。 1.打开Navicat,点击左上角的【连接】按钮…

(十)异步-什么是异步(1)

一、什么是异步 启动程序时,系统会在内存中创建一个新的进程。 进程: 构成运行程序的资源的集合。这些资源包括虚地址空间、文件句柄和程序运行所需的其他许多东西。 在进程内部,系统创建了一个称为线程的内核对象,它代表了真正…

chatgpt赋能python:Python迭代循环详解:从基础到高级

Python迭代循环详解:从基础到高级 在Python中,迭代循环是一种非常重要的编程概念。它能够让我们在程序运行过程中多次访问一个数据集或序列,并且以各种方式对其进行操作。在本文中,我们将深入探讨Python中的迭代循环,…

RFID课程要点总结_1 Introduction

1. Introduction Comparison of different automatic identification technologies 首先明确一下比较对象。human identification(cost too high)是人力识别就不用说了。 fingerprint identification: stability 稳定,精确度高&#xff1…

GAN:生成对抗网络的突破与应用

第一章:引言 在当今信息时代,人工智能技术的发展如日中天。其中,生成对抗网络(GAN)作为一种强大的生成模型,引起了广泛的关注和研究。GAN通过两个相互对抗的神经网络,即生成器和判别器&#xf…

【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”

采用Docker容器进行部署和搭建Nacos服务以及“坑点” Docker容器部署Nacos服务安装Docker下载Nacos镜像docker-compose up部署Derby 单机版部署MySQL 单机版部署修改standalone-mysql.yaml MySQL 集群模式部署 初始化nacos数据库Nacos服务的MySQL版本数据库脚本脚本内容 手动创…

chatgpt赋能python:Python遍历4层的最佳实践

Python遍历4层的最佳实践 如果您对搜索引擎优化(SEO)和网络爬虫有所了解,那么您可能会知道遍历多层链接的重要性。在这篇文章中,我将介绍如何使用Python编写一个简单而有效的爬虫程序,以遍历4层链接。我会使用标准的P…

AU 简单混音模板,用于AI换声,简单记录

玩AI换声,记录一下快速入门学到的混音经验 混音成品:【AI绫华/RVC2.0】星之所在 https://www.bilibili.com/video/BV1Ao4y1K7P9 人声轨效果器 多频段压缩器 主要用来控制高频的刺刺声 回声 主要用来使声音更加饱满 自适应降噪 减少毛毛躁躁的噪音&…

chatgpt赋能python:如何在Python中选取列表的某一个元素

如何在Python中选取列表的某一个元素 在Python编程中,经常需要从一个包含多个元素的列表中选取特定的元素,以进行下一步的操作或处理。本文将介绍如何通过索引和切片的方式来选取Python列表中的元素。 什么是Python列表 在Python中,列表&a…

chatgpt赋能python:Python怎么遍历ASCII表?

Python怎么遍历ASCII表? 什么是ASCII表? ASCII表,即美国信息交换标准代码,是最早广泛用于计算机中字符编码的标准之一。它包含128个字符,其中包括大写字母、小写字母、数字、标点符号以及其他特殊字符,如…

机器视觉初步5:图像预处理相关技术与原理简介

在机器视觉领域中,图像预处理是一项非常重要的技术。它是指在对图像进行进一步处理之前,对原始图像进行一系列的操作,以提高图像质量、减少噪声、增强图像特征等目的。本文将介绍一些常用的图像预处理技术,并通过配图说明&#xf…

PHP 课后习题解析与笔记——流程控制语句习题

文章目录 📋前言🎯题目一🎯题目二🎯知识点回顾🧩if...else🧩switch🧩while🧩do...while🧩for🧩foreach 📝最后 📋前言 这篇文章记录一…

chatgpt赋能python:Python如何遍历文件中的数据

Python如何遍历文件中的数据 Python是一种优秀的编程语言,它在数据处理和文件操作方面非常强大。在本篇文章中,我们将讨论如何使用Python遍历文件中的数据。 什么是遍历文件? 在Python中,遍历文件意味着访问文件中的每一行,并…