ELK日志收集平台部署

需求背景

一位朋友的公司研发最近有一些苦恼。由于他们公司的后台服务有三台,每当后台服务运行异常,需要看日志排查错误的时候,都必须开启3个ssh端口进行查看,研发们觉得很不方便,于是便有了统一日志收集与查看的需求。

这里,我用ELK集群,通过收集三台后台服务的日志,再统一进行日志展示,实现了这一需求。

当然,当前只是进行了简单的日志采集,如果后期相对某些日志字段进行分析,则可以通过logstash以及Kibana来实现。

部署环境

系统:CentOS 7

软件:

elasticsearch-6.1.1

logstash-6.1.1

kibana-6.1.1

下载地址:https://www.elastic.co/cn/products

搭建步骤

一:elasticsearch:

elasticsearch是用于存储日志的数据库。

下载elasticsearch软件,解压:

# tar -zxvf elasticsearch-6.1.1.tar.gz 
# mv elasticsearch-6.1.1 /opt/apps/elasticsearch

由于elasticsearch建议使用非root用户启动,使用root启动会报错,故需创建一个普通用户,并进行一些简单配置:

# useradd elk
# vi /opt/apps/elasticsearch/config/elasticsearch.yml
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"

启动,并验证:

# su - elk
$ nohup /opt/apps/elasticsearch/bin/elasticsearch &
# netstat -ntpl | grep 9200
tcp        0      0 0.0.0.0:9200            0.0.0.0:*               LISTEN      6637/java    
#curl 'localhost:9200/_cat/health?v'
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1514858033 09:53:53  elasticsearch yellow          1         1    241 241    0    0      241             0                  -                 50.0%

二:logstash

logstash用于收集各服务器上的日志,然后把收集到的日志,存储进elasticsearch。收集日志的方式有很多种,例如结合redis或者filebeat,这里我们使用redis收集的方式。

安装logstash:

在所有服务器上:
# tar -zxvf logstash-6.1.1.tar.gz
# mv logstash-6.1.1 /opt/apps/logstash/

配置后台服务器,收集相关的日志:

在三台后台服务器上新建logstash文件,配置日志收集:
# vi /opt/conf/logstash/logstash.conf    
input {
        file {
                        #指定type
                type => "web_stderr"       
                #匹配多行的日志        
                codec => multiline {
                        pattern => "^[^0-9]"
                        what => "previous"
                }
                #指定本地的日志路径
                path => [ "/opt/logs/web-stderr.log"]
                sincedb_path => "/opt/logs/logstash/sincedb-access"
        }
        file {
                type => "web_stdout"
                codec => multiline {
                        pattern => "^[^0-9]"
                        what => "previous"
                }
                path => [ "/opt/logs/web-stdout.log"]
                sincedb_path => "/opt/logs/logstash/sincedb-access"
        }
        #收集nginx日志
        file {
                type => "nginx"
                path => [ "/opt/logs/nginx/*.log"]
                sincedb_path => "/opt/logs/logstash/sincedb-access"
        }
}
output {
    #指定输出的目标redis
  redis {
    host => "xx.xx.xx.xx"
    port => "6379"
    data_type => "list"
    key => "logstash"
  }
}

配置elk日志服务器上的logstash,从redis队列中读取日志,并存储到elasticsearch中:

# vi /opt/conf/logstash/logstash-server.conf
#配置从redis队列中读取收集的日志
input {
  redis {
    host => "xx.xx.xx.xx"
    port => "6379"
    type => "redis-input"
    data_type => "list"
    key => "logstash"
    threads => 10
  }
}
#把日志输出到elasticsearch中
output {
        elasticsearch {
                        hosts => "localhost:9200"
                        index => "logstash-%{type}.%{+YYYY.MM.dd}"
        }
        
        #这里把日志收集到本地文件
        file {
                path => "/opt/logs/logstash/%{type}.%{+yyyy-MM-dd}"
                codec => line { format => "%{message}"}
        }
}

启动logstash进程:

后台服务器:
# nohup /opt/apps/logstash/bin/logstash -f /opt/conf/logstash/lmb.conf --path.data=/opt/data/logstash/lmb &
elk日志服务器:
# nohup /opt/apps/logstash/bin/logstash -f /opt/conf/logstash/logstash-server.conf --path.data=/opt/data/logstash/logstash-server &

三:kibana

kibana用于日志的前端展示。

安装、配置kibana:

# tar -zxvf kibana-6.1.1-linux-x86_64.tar.gz
# mv kibana-6.1.1-linux-x86_64 /opt/apps/kibana
配置elasticsearch链接:
# vi /opt/apps/kibana/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
#配置elasticsearch链接:
elasticsearch.url: "http://localhost:9200"

启动kibana:

