elkb+redis建立日志收集分析系统

一、ELKB说明

elastic提供了一套非常高级的工具ELKB来满足以上这几个需求。ELKB指的是用于日志分析或者说数据分析的四个软件,各自拥有独立的功能又可以组合在一起。先来简单介绍一下这四个软件。

Elastic Search: 从名称可以看出,Elastic Search 是用来进行搜索的,提供数据以及相应的配置信息(什么字段是什么数据类型,哪些字段可以检索等),然后你就可以自由地使用API搜索你的数据。

Logstash:。日志文件基本上都是每行一条,每一条里面有各种信息,这个软件的功能是将每条日志解析为各个字段。

Kibana:提供一套Web界面用来和 Elastic Search 进行交互,这样我们不用使用API来检索数据了,可以直接在 Kibana 中输入关键字,Kibana 会将返回的数据呈现给我们,当然,有很多漂亮的数据可视化图表可供选择。

Beats:安装在每台需要收集日志的服务器上,将日志发送给Logstash进行处理,所以Beats是一个“搬运工”,将你的日志搬运到日志收集服务器上。 Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。所以说filebeat就是logstash-agent端的取代产品。且性能优良。

日志系统架构

开始搭建日志系统

首先去ELK官网下载相应的压缩包 :https://www.elastic.co/downloads

安装

这里使用CentOS 7为例来说明怎么装这几个软件。其中ELK只需要安装在进行日志收集分析的服务器(server)上,而Beats是每一台产生日志的机器(client)都需要安装,当然也可能包括日志收集服务器本身。安装之前关闭防火墙,关闭selinux

1.首先配置 filebeat。

安装filebeat。只需 yum -y install filebeat

curl -L -O  https://download.elastic.co/beats/filebeat/filebeat-5.0.0-x86_64.rpm

yum -y install  filebeat-5.0.0-x86_64.rpm

安装完成后,修改配置文件 /etc/filebeat/filebeat.yml

