0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在CentOS系统中部署ELK日志分析系统

马哥Linux运维 来源:CSDN技术社区 2025-05-08 11:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

日志分析已成为企业监控、故障排查和性能优化的重要组成部分。ELK(Elasticsearch、Logstash 和 Kibana)堆栈作为一种强大的开源解决方案,提供了高效的日志收集、存储和可视化功能,使用户能够快速获取关键业务洞察。本文将详细介绍如何在 CentOS 系统中部署 ELK 日志分析系统,

1.实验环境

f58b70d2-2763-11f0-9310-92fbcf53809c.png

配置ELK日志分析集群

使用logstash收集日志

使用kibana分析日志

2.环境准备

所需安装包

node1

elasticsearch-5.5.0.rpm v8.2.1.tar.gz
kibana-5.5.1-x86_64.rpm
elasticsearch-head.tar.gz

node-v8.2.1.tar.gz

phantomjs-2.1.1-linux-x86_64.tar.bz2


apache

`logstash-5.5.1.rpm`

所有服务器上操作

关闭防火墙和Selinux 配置hosts文件

systemctl stop firewalld && systemctl disable firewalld
setenforce 0


vim /etc/hosts


192.168.192.113 node1
192.168.192.114 node2
192.168.192.116 apache          

yum install -y lrzsz


部署Elasticsearch

在 Node1 和 Node2 节点上都需要部署 lasticsearch

Node1

检测java环境

[root@node1 ~]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)


如果没有java的话安装

`yum install -y java-openjdk`

上传安装包

[root@node1 ~]# ls
elasticsearch-5.5.0.rpm v8.2.1.tar.gz

rpm -ivh elasticsearch-5.5.0.rpm


编辑配置文件

自己打开配置文件一个个比对找,行数我已经标出

vim /etc/elasticsearch/elasticsearch.yml

17 cluster.name: my-elk-cluster    # 集群名称
23 node.name: node1          # 节点名称
33 path.data: /data/elk_data      # 数据存储路径
37 path.logs: /var/log/elk_logs     # 日志存储路径
43 bootstrap.memory_lock: false     # 是否锁定内存以避免交换
55 network.host: 0.0.0.0        # 监听所有网络接口
59 http.port: 9200           # HTTP 服务端口
68 discovery.zen.ping.unicast.hosts: ["node1", "node2"] # 发现其他节点的地址也可以填写ip地址


重新加载系统管理器配置,设置 Elasticsearch 服务为开机自启。

systemctl daemon-reload
systemctlenableelasticsearch.service



创建数据和日志目录

将数据和日志目录的所有权更改为 elasticsearch 用户,以确保 Elasticsearch 有权限访问这些目录

mkdir -p /data/elk_data
mkdir -p /var/log/elk_logs

chown elasticsearch:elasticsearch /data/elk_data/
chown elasticsearch:elasticsearch /var/log/elk_logs

systemctl start elasticsearch

netstat -nultp | grep 9200
tcp6    0   0 :::9200         :::*          LISTEN   1264/java


启动 Elasticsearch 服务。

Node2

方法一样不过多介绍

[root@node1 ~]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)


`yum install -y java-openjdk`

这里需改更改节点为node2

vim /etc/elasticsearch/elasticsearch.yml

17 cluster.name: my-elk-cluster
23 node.name: node2      //这里需要更改
33 path.data: /data/elk_data
37 path.logs: /var/log/elk_logs
43 bootstrap.memory_lock: false
55 network.host: 0.0.0.0
59 http.port: 9200
68 discovery.zen.ping.unicast.hosts: ["node1", "node2"]  //或者输入IP地址


systemctl daemon-reload
systemctl enable elasticsearch.service

vim /etc/elasticsearch/elasticsearch.yml
mkdir -p /data/elk_data
mkdir -p /var/log/elk_logs

chown elasticsearch:elasticsearch /data/elk_data/
chown elasticsearch:elasticsearch /var/log/elk_logs

systemctl start elasticsearch


netstat -nultp | grep 9200
tcp6    0   0 :::9200         :::*          LISTEN   1384/java 


3.查看节点信息

Web 链接 http://192.168.192.113:9200,可以查看节点Node1 的信息

