Linux:ELK:日志分析系统(使用elasticsearch集群)

news2024/11/25 23:34:57

原理

1. 将日志进行集中化管理(beats)

2. 将日志格式化(logstash)

将其安装在那个上面就对那个进行监控

3. 对格式化后的数据进行索引和存储(elasticsearch)

4. 前端数据的展示(kibana)


环境

要准备安装包

elasticsearch

elasticsearch-head

kibana

logstash

node

phantomjs

这些安装包都在网上很好找,自己去找最新的安装包也行,和我这个版本区别不大 

服务器(1)centos7 -- 192.168.254.1   -elasticsearch集群一份子,节点1(tarro1)节点1名字随便起

上面安装 elasticsearch,elasticsearch-head

服务器(2)centos7 -- 192.168.254.2   -elasticsearch集群一份子,节点2(tarro2)节点2名字随便起

上面安装 elasticsearch,elasticsearch-head logstash(监控其系统文件)

服务器(3)centos7 --  192.168.254.3 -- http服务

上面开启http服务   并安装 logstash(监控其系统文件)

 服务器(4)centos7 -- 192.168.254-3 -- kibana服务

上面开启kibana连接节点1和2 展示两位的收集出来的日志信息

 (1)和(2)要做一个集群hosts相互些写一下就行

全部关闭防火墙

全部关闭防火墙

全部关闭防火墙


 服务器(1)的配置

先将elasticsearch   elasticsearch-head  node   phantomjs   包放进去

hostnamectl set-hostname tarro1

 写入hosts

 安装java

yum -y install java
rpm -ivh elasticsearch-5.5.0.rpm 
systemctl daemon-reload
systemctl enable elasticsearch.service
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml 


 17 cluster.name: my-elk

 23 node.name: tarro1

 33 path.data: /data/elk_data

 37 path.logs: /var/log/elasticsearch/ 
 
 43 bootstrap.memory_lock: false

 55 network.host: 0.0.0.0

 59 http.port: 9200

 68 discovery.zen.ping.unicast.hosts: ["tarro1", "tarro2"]

前面的# 全去掉
群集名称 
17 cluster.name: my-elk-cluster
节点服务器名称
 23 node.name: node1
数据存放路径
 33 path.data: /data/elk_data
日志存放路径
 37 path.logs: /var/log/elasticsearch/ 
 
 在启动时不锁定内存
  43 bootstrap.memory_lock: false
  
提供服务绑定的ip地址,0.0.0.0表示所有地址
 55 network.host: 0.0.0.0
 
侦听端口
 59 http.port: 9200
 
群集发现通过单播实现
 68 discovery.zen.ping.unicast.hosts: ["node1", "node2"]
mkdir -p /data/elk_data
chown elasticsearch.elasticsearch /data/elk_data/
systemctl start elasticsearch.service
netstat -anpt | grep 9200

 

开启成功

yum -y install make gcc gcc-c++
tar xf node-v8.2.1.tar.gz
cd node-v8.2.1
./configure && make && make install

# 这里耐心等待,需要20分钟左右

tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/src
cp /usr/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
tar xf elasticsearch-head.tar.gz -C /usr/src
cd /usr/src/elasticsearch-head/
npm install
vim /etc/elasticsearch/elasticsearch.yml 

末尾添加
http.cors.enabled: true
http.cors.allow-origin: "*"
systemctl restart elasticsearch
npm start &

 

如果你重启以后可以执行

cd /usr/src/elasticsearch-head/ && npm start &

快速启动 

成功


服务器(2)的配置

 先将elasticsearch   elasticsearch-head  node   phantomjs   logstash 包放进去

hostnamectl set-hostname tarro2 

 写入hosts

 安装java

yum -y install java
rpm -ivh elasticsearch-5.5.0.rpm 
systemctl daemon-reload
systemctl enable elasticsearch.service
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml 

17 cluster.name: my-elk

 23 node.name: tarro2

 33 path.data: /data/elk_data

 37 path.logs: /var/log/elasticsearch/ 
 
 43 bootstrap.memory_lock: false

 55 network.host: 0.0.0.0

 59 http.port: 9200

 68 discovery.zen.ping.unicast.hosts: ["tarro1", "tarro2"]

前面的# 全去掉
群集名称 
17 cluster.name: my-elk-cluster
节点服务器名称
 23 node.name: node1
数据存放路径
 33 path.data: /data/elk_data
日志存放路径
 37 path.logs: /var/log/elasticsearch/ 
 
 在启动时不锁定内存
  43 bootstrap.memory_lock: false
  
提供服务绑定的ip地址,0.0.0.0表示所有地址
 55 network.host: 0.0.0.0
 
侦听端口
 59 http.port: 9200
 
群集发现通过单播实现
 68 discovery.zen.ping.unicast.hosts: ["node1", "node2"]
mkdir -p /data/elk_data
chown elasticsearch.elasticsearch /data/elk_data/
systemctl start elasticsearch.service
netstat -anpt | grep 9200

 

成功

yum -y install make gcc gcc-c++
tar xf node-v8.2.1.tar.gz 
cd node-v8.2.1
./configure && make && make install