nohup /opt/apps/kibana/bin/kibana &

访问kibana:

http://localhost:5601

可以根据我们在logstash中配置的type,创建索引:

可以根据我们创建的索引,进行查看(这里查看nginx日志):

后记:

当然了,结合logstash和kibana不单单仅能实现收集日志的功能,通过对字段的匹配、筛选以及结合kibana的图标功能,能对我们想要的字段进行分析,实现相应的数据报表等。

ELK的功能十分强大,以后有机会,继续和大家探讨!!   

原文地址:http://blog.51cto.com/icenycmh/2056539

时间: 2024-11-05 17:05:58

ELK日志收集平台部署的相关文章

FILEBEAT+ELK日志收集平台搭建流程

filebeat+elk日志收集平台搭建流程 1.         整体简介: 模式:单机 平台:Linux - centos - 7 ELK:elasticsearch.logstash.kibana三款开源软件的集合. FILEBEAT:代替logstash的采集功能,轻量.耗用小. 目前收集的有nginx日志.java日志[单行|多行]. 都是通过在客户端的生成日志配置文件中定义好初步json格式,然后利用filebeat采集到logstash,存储到elasticsearch,最后通过k

ELK日志管理平台部署简介

ELK是对Elasticsearch.Logstash.Kibana整合平台的简称.在日常的运维工作中,要实时监控服务器的业务.系统和硬件状态,除了使用监控之外,还需要搜集大量的日志来进行分析.但是在面对海量的服务器和集群时,通过单台登录查询的方式显然是不可能的,对于不同时间段和集群日志的分析仅仅通过简单的脚本来统计也是难以实现.ELK日志平台通过日志搜集,查询检索和前端展示的方式帮我们实现了这样的功能. Elasticsearch是个开源分布式搜索引擎,具有分布式,零配置,自动发现,索引自动分

elk日志收集平台搭建记录

ELK是指Elasticsearch + Logstash + Kibaba三个组件的组合. Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,他可以对你的日志进行收集.过滤,并将其存储供以后使用(如,搜索). Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的

ELK日志分析平台部署实录

[[email protected] ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch [[email protected] ~]# vim /etc/yum.repos.d/elasticsearch.repo [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic

ELK+Kafka 企业日志收集平台(一)

背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis换成了专业的消息信息发布订阅系统Kafka, Kafka的更多介绍大家可以看这里:传送门  ,关于ELK的知识网上有很多的哦, 此篇博客主要是总结一下目前线上这个平台的实施步骤,ELK是怎么跟Kafka结合起来的.好吧,动手! ELK架构拓扑: 然而我这里的整个日志收集平台就是这样的拓扑: 1,使用

结合Docker快速搭建ELK日志收集分析平台

结合Docker快速搭建ELK日志收集分析平台 2017-03-27 09:39 阅读 172 评论 0 作者:马哥Linux运维-Eason ELK Stack ELK (Elasticsearch + Logstash + Kibana),是一个开源的日志收集平台,用于收集各种客户端日志文件在同一个平台上面做数据分析. Introduction Elasticsearch, 基于json分析搜索引擎Logstash, 动态数据收集管道Kibana, 可视化视图将elasticsearh所收集

极速赛车平台出租与ELK日志分析平台

什么是ELK呢?极速赛车平台出租 Q2152876294 论坛:diguaym.com ELK是三个组件的缩写, 分别是elasticsearch, logstash, kibana. ELK平台可以用于实现日志收集.日志搜索和日志分析 1.elasticsearch(es): 它是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. 2.logstash: 简单说是一个日志收集工具, 可以定义从哪里获取数据,

GlusterFS + lagstash + elasticsearch + kibana 3 + redis日志收集存储系统部署 01

因公司数据安全和分析的需要,故调研了一下 GlusterFS + lagstash + elasticsearch + kibana 3 + redis 整合在一起的日志管理应用: 安装,配置过程,使用情况等续 一,glusterfs分布式文件系统部署: 说明: 公司想做网站业务日志及系统日志统一收集和管理,经过对mfs, fastdfs 等分布式文件系统的调研,最后选择了 glusterfs,因为Gluster具有高扩展性.高性能.高可用性.可横向扩展的弹性特点,无元数据服务器设计使glust

浅谈ELK日志分析平台

作者:珂珂链接:https://zhuanlan.zhihu.com/p/22104361来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 小编的话 "技术干货"系列文章意在分享技术牛人的知识干货,每期主题都不一样哟!期待各位读者在文后发表留言,来一场技术上的交流和思想上的碰撞! 2016年7月20日,本期品高云公开课由叶春草带来"可视化案发现场--浅谈ELK日志分析平台"的分享. 分享嘉宾 叶春草现就职于品高云软件技术支持工程师.就职