f5a8170a-2763-11f0-9310-92fbcf53809c.png

node2

f5dea914-2763-11f0-9310-92fbcf53809c.png

检查群集的健康状态,可以看到status为绿色表示节点健康运行

在浏览器中输入

4.查看群集的健康情况

`http://192.168.192.113:9200/_cluster/health?pretty`
f5f8df64-2763-11f0-9310-92fbcf53809c.png

5.查看群集的状态信息

`http://192.168.192.113:9200/_cluster/state?pretty`
f61658e6-2763-11f0-9310-92fbcf53809c.png

安装Elasticsearch-head插件

在Node1上安装

安装 Elasticsearch-head 需要提前安装 node 和 phantomjs

1.安装node

编译安装node 时间可以有多久 大概20分钟左右

`yum install -y gzip`
ls
node-v8.2.1.tar.gz

tar zxf node-v8.2.1.tar.gz
ls
node-v8.2.1
node-v8.2.1.tar.gz

cd node-v8.2.1
./configure && make && make install


2.安装phantomjs

[root@node1 ~]# ls
elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
elasticsearch-5.5.0.rpm   node-v8.2.1
phantomjs-2.1.1-linux-x86_64.tar.bz2

[root@node1 ~]# tar -jxf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
[root@node1 ~]# cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/
[root@node1 bin]# ls
phantomjs
[root@node1 bin]# cp phantomjs /usr/local/bin


开始安装

cd
[root@node1 ~]# tar -zxf elasticsearch-head.tar.gz
[root@node1 ~]# cd elasticsearch-head
[root@node1 elasticsearch-head]# npm install


f6341f3e-2763-11f0-9310-92fbcf53809c.png

修改Elasticsearch 主配置文件

vim /etc/elasticsearch/elasticsearch.yml
//加入一下内容
90 http.cors.enabled: true        # 启用 CORS
91 http.cors.allow-origin: "*"      # 允许所有来源的请求



systemctl restart elasticsearch


执行命令npm run start &

cd elasticsearch-head    //必须进入这个目录执行命令
[root@node1 elasticsearch-head]# npm run start &
[6] 51980
[root@node1 elasticsearch-head]#
> elasticsearch-head@0.0.0 start /root/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100


elasticsearch-head 监听的端口是 9100

f65452f4-2763-11f0-9310-92fbcf53809c.png

通过Elasticsearch-head 查看 Elasticsearch信息。可以看到群集很健康,健康值为 green 绿色。单击数据浏览,可以查螺引信息,此时索引为空

浏览器访问

`http://192.168.192.113:9100/`
f6736586-2763-11f0-9310-92fbcf53809c.png

3.创建索引

Elasticsearch 中的 index-demo 索引添加了一个文档

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
}


"_index":文档所在的索引。
"_type":文档的类型。
"_id":文档的唯一标识符。
"_version":文档的版本号。
"result":操作结果,表示文档已成功创建。
"_shards":分片信息,显示总分片数、成功的分片数和失败的分片数。
"created":布尔值,表示文档是否被创建。

刷新浏览器可以看到创建成功的目录

f6a4b672-2763-11f0-9310-92fbcf53809c.png

点击概述 ,还可以看到索引默认被分片成5个篇,且存在一个副本

f6b9e1aa-2763-11f0-9310-92fbcf53809c.png

Logstash安装及使用方法

logstash 一般部署在需要监控其日志的服务器中,在本案例中,Logsiash 部署在 Apache 服务器上解收集 Apsche 服务器的日志信息并发送到 Elasticserch 中,

安装在被监控端,

本案例安装在apache服务器上,用于收集apache服务器的日志信息发送到Elasticsearch中

以下在apache服务器中安装

1.检测java环境

[root@node1 ~]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)


`yum install -y java-openjdk`

报错解决

root@apache ~]# rpm -ivh logstash-5.5.1.rpm
警告:logstash-5.5.1.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...             ################################# [100%]
正在升级/安装...
 15.5.1-1        ################################# [100%]
Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME.
警告:%post(logstash-1:5.5.1-1.noarch) 脚本执行失败,退出状态码为 1


下载java即可

2.上传rpm包

[root@apache ~]# ls
logstash-5.5.1.rpm