# 很久,耐心等待

tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/src
cp /usr/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
tar xf elasticsearch-head.tar.gz -C /usr/src
cd /usr/src/elasticsearch-head/
npm install
vim /etc/elasticsearch/elasticsearch.yml 

末尾添加
http.cors.enabled: true
http.cors.allow-origin: "*"
systemctl restart elasticsearch
npm start &

 

如果你重启以后可以执行

cd /usr/src/elasticsearch-head/ && npm start &

快速启动 

成功

rpm -ivh logstash-5.5.1.rpm 
systemctl start logstash.service
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
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.254.1:9200"]
          index => "system-%{+YYYY.MM.dd}"
        }
}
#________________________________________

注释:
input {

    file {                             从文件中读取

        path => "/var/log/messages"    文件路径

        type => "system"

        start_position => "beginning"  是否从头开始读取

    }

}

output {

    elasticsearch {                        输出到elasticsearch中

        hosts => ["192.168.10.181:9200"]   elasticsearch主机地址和端口

        index => "system-%{+YYYY.MM.dd}"   索引名称

    }

}
---------------------------
systemctl restart logstash

现在就已经可以收集日志了,收集的是tarro2主机上的日志

这样就配置成功了


 服务器(3)的配置

yum -y install httpd
systemctl start httpd


 可以访问就行,这里主要将的不是http而是logstash

 将logstash 传入服务器(3)内

yum -y install java
rpm -ivh logstash-5.5.1.rpm 
systemctl daemon-reload
systemctl enable logstash.service
vim /etc/logstash/conf.d/apache_log.conf


input {
        file {
          path => "/etc/httpd/logs/access_log"
          type => "access"
          start_position => "beginning"

        }   

        file {
          path => "/etc/httpd/logs/error_log"
          type => "error"
          start_position => "beginning"

        }   
}

output {

        if [type] == "access" {
          elasticsearch {
                hosts => ["192.168.254.1:9200"]
                index => "apache_access-%{+YYYY.MM.dd}"
          }


        }


        if [type] == "error" {
          elasticsearch {
                hosts => ["192.168.254.1:9200"]
                index => "apache_error-%{+YYYY.MM.dd}"
          }


        }

}
ln -s /usr/share/logstash/bin/logstash /usr/local/bin
logstash -f /etc/logstash/conf.d/apache_log.conf 

这样以后去 Elasticsearch 集群看一下

收集日志成功 


服务器(4)的配置 

安装一个kibana展示出来

yum -y install java

将 kibana包传入服务器(4)

rpm -ivh kibana-5.5.1-x86_64.rpm 
systemctl enable kibana
vim /etc/kibana/kibana.yml 


 2 server.port: 5601

 7 server.host: "0.0.0.0"

 21 elasticsearch.url: "http://192.168.254.1:9200"

 30 kibana.index: ".kibana"

去掉前面#

注释:

server.port: 5601                             kibana打开的端口

server.host: "0.0.0.0"                        kibana侦听的地址

elasticsearch.url: "http://192.168.10.181:9200"    和elasticsearch建立联系

kibana.index: ".kibana"                     在elasticsearch中添加.kibana索引
systemctl start kibana

http://192.168.254.4:5601/
↑
http://kibanaip:5601/

 进入成功


设置kibana展示

 

 

 这个是192.168.254.2的系统日志展示,还差个192.168.254.3的网站日志展示

 

 

 

 点击切换

要看那个选那个

 

展示成功 

 

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

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

相关文章

【MySQL】基本查询(表的增删查改)

