从0开始搭建ELK日志收集系统

本文详细介绍了如何从0开始搭建ELK(Elasticsearch, Logstash, Kibana)日志收集系统。首先讲解了Elasticsearch作为全文搜索和分析引擎的角色,接着阐述了Logstash的数据收集和处理功能,然后提到了Kibana的数据可视化作用。接着,文章按步骤指导读者完成Elasticsearch的安装、配置,包括设置内存限制和创建用户,Logstash的部署,以及Kibana的安装和配置,最终通过访问Kibana验证系统的成功运行。" 111737127,10294668,React Native fs模块:文件操作与下载,"['React Native', '文件系统', '下载管理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Elasticsearch

  • elasticsearch是一个高度可扩展全文搜索和分析引擎,基于Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。

Logstash

  • 数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;支持普通log、自定义json格式的日志解析。

Kibana

  • 数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示。

1.上传软件包

  • elasticsearch-5.6.16-linux-x86_64.tar.gz
  • kibana-5.6.16-linux-x86_64.tar.gz
  • logstash-5.6.16.tar.gz

注意此三个包需要版本一致才可以

 2.安装elasticsearch

进入到你上传的目录

cd /opt

解压安装包

tar -zxvf elasticsearch-5.6.16-linux-x86_64.tar.gz

若为zip使用

unzip elasticsearch-5.6.16.zip

进入配置文件修改配置

vi  elasticsearch-5.6.16/config/elasticsearch.yml

添加如下配置 

若为集群

cluster.name: ELK-Cluster    #ELK的集群名称,名称相同即属于是同一个集群
node.name: elk-node1    #本机在集群内的节点名称
path.data: /ELK/elasticsearch/data    #数据存放目录
path.logs: /ELK/elasticsearch/data/log    #日志保存目录
bootstrap.memory_lock: true    #服务启动的时候锁定足够的内存,防止数据写入swap
network.host: 10.77.169.2    #监听的IP地址
http.port: 9200    #服务监听的端口
discovery.seed_hosts: ["10.77.169.2", "10.77.19.4"]   #单播配置一台即可
cluster.initial_master_nodes: ["elk-node1", "elk-node2"]  

若为单机

network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"

配置内存限制

vim jvm.options

修改内存大小如下

-Xms2g

-Xmx2g 

创建用户及其数据目录

创建elsearch用户组及elsearch用户

  • groupadd elsearch
  • useradd elsearch -g elsearch -p elasticsearch

更改elasticsearch-5.6.16文件夹及内部文件的所属用户及组为elsearch:elsearch

  • cd切换到elasticsearch-5.6.16的父路径下
  • chown -R elsearch:elsearch elasticsearch-5.6.16

切换到elsearch用户再启动

  • su elsearch
  • cd elasticsearch-5.6.16/bin
  • sh elasticsearch &

创建数据目录

  • mkdir -p /ELK/elasticsearch/{data,data/log}

 使用es-head插件查看是否成功

若启动报错,则需要修改内核配置

[root@localhost bin]# vim /etc/security/limits.conf

配置如下:

* soft nofile 65536
* hard nofile 131072
* soft memlock unlimited
* hard memlock unlimited

修改最大线程数

[root@localhost bin]# vim /etc/security/limits.d/20-nproc.conf

配置如下:

*     soft    nproc    unlimited

[root@localhost bin]# vim /etc/sysctl.conf

配置如下:

vm.max_map_count = 655360

令配置生效:

[root@localhost bin]# sysctl -p
[root@localhost bin]# reboot

3.Logstash部署

解压安装包

tar -zxvf logstash-5.6.16.tar.gz

创建配置文件

touch logstash-5.6.16/bin/config/logstash-nginx.conf

添加配置文件如下,根据nginx和ongodb的路径创建配置

input {
    file {
        path => "/usr/local/nginx/logs/*.log"
        start_position => beginning
        type => "nginx"
    }
    file {
        path => "/usr/local/mongodb3/logs/*.log"
        start_position => beginning
        type =>"mongodb"
    }
}
filter {

}
output {
    if[type] == "nginx"{
        elasticsearch {
            hosts => "10.77.169.4:9200"
            index => "nginx-%{+YYYY.MM.dd}"
        }
    }
    if[type] == "mongodb"{
         elasticsearch {
            hosts => "10.77.169.4:9200"
            index => "mongodb-%{+YYYY.MM.dd}"
        }

    }
}

 使用刚才创建的配置文件启动logstash

sh logstash -f ../config/logstash-nginx.conf &

 验证是否成功

 见上方已经创建了两个索引,成功

4.部署kibana

解压

tar -zxvf kibana-5.6.16-linux-x86_64.tar.gz

进入配置文件

vi kibana.yml  

添加如下配置

server.port: 5601    #监听端口
server.host: "10.77.169.4"    #自己的地址
elasticsearch.hosts: ["http://10.77.169.2:9200","http://10.77.169.4:9200"] #elasticsearch服务器地址
i18n.locale: "zh-CN"    #修改为中文

 若使用单机

 server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
kibana.index: ".kibana"

注意,低版本无法修改为中文,只能使用插件修改为中文

cd命令进入bin目录,

sh kibana & 

输入ip:5601查看是否成功 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨会停rain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值