rpm -ivh logstash-5.5.1.rpm

systemctl start logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/


测试 Logstash

logstash -e'input { stdin{} } output { stdout{} }'


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


f6d9cfe2-2763-11f0-9310-92fbcf53809c.png

在Elsticsearch 中查看Logstesh 新增加的索引

配置 Logstash 以读取系统日志

cd /etc/logstash/conf.d/

[root@apache conf.d]# chmod o+r /var/log/messages
[root@apache conf.d]# ll /var/log/messages
-rw----r--. 1 root root 41906 7月 26 13:44 /var/log/messages
[root@apache conf.d]# touch system.conf
[root@apache conf.d]# vim system.conf


vim system.conf

input {
    file {
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
      }
}

output {
    elasticsearch{
        hosts => ["192.168.192.113:9200"]
        index => "system-%{+YYYY.MM.dd}"
      }

}


systemctl restart logstash
ls
system.conf


这时候系统日志信息就添加进来了

完成后,通过浏览器查看Elasticsearch 的信息

f70cf778-2763-11f0-9310-92fbcf53809c.png

安装Kibana

Kibana 是一个开源的分析和可视化平台,通常与 Elasticsearch 和 Logstash 一起使用,形成 ELK 堆栈。它允许用户通过图形界面轻松地探索和可视化存储在 Elasticsearch 中的数据。

在Node1上安装

首先上传rpm包

kibana-5.5.1-x86_64.rpm

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.192.113:9200"
30 kibana.index: ".kibana"


验证 Kibana、通过浏览器访问

`http://192.168.192.113:5601`

添加system索引

f7265a06-2763-11f0-9310-92fbcf53809c.png

添加一个

f746acf2-2763-11f0-9310-92fbcf53809c.png

这时候就可以查看图表和 系统有关的日志信息了

f7762e14-2763-11f0-9310-92fbcf53809c.png

添加apache日志

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

ip地址记得更换

cd /etc/logstash/conf.d/

vim apache_log.conf
//加入一下内容

input {
    file {
        path => "/var/log/httpd/access_log"
        type => "access"
        start_position => "beginning"
      }
    file {
        path => "/var/log/httpd/error_log"
        type => "error"
        start_position => "beginning"
      }
    }
output {
    if [type] == "access" {
    elasticsearch {
        hosts => ["192.168.192.113:9200"]
        index => "apache_access-%{+YYYY.MM.dd}"
        }
    }
    if [type] == "error" {
    elasticsearch {
        hosts => ["192.168.192.113:9200"]
        index => "apache_error-%{+YYYY.MM.dd}"
        }
    }
   }


4.编写脚本

用于启动 Logstash 并加载指定的配置文件。

通过这个脚本快速启动 Logstash 处理 Apache 日志了。

vim /elk.sh
#!/bin/bash

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


wq

chmod a+x /elk.sh

. /elk.sh &


访问查看索引是否创建成功

`http://192.168.192.113:9100/`
f7a25f16-2763-11f0-9310-92fbcf53809c.png

回到kibana

f7b86e28-2763-11f0-9310-92fbcf53809c.pngf7db0424-2763-11f0-9310-92fbcf53809c.png

如果想要添加其他服务的日志信息也是一样的!

总结

通过本教程,我们详细探讨了在 CentOS 系统中部署 ELK 日志分析系统的各个步骤。我们从环境准备、组件安装到配置与实际应用,全面覆盖了这一强大工具的使用方法。ELK 堆栈不仅提升了日志管理的效率,也为数据分析提供了丰富的可视化手段。希望本文能够帮助您更好地理解和应用 ELK 系统,助力您的业务决策和性能优化。

链接:https://blog.csdn.net/jxjdhdnd/article/details/140798722?spm=1001.2014.3001.5502

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    4031

    浏览量

    45568
  • 日志
    +关注

    关注

    0

    文章

    145

    浏览量

    11026
  • CentOS
    +关注

    关注

    0

    文章

    84

    浏览量

    14672