内容如下:

  1. filebeat.prospectors:
  2. - type: log
  3. enabled: true       ###启用此配置
  4. paths:
  5. - /var/log/nginx/*.log      ###指明读取文件的位置,可指定多个
  6. - /var/log/tomcat/*.log
  7. filebeat.config.modules:
  8. path: ${path.config}/modules.d/*.yml
  9. reload.enabled: false
  10. setup.template.settings:
  11. index.number_of_shards: 3
  12. setup.kibana:
  13. output.redis:
  14. hosts: ["192.168.10.10:6379"]
  15. key: "nginx-log"
  16. password: ""     ###如果没有密码可以省略
  17. db: 0                 ###指定redis数据库,默认第一个数据库是0,可以省略
  18. timeout: 5         ###可以省略

这样的配置是 从 /var/log/nginx下读取所有以.log结尾的文件。且发送到redis。且redis中以list方式存储。键名为 nginx-log配置完成后。先启动redis,再启动filebeat。

systemctl enable filebeat

systemctl start filebeat

2.安装配置启动redis

vim  /opt/soft/redis-4.0.8/redis.conf

bind 0.0.0.0

port 6379

daemonize yes     ### 开启守护进程模式

redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。但当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。

logfile "/var/log/redis.log"

redis-server  /opt/soft/redis-4.0.8/redis.conf

3.安装配置启动logstash

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat  <<  EOF > /etc/yum.repos.d/logstash.repo

[logstash-6.x]

name=Elastic repository for 6.x packages

baseurl=https://artifacts.elastic.co/packages/6.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

EOF

创建好仓库后使用yum安装

yum -y install logstash

systemctl enable logstash

systemctl start logstash

chown -R logstash:logstash   /etc/logstash/*

mkdir  /usr/share/logstash/config

ln -s /etc/logstash/*  /usr/share/logstash/config/

测试

./logstash -e "input{stdin{}}output{stdout{codec=>rubydebug}}"

this is a test !Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties

The stdin plugin is now waiting for input:

{

"host" => "test03",

"@version" => "1",

"message" => "this is a test !",

"@timestamp" => 2018-04-10T10:48:34.858Z

}

说明正常

接下来应该让logstash从redis中间键中读取数据。那么配置logstash。配置文件为 /etc/logstash/conf.d/logstash.conf

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

input {

redis {

data_type => "list"

key => "nginx-log"

host => "192.168.10.10"

port => 6379

}

}

output {

elasticsearch {

hosts => ["192.168.10.8:9200"]

manage_template => false

index => "nginx-log-%{+YYYY.MM.dd}"

}

}

systemctl enable logstash

systemctl start logstash

安装elasticsearch

yum -y install elasticsearch-6.2.3.rpm

vim  /etc/elasticsearch/elasticsearch.yml

path.data: /var/lib/elasticsearch

path.logs: /var/log/elasticsearch

network.host: 192.168.10.8

http.port: 9200

systemctl enable  elasticsearch

systemctl start  elasticsearch

安装kibana

yum -y install kibana-6.2.3-x86_64.rpm

vim /etc/kibana/kibana.yml

server.port: 5601

server.host: "0.0.0.0"

elasticsearch.url: "http://192.168.10.8:9200"

systemctl enable kibana

systemctl start kibana

kibana汉化方法:https://github.com/anbai-inc/Kibana_Hanization

git clone https://github.com/anbai-inc/Kibana_Hanization.git

python main.py /usr/share/kibana/

汉化之后需要重启服务



时间久了,日志文件过多占用空间,需要清理,命令如下:

清理2018年4月12号的日志

curl -XDELETE 'http://192.168.10.8:9200/nginx-log-2018.04.12'

清理2018年4月的日志

curl -XDELETE 'http://192.168.10.8:9200/nginx-log-2018.04.*'

清除所有索引日志

curl -XDELETE 'http://192.168.10.8:9200/*'

如果清理了所有的索引日志,kibana里面没有了索引,无法查看日志,重启logstash服务即可自动生成当天的日志索引。

可以写到脚本里面并添加计划任务

原文地址:http://blog.51cto.com/7072753/2122363

时间: 2024-10-01 06:18:00

elkb+redis建立日志收集分析系统的相关文章

logstash日志收集分析系统elasticsearch&kibana

logstash日志收集分析系统Logstash provides a powerful pipeline for storing, querying, and analyzing your logs. When using Elasticsearch as a backend data store and Kibana as a frontend reporting tool, Logstash acts as the workhorse. It includes an arsenal of

日志收集分析系统架构

日志收集分析系统架构   一.部署架构 日志收集系统一般包括如图所示三层.Web服务器层,日志收集层,日志存储层.Web服务器层是日志的来源,一般部署web应用供用户访问,产生日志,该节点上一般需要部署日志收集程序的agent.日志收集层手机web服务器产生的日志传输给日志存储层,存储层一般使用分布式文件系统HDFS,日志可以存储在hdfs上或者hbase上. 以scribe作为日志收集系统架构,scribe分为scribe agent和scribe server 以kafka作为日志收集系统架

基于Elasticsearch+Fluentd+Kibana的日志收集分析系统

我们平时分析log直接在日志文件中 grep.awk 就可以获得自己想要的信息,此方法效率低下,生产中需要集中化的日志管理,所有服务器上的日志收集汇总 Elasticsearch一个节点(node)就是一个Elasticsearch实例,一个集群(cluster)由一个或多个节点组成,它们具有相同的cluster.name,它们协同工作,分享数据和负载.当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据.集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如

zipkin+elk微服务日志收集分析系统

docker安装elk日志分析系统 在win10上安装docker环境 tip:win7/8 win7.win8 系统 win7.win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ win10 现在 Docker 有专门的 Win10 专业版系统的安装包,需要开启Hyper-V. 程序和功能->启用或关闭Windows

结合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:日志收集分析平台

目录 简介 环境说明 Filebeat 部署 web上采集配置文件 app上采集配置文件 Redis 部署 配置文件 Logstash 部署 Elasticsearch 集群部署 配置文件 Kibana 部署 参考文档 简介 ELK是一个日志收集分析的平台,它能收集海量的日志,并将其根据字段切割.一来方便供开发查看日志,定位问题:二来可以根据日志进行统计分析,通过其强大的呈现能力,挖掘数据的潜在价值,分析重要指标的趋势和分布等,能够规避灾难和指导决策等.ELK是Elasticsearch公司出品

在linux中快速使用docker搭建ELK日志监控分析系统

在linux中使用docker安装ELK日志监控分析系统 网上的教程非常零散或者很多都已经过时了,我这里总结了相比于其他更新的日志系统搭建.并且使用docker镜像,更加简化了安装.在这开始之前先附上我的成功配置截图: linux的安装 linux的安装很简单,但是要使用docker必须安装centos7及以上,不然出现的各种兼容性问题自行百度解决.这里有两种方法: 如果是学生可以购买阿里或者腾讯的linux服务器,简单方便,每个月只要10元钱,其实挺划算的.这是阿里linux的购买地址:htt

syslog-ng日志收集分析服务搭建及配置

syslog-ng日志收集分析服务搭建及配置:1.网上下载eventlog_0.2.12.tar.gz.libol-0.3.18.tar.gz.syslog-ng_3.3.5.tar.gz三个软件: 2.解压及安装服务端: [[email protected] tools]# tar xf eventlog_0.2.12.tar.gz [[email protected] tools]# cd eventlog-0.2.12/ [[email protected] eventlog-0.2.12

2018年ElasticSearch6.2.2教程ELK搭建日志采集分析系统(教程详情)

章节一 2018年 ELK课程计划和效果演示1.课程安排和效果演示简介:课程介绍和主要知识点说明,ES搜索接口演示,部署的ELK项目演示es: localhost:9200kibana http://localhost:5601/ 章节二 elasticSearch 6.2版本基础讲解到阿里云部署实战 2.搜索引擎知识介绍和相关框架简介:介绍搜索的基本概念,市面上主流的搜索框架elasticSearch和solr等对比什么是搜索:在海量信息中获取我们想要的信息传统做法:1.文档中使用系统的Fin