目录 一、插入操作 --- insert1.1 单行指定列插入&&单行全列插入1.2 多行指定列插入&&多行全列插入1.3 插入否则更新 duplicate key update1.4 删除并替换 replace 二、查询操作 --- select2.1 基本查询2.2 where条件2.3 案例演示2.4 排序(order by…

HDFS异构存储详解

异构存储 HDFS异构存储类型什么是异构存储异构存储类型如何让HDFS知道集群中的数据存储目录是那种类型存储介质 块存储选择策略选择策略说明选择策略的命令 案例:冷热温数据异构存储对应步骤 HDFS内存存储策略支持-- LAZY PERSIST介绍执行使用 HDFS异构存储类型 冷…

【代码随想录day20】二叉搜索树的最小绝对差

题目 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数,其数值等于两值之差的绝对值。 思路 最简单的一个思路是使用中序遍历,从二叉排序树中得到有序序列,存储到self.elem中&…

静态 链接

1、空间与地址的分配 现在的链接器空间分配的策略基本上都采用 “相似段合并” 的方式。通过将所有相同类型的 section 合并到一起,例如将所有输入目标文件的 .text 合并(按顺序合并)到输出文件的 .text 节中;然后,链接…

EasyExcel实现多sheet excel导出

EasyExcel简介 Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或 者JVM频繁的full gc。 EasyExcel是阿里巴巴开源的一个excel处理框架…

eNSP的安装【最全最详细教程】

目录 一、下载软件和插件二、VirtualBox安装步骤三、WinPcap安装步骤四、Wireshark安装步骤五、eNSP安装步骤六、eNSP测试安装eNSP可能失败的原因 一、下载软件和插件 在安装eNSP之前分别要下载三个插件:VirtualBox、WinPcap、Wireshark 下载软件链接:…

集成学习概述

集成学习 1. 集成学习概念 集成学习是解决有监督机器学习任务的一类方法,它的思路是基于多个学习算法的集成来提升预测结果,它通过多个模型的组合形成一个精度更高的模型,参与组合的模型成为弱学习器(基学习器)。训练时,使用训练集依次训练出这些弱学习器,对未知的样本…

PLC编程:关键在于模拟操作流程和实现控制

PLC编程的核心是通过程序描述流程,完成控制过程。因此,掌握PLC编程语言和基本功能实现是必要的。 PLC语言主要分为梯形图、语句和功能图。梯形图适合基本逻辑描述,语句表用于数据处理,相对较难理解。步进式功能图的状态函数描述很…

[NLP]LLaMA与LLamMA2解读

摘要 Meta最近提出了LLaMA(开放和高效的基础语言模型)模型参数包括从7B到65B等多个版本。最值得注意的是,LLaMA-13B的性能优于GPT-3,而体积却小了10倍以上,LLaMA-65B与Chinchilla-70B和PaLM-540B具有竞争性。 一、引言 一般而言&#xff0…

IT 资产管理功能

ServiceDesk Plus 支持ITIL流程,帮助管理员制定明智的业务决策,在整个生命周期中跟踪所有资产的硬件和软件。 ServiceDesk Plus 中的资产管理模块包含多种功能,例如:多种扫描资产的方法;基于代理和无代理的方法&#…

新老联手,火花四溅?大众汽车与小鹏汽车达成长期合作框架协议

7 月 26 日资讯,大众汽车宣布与小鹏汽车达成长期合作框架协议,并在官网中正式宣布,大众是老牌油车领军代表,小鹏则是新势力中的佼佼者,新老强强联手,又会碰撞出怎样的火花呢? 现阶段大众计划与…

凭借一份深入解析 Java 虚拟机 HotSpot 手册,让我卷成美团架构师

前言 Java 语言已经走过了 20 多个年头,在此期间虽然新语言层出不穷,但是都没有撼动 Java 的位置。可能是历史选择了 Java,也可能是 Java 改变了历史,总之,Java 无疑是一门成功的编程语言。这门语言之所以能如此成功&…

MODBUS RTU转 EtherNet/IP 网关连接森兰变频器与欧姆龙系统通讯配置案例

捷米特JM-EIP-RTU(Modbus转Ethernet/Ip)网关,用于将多个 MODBUS 从站设备接入 ETHERNET/IP 主站网络,实现 MODBUS 转 ETHERNET/IP 功能。配上 捷米特JM-EIP-RTU网关专用的 EDS 文件,实现 ETHERNET/IP 主 站对 MODBUS 从站设备的控…

Java多线程锁

多线程锁 本专栏学习内容又是来自尚硅谷周阳老师的视频 有兴趣的小伙伴可以点击视频地址观看 Synchronized Synchronized是Java中锁的一种实现方法,我们需要了解他锁在什么地方,锁的类型有哪些 阿里巴巴开发手册规定: 高并发时,同…

大语言模型LLM技术赋能软件项目管理和质量保障︱微软中国高级研发经理步绍鹏

微软中国高级研发经理步绍鹏先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:大语言模型LLM技术赋能软件项目管理和质量保障。大会将于8月12-13日在北京举办,敬请关注! 议题内容简要: 本次分享将…

809 协议相关

809 协议 目录概述需求: 设计思路实现思路分析1.概念2.业务流程3.详细过程4.相关过程 参考资料 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,ch…

Windows上安装Docker Desktop

运行环境 Windows 10Docker Desktop 4.21.1 安装步骤 步骤1: 勾掉"Use WSL 2 instead of Hyper-V(recommended)"(原因见小插曲2章节) 步骤2: 安装完成 步骤3: 运行Docker Desktop 步骤4: …

面试了无数家公司整理的软件测试面试题【含答案】

1、自动化代码中,用到了哪些设计模式? 单例设计模式 工厂模式PO设计模式数据驱动模式面向接口编程设计模式 2、什么是断言( Assert) ? 断言Assert用于在代码中验证实际结果是不是符合预期结果,如果测试用例执行失败会抛出异常并提供断言日志 3、什么是web自动化测…

STM32 串口实验(学习一)

本章将实现如下功能:STM32通过串口和上位机对话,STM32在收到上位机发过来的字符串后,原原本本返回给上位机。 STM32 串口简介 串口作为MCU的重要外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻。现在基本…

centos7设置网桥网卡

安装bridge-utils yum install bridge-utils修改ens33 网卡 TYPEEthernet BOOTPROTOnone DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IPV6_DEFROUTEyes IPV6_FAILURE_FATALno NAMEens33 UUID04b97484-25c8-45c7-8c8c-e335e8080e10 DEVICEens33 ONBOOTye…