原文标题:Linux中ELK日志分析系统的部署(详细教程8K字)附图片

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DevOps拥抱日志管理系统ELK623浅析

    DevOps之拥抱日志管理系统ELK623
    发表于 07-15 06:06

    CentOS系统的知识介绍

    CentOS系统的被很多人使用,但是有些人是被CentOS系统的名声所吸引的,对CentOS系统
    发表于 07-15 07:41

    ELK开源工具

    ELK日志分析系统
    发表于 10-12 15:23

    基于docker的elk平台来分析java

    搭建基于docker的elk平台来分析java日志
    发表于 04-21 15:07

    在嵌入式环境中部署环境的相关资料分享

    在嵌入式环境中部署环境:1.1 在linux中,当文件系统初始化后,在vi/etc/profile中可以输入一个命令,来配置系统的ip地址: ifconfig eth0 192.168.1.10这样就能实现,
    发表于 10-27 07:02

    何在N1SDP上安装发行版ubuntu和centos系统

    based on the Neoverse N1 core.这篇文章将向大家介绍如何在N1SDP上安装发行版ubuntu和centos系统,目前N1SDP仅支持kernel 4.18或以上版本。目前的方法是在
    发表于 07-06 10:52

    基于DOCKER容器的ELK日志收集系统分析

    分布式消息队列redis部署实时消息自动化系统,能够快速、实时地收集应用日志,提高运维人员的工作效率。详细介绍了Docker、ELK、Docker Swarm和Etcd的功能及原理,最
    发表于 11-06 14:15 3次下载
    基于DOCKER容器的<b class='flag-5'>ELK</b><b class='flag-5'>日志</b>收集<b class='flag-5'>系统分析</b>

    对于大规模系统日志日志模式提炼算法的优化

    LARGE框架是部署在中国科学院超级计算环境中的日志分析系统,通过日志收集、集中分析、结果反馈等
    发表于 11-21 14:54 7次下载
    对于大规模<b class='flag-5'>系统</b><b class='flag-5'>日志</b>的<b class='flag-5'>日志</b>模式提炼算法的优化

    轻松搭建ELK日志分析系统

    Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志
    的头像 发表于 04-12 11:03 1.2w次阅读
    轻松搭建<b class='flag-5'>ELK</b><b class='flag-5'>日志</b><b class='flag-5'>分析</b><b class='flag-5'>系统</b>

    何在小型集群中部署Xilinx FPGA卡

    Xilinx FPGA是支持OpenStack的第一个(也是目前唯一的)FPGA。 该视频快速介绍了如何在小型集群中部署Xilinx FPGA卡,以便在Xilinx SC16展台上运行每个演示,并使用OpenStack进行配置和管理。
    的头像 发表于 11-23 06:14 4219次阅读

    干货:Centos 6.5部署nginx和php环境部署

    干货:Centos 6.5部署nginx和php环境部署
    的头像 发表于 06-28 10:00 2655次阅读

    分布式实时日志ELK部署架构方案

    该架构与第一种架构唯一不同的是:应用端日志收集器换成了Filebeat,Filebeat轻量,占用服务器资源少,所以使用Filebeat作为应用服务器端的日志收集器,一般Filebeat会配合Logstash一起使用,这种部署
    的头像 发表于 01-08 09:56 1366次阅读

    分布式实时日志分析解决方案ELK部署架构

    ELK 已经成为目前最流行的集中式日志解决方案,它主要是由 Beats、Logstash、Elasticsearch、Kibana 等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案。本文将会介绍
    的头像 发表于 01-29 11:55 1441次阅读

    CentOS7中使用一键脚本部署Librenms网络监控系统

    今天在CentOS7下使用一键脚本部署Librenms网络监控系统
    的头像 发表于 09-14 09:27 2144次阅读
    <b class='flag-5'>CentOS</b>7中使用一键脚本<b class='flag-5'>部署</b>Librenms网络监控<b class='flag-5'>系统</b>

    何在Centos系统中部署KVM虚拟化平台

    KVM 通过将 Linux 内核转换为一个裸机(bare-metal)管理程序(hypervisor),使得用户可以在单一物理主机上运行多个虚拟机(VM),每个虚拟机都拥有独立的操作系统和资源。这样的架构不仅提高了硬件资源的利用率,还简化了系统管理和
    的头像 发表于 05-09 13:40 735次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Centos</b><b class='flag-5'>系统</b><b class='flag-5'>中部署</b>KVM虚拟化平台