当前位置:文档之家 > ELK日志采集监控方案

ELK日志采集监控方案

ELK日志采集监控方案

概述

基于ELK搭建日志实时采集监控系统

系统要求

优化系统内核配置:

1.ulimit

2.logstash各组件间有版本依赖,请注意使用的版本匹配

3.配置好邮件服务sendmail

系统组成

Elasticsearch + Logstash + Kibana(ELK):

1.Elasticsearch:日志汇总存储并创建索引提供查询服务

2.Logstash:日志采集、过滤与监控,logstash本身提供多种input-output策略,可灵活选

3.Kibana:提供统一的日志查询web界面,同时可以进行分类图表统计

ELK日志采集监控方案

架构策略

在应用服务端配置logstash-agent负责采集原始日志并汇总到MQ,MQ选用kafka进行日志消息缓存与分发,后端部署logstash-indexer,订阅kafka topic内日志消息并写入ES文件存储,同时判断日志消息内是否包含错误或异常等信息,通过sendMail邮件服务发送报警邮件到相关邮件组,后端ES部署双节点集群做分布式搜索服务,提供http服务给kibana供用户通过web界面查询实时日志。

如图:

ELK日志采集监控方案

1 JDK安装

2 ES

注:

●ES最新版本要求不能以root方式启动,需创建对应用户并赋予es相关文件路径的控制

权限

●ES2.0版与kibana新版整合时,有js兼容问题,kibana UI界面在IE、chrome下无法打

开,Firefox可以

2.1单节点模式

1.下载es tar

官网:https://www.elastic.co

wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.0.tar.gz

2.解压并配置

tar elasticsearch-1.7.0.tar.gz

修改${es_home}/ config/ elasticsearch.yml

注:红色为基础配置项,需针对实际场景修改,更多详细配置请参阅官网

#配置es集群命名

http://www.doczj.com/doc/b639ada127d3240c8547ef14.html:

#当前节点名

http://www.doczj.com/doc/b639ada127d3240c8547ef14.html

#数据存储目录,默认${es_home}/data

path.data

#日志目录,默认${es_home}/logs

path.logs

#临时文件存储目录,默认${es_home}/work

path.work

#对外服务http端口,默认9200

http.port

#节点间交互端口,默认9300

transport.tcp.port

3.使用

启动:bin/elasticsearch

后端启动:bin/elasticsearch –d

PID启动:bin/elasticsearch -d -p pid

4.以服务方式管理es:

对elasticsearch执行命令的包装服务,安装之后,方便elasticsearch的启动,停止等等操作

老版本es适用:elasticsearchservicewrapper:

(1)下载elasticsearchservicewrapper:

git clone https://http://www.doczj.com/doc/b639ada127d3240c8547ef14.html/elasticsearch/elasticsearch-servicewrapper

然后将目录下的service目录拷贝至ES_HOME/bin目录下

(2)简单配置jvm的内存

修改ES_HOME/bin/service/elasticsearch.conf,set.default.ES_HEAP_SIZE=1024,该值根据机器的配置可自定义。

(3)安装启动服务

执行命令:ES_HOME/bin/service/elasticsearch install

(4)启动/停止/重启服务

执行命令:ES_HOME/bin/service/elasticsearch start/stop/restart

新版本es适用参见:

https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-service.html

5.Web请求,验证服务是否成功

http://esIp:9200/

返回:

ELK日志采集监控方案

6.Web查询数据接口:

http://esIp:9200/_search?pretty

7.Web查询集群信息接口:

http://esIp:9200/_nodes/process?pretty

8.

9.

10.

2.2集群模式

在其他节点按上述单节点模式安装,修改配置文件${es_home}/ config/ elasticsearch.yml:

保证:

1.各节点http://www.doczj.com/doc/b639ada127d3240c8547ef14.html:必须一致http://www.doczj.com/doc/b639ada127d3240c8547ef14.html:必须不同

2.各节点在相同网段内

启动各节点后,es会自动发现同网段内的节点组成集群

2.3管理插件

1.head:查看集群几乎所有信息,还能进行简单的搜索查询,观察自动恢复的情况等

安装:./bin/plugin -install mobz/elasticsearch-head

查看:http://ip:9200/_plugin/head/

2.Bigdesk:集群监控插件,通过该插件可以查看整个集群的资源消耗情况,cpu、内存、

http链接等

安装:./bin/plugin -install lukas-vlcek/bigdesk

查看:http://ip:9200/_plugin/bigdesk/#nodes

3.Marvel: 商业集群监控插件,同时可以辅助curator实现定时自动删除旧索引数据,更多高

级功能需购买license

https://www.elastic.co/guide/en/marvel/current/introduction.html

4.插件大全:

http://www.searchtech.pro/elasticsearch-plugins

3 Logstash

下载:

https://download.elastic.co/logstash/logstash/logstash-all-plugins-2.1.0.tar.gz

Logstash-input-plugins使用文档:

https://www.elastic.co/guide/en/logstash/current/input-plugins.html

Logstash-output-plugins使用文档:

https://www.elastic.co/guide/en/logstash/current/output-plugins.html

解压logstash-all-plugins-2.1.0.tar.gz,配置启动文件,进行不同模式处理。

3.1logstash-agent

功能:监控、过滤日志,也可称为shipper

配置日志采集,采集原始日志发送到kafka集群

logstash-agent.conf:

input {

#file-input

file {

path => "${log_path}"

#log type

type => “${log_type}”

}

}

output {

kafka {

#kafka brokers

bootstrap_servers => "${borker_list}"

#send to kafka topic

topic_id => "${topic_name}"

codec => plain {

format => "%{message}"

}

}

#stdout { codec => rubydebug }

}

注:

1.output使用kafka时,codec默认采用json格式发送,如显式配置了codec为plain时不

会传输“@version,type,tags”等input内的默认字段和add_field添加的字段,可通过format自定义传输格式:如:

codec 为json时传输:

{"message":"dfsd","@version":"1","@timestamp":"2015-12-07T07:18:01.124Z","type":"in","

IP":"%{[ip]}","host":"testqiuli.novalocal","tags":["_grokparsefailure"]}

codec为plain时传输:

2015-12-07T07:22:21.526Z testqiuli.novalocal tt

2.

3.2 logstash-indexer

功能:收集日志并将日志交给ElasticSearch 做搜索

配置统一订阅kafka topic中日志,收集汇总到es

logstash-index.conf:

input {

#kafka-input

kafka {

zk_connect => "${zk_nodes}"

type => “${log_type}”

#consumer thread num,must be less then the partitions of kafka topic

consumer_threads => 2

#topic_id => "${topic_name}"

#kafka topics to consume,more topics such as :topic1,topic2

white_list => "${topic_names}"

}

}

output {

elasticsearch { hosts => ["${es_IP}:${es_port}"] }

}

3.3 报警filter

配置filter,对日志中包含“error”或“exception”等关键字的异常错误进行过滤,并通过邮件报警到指定的邮件组

注:报警的output必须在output模块最后添加,否则匹配上的日志信息不会由其他output 收集了

配置logstash-warn.conf:

input {

#kafka-input

kafka {

zk_connect => "${zk_nodes}"

type => “${log_type}”

#topic_id => "${topic_name}"

#kafka topics to consume,more topics such as :topic1,topic2

white_list => "${topic_names}"

}

}

#warning filter

filter {

grok {

match => { "message" => [ "error", "exception" ] }

add_tag => ["tag_error"]

}

}

output {

elasticsearch { hosts => ["${es_IP}:${es_port}"] }

#warning output,ps:make sure at the end of output

if "tag_error" in [tags] {

exec {

command => "echo '%{@timestamp} %{source}: %{message}' | mail -s ${email_title} ${email_to}”

}

}

}

3.4多个input-output

同一个conf文件中可配置多个input和output,完成不同功能

logstash-all.conf:

input {

#file-input

file {

path => "${log_path}"

type => “${log_type}”

}

#kafka-input

kafka {

zk_connect => "${zk_nodes}"

#topic_id => "${topic_name}"

#kafka topics to consume,more topics such as :topic1,topic2

white_list => "${topic_names}"

}

}

filter {

grok {

match => { "message" => [ "error", "exception" ] }

add_tag => ["tag_error"]

}

}

output {

elasticsearch { hosts => ["${es_IP}:${es_port}"] }

kafka {

#kafka brokers

bootstrap_servers => "${borker_list}"

#send to kafka topic

topic_id => "${topic_name}"

codec => plain {

format => "%{message}"

}

}

#stdout { codec => rubydebug }

#warning output,ps:make sure at the end of output

if "tag_error" in [tags] {

exec {

command => "echo '%{@timestamp} %{source}: %{message}' | mail -s ${email_title} ${email_to}"

}

}

}

3.5启动logstash

配置好conf文件后,使用-f指定该文件启动:

./bin/logstash -f XXX.conf

后端启动:nohup ./bin/logstash -f XXX.conf &

3.6注意事项

1.logstash使用kafka作为input时,由于logstash-plugins-inputs-kafka插件连接zk时需对

本地hostname进行解析,因此需对本机配置host IP映射

2.logstash使用kafka作为output时,注意logstash创建的topic是否成功,多个logstash-index

节点时,配置kafka-output的group_id需一致(默认logstash)

3.报警的output必须在output模块最后添加,否则匹配上的日志信息不会由其他output

收集了

3.7Logstsh-beats

使用logstash-beats通过Topbeat、Packetbeat、Libbeat、Filebeat等,实现对系统资源(CPU,内存,硬盘,网络等)、http网络流量、数据库(pg、mysql、mongondb等)、文件系统、docker 的监控,同时可集成到kibana中,提供图表展示

https://www.elastic.co/products/beats

4 Kibana

下载:https://download.elastic.co/kibana/kibana/kibana-4.1.3-linux-x64.tar.gz 配置:config/kibana.yml

#配置kibana连接的es

elasticsearch.url

启动:nohup ./bin/kibana &

访问:http://kibanaIp:5601

Discover:

ELK日志采集监控方案

ELk日志采集分析系统搭建
ELk日志采集分析系统搭建_计算机软件及应用_IT/计算机_专业资料。采用fil...
ELK日志解决方案
ELK日志分析 ? 主要需求日志索引/检索/分类/排序,提供可视化界面 监控 分析重要日志 不同数据规模的横向扩展 可以做到准实时的日志分析 ? 设计思路 Logstash收集......
ELK日志解决方案ppt
ELK日志分析 ?主要需求 日志索引/检索/分类/排序,提供可视化界面 监控 分析重要日志 不同数据规模的横向扩展 可以做到准实时的日志分析 ?设计思路 Logstash收集应用......
培训ppt-ELK日志监控报警实战-张人杰-20181104
培训ppt-ELK日志监控报警实战-张人杰-20181104_互联网_IT/计算机_专业资料。公司培训ppt,讲解ELK环境的搭建和使用过程 ELK日志监控报警实战磁云科技张人杰 2018.10......
ELK日志分析平台在系统运维中的应用
本文提出了基于 ELK 实时进行大日志数据搜索的软件集 成方案。通过对 ELK、...工作就是要使用集中化的日志管理平台,将所有服务器上的日志收集 汇总进行监控、......
基于ELK的实时日志分析系统
基于ELK的实时日志分析系统主讲人:吴晓刚 2014.02.24 目录 CONTENTS 一:需求与挑战二:ELK日志分析方案架构 三:ELK主要特性 四:集群的管理与监控 五:数据看板Demo......
ELK日志解决方案PPT课件
传统日志分析和ELK日志分析 2020/3/25 . 3 你负责的服务怎么处理日志? ? 1.你怎么定义日志格式和内容? ? 2.你怎么收集日志? ? 3.你怎么分析日志? 2020/3......
基于ELK的电力信息监控日志审计系统实现
龙源期刊网 基于 ELK 的电力信息监控日志审计系统实 现 作者:刘思尧 李斌 来源:《电脑知识与技术》2016 年第 30 期 摘要:为电力......
基于ELK日志分析系统研究及应用
提出解析日志的规则和技巧,总结优化Elasticsearch集群性能的方法,在此基础之上搭建能够对海量日志进行实时采集和检索的分析监控系统.实验结果表明,该方案具有配置方式灵......
ELK日志分析系统
ELK日志分析系统_计算机软件及应用_IT/计算机_专业资料。ELK 日志分析系统一、ELK 日志分析系统介绍 1.1 传统的日志统计及分析方式日志主要包括系统日志、 应用程序......
ELK日志系统使用指南2018
3 KIBANA介绍 KIBANA日志查询及图表功能 KIBANA告警设置 ELK日志收集配置 4 KIBANA介绍 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一 起使用的......
ELK日志系统部署方案cycwll
ELK日志分析报告系统 47页 免费 ELK日志分析系统搭建 7页 1下载券 提供日志系统解决方案 2页 免费 ELK日志采集监控方案 10页 1下载券 开源实时日志分析ELK......
ELK日志分析系统搭建
elk套件是指elasticsearch、logstash、kibana三件套,它们可以组成一套日志分析和监控工具。本文说明安装过程和典型的配置过程 ELK 日志分析系统搭建 elk 套件是指 ......
ELK日志分析系统在河钢承钢的应用
本系统对公司的网络设备进行日志实时监控,使管理员能够随时掌握系统日志信息, 能及时收集网络硬件及应用软件的日志信息,展示分析,'并告警。 【关键词】ELK 日志分析......
基于大数据的ELK日志分析系统研究及应用
李志民 孙林檀 吴建军 张新征 来源:《科学与信息化》2019 年第 28 期摘要 基于 ELK日志分析系统研究分析是为了有效的解决当下物联网应用日志处理效率 低的......
基于大数据的ELK日志分析系统研究及应用
随着实时分析技术的不断发展和成熟应用,在日志领域出 现了新的分析系统-ELK,ELK实时日志分析平台主要运用了 Kiba-na(数据可视分析平台)、Logstash(日志采集工具)、......
基于Kubernetes的分布式ELK日志分析系统
ELK 能在大量日志中快速准确定位故障,适合应用级别的实时监控 和重要核心服务的报警。 ELK 是一套流行的一体化日志处理平台解决方案,提供日志收集、处理、存储、搜索......
基于ELK日志分析系统
551-65690963 65690964 基于 ELK日志分析系统 魏山林 (西南石油大学