优化ELK(2)

装完elk跑起来之后,我的内心几乎是崩溃的,16G内存16核cpu还经常报错。

一、logstash和elasticsearch同时报错

logstash出现大量报错,可能是es占用heap太多,没有优化es导致的

retrying failed action with response code: 503 {:level=>:warn}

too many attempts at sending event. dropping: 2016-06-16T05:44:54.464Z %{host} %{message} {:level=>:error}

elasticsearch出现大量报错

too many open files

是这个值太小了"max_file_descriptors" : 2048,

# curl http://localhost:9200/_nodes/process\?pretty

{

"cluster_name" : "elasticsearch",

"nodes" : {

"ZLgPzMqBRoyDFvxoy27Lfg" : {

"name" : "Mass Master",

"transport_address" : "inet[/192.168.153.200:9301]",

"host" : "localhost",

"ip" : "127.0.0.1",

"version" : "1.6.0",

"build" : "cdd3ac4",

"http_address" : "inet[/192.168.153.200:9200]",

"process" : {

"refresh_interval_in_millis" : 1000,

"id" : 943,

"max_file_descriptors" : 2048,

"mlockall" : true

解决办法:

设置文件打开数

# ulimit -n 65535

设置开机自启动

# vi /etc/profile

在es启动文件里面添加,然后重新启动elasticsearch

# vi /home/elk/elasticsearch-1.6.0/bin/elasticsearch

ulimit -n 65535

# curl http://localhost:9200/_nodes/process\?pretty

{

"cluster_name" : "elasticsearch",

"nodes" : {

"_QXVsjL9QOGMD13Eb6t7Ag" : {

"name" : "Ocean",

"transport_address" : "inet[/192.168.153.200:9301]",

"host" : "localhost",

"ip" : "127.0.0.1",

"version" : "1.6.0",

"build" : "cdd3ac4",

"http_address" : "inet[/192.168.153.200:9200]",

"process" : {

"refresh_interval_in_millis" : 1000,

"id" : 1693,

"max_file_descriptors" : 65535,

"mlockall" : true

}

}

二、out of memory内存溢出

优化后的es配置文件内容:

# egrep -v ‘^$|^#‘ /home/elk/elasticsearch-1.6.0/config/elasticsearch.yml

bootstrap.mlockall: true

http.max_content_length: 2000mb

http.compression: true

index.cache.field.type: soft

index.cache.field.max_size: 50000

index.cache.field.expire: 10m

针对bootstrap.mlockall: true还要设置

# ulimit -l unlimited

# vi /etc/sysctl.conf

vm.max_map_count=262144

vm.swappiness = 1

# ulimit -a

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 127447

max locked memory       (kbytes, -l) unlimited

max memory size         (kbytes, -m) unlimited

open files                      (-n) 65535

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 10240

cpu time               (seconds, -t) unlimited

max user processes              (-u) 127447

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

# vi /etc/security/limits.d/90-nproc.conf

*          soft    nproc     320000

root       soft    nproc     unlimited

三、es状态是yellow

es中用三种颜色状态表示:green,yellow,red.

green:所有主分片和副本分片都可用

yellow:所有主分片可用,但不是所有副本分片都可用

red:不是所有的主分片都可用

# curl -XGET http://localhost:9200/_cluster/health\?pretty

{

"cluster_name" : "elasticsearch",

"status" : "yellow",

"timed_out" : false,

"number_of_nodes" : 2,

"number_of_data_nodes" : 1,

"active_primary_shards" : 161,

"active_shards" : 161,

"relocating_shards" : 0,

"initializing_shards" : 0,

"unassigned_shards" : 161,

"number_of_pending_tasks" : 0,

"number_of_in_flight_fetch" : 0

解决办法:建立elasticsearch集群(下篇博客写)

四、kibana not indexed错误 

https://rafaelmt.net/en/2015/09/01/kibana-tutorial/#refresh-fields

kibana的索引根据事件会经常更新,所以kibana图有时候会出现 not indexed的报错:

解决办法:

我们访问kibana,然后选择settings,点击indices,点击logstash-*。点击刷新的图标就ok了

时间: 2024-11-15 20:25:17

优化ELK(2)的相关文章

ELK 根据业务配置及优化

ELK部署完成后,出现了一些问题,需要调整及优化. 1.elasticsearch 调节堆内存大小: Elasticsearch默认设置的内存是1GB,对于业务较小,所以需要将机器一半内存分配给jvm 查看系统内存: # free -m            total       used       free     shared    buffers     cached Mem:         24028      20449       3579          0        

ELK重难点总结和整体优化配置

本文收录在Linux运维企业架构实战系列 做了几周的测试,踩了无数的坑,总结一下,全是干货,给大家分享~ 一.elk 实用知识点总结 1.编码转换问题(主要就是中文乱码) (1)input 中的codec => plain 转码 codec => plain { charset => "GB2312" } 将GB2312 的文本编码,转为UTF-8 的编码 (2)也可以在filebeat中实现编码的转换(推荐) filebeat.prospectors: - inpu

海量日志下的日志架构优化:filebeat+logstash+kafka+ELK

前言: 实验需求说明 在前面的日志收集中,都是使用的filebeat+ELK的日志架构.但是如果业务每天会产生海量的日志,就有可能引发logstash和elasticsearch的性能瓶颈问题.因此改善这一问题的方法就是filebeat+logstash+kafka+ELK,也就是将存储从elasticsearch转移给消息中间件,减少海量数据引起的宕机,降低elasticsearch的压力,这里的elasticsearch主要进行数据的分析处理,然后交给kibana进行界面展示 实验架构图:

性能优化分析Spring Cloud ELK+kafka日志分析平台

一.概述 在笔者的上一篇博客介绍了Spring Cloud ELK+kafka日志分析平台的搭建,http://xuyangyang.club/articles/2018/05/24/1527176074152.html,但是笔者在测试环境中发现,在logstash采用了grok插件去处理日志埋点和解析的时候发现了高资源占用,在阿里云8核16G的服务器部署后,测试环境大概每秒不超过几百条的日志的解析下竟然CPU占用高达95%左右,笔者分析了其中的原因,首先由于几个服务的日志格式相关配置还没有落地

ELK集中日志管理系统安装部署

一.简介 1.ELK介绍 ELK Stack 是 Elasticsearch.Logstash.Kibana 三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称. ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择. ELK由三个组建构成: Elasticsearch,负责数据的索引和存储 Logstash ,负责日志的采集和格式化 Kibana,负责前端统计的展示 大致的

亿级规模的Elasticsearch优化实战

本次分享主要包含两个方面的实战经验:索引性能和查询性能. 一. 索引性能(Index Performance) 首先要考虑的是,索引性能是否有必要做优化? 索引速度提高与否?主要是看瓶颈在什么地方,若是 Read DB(产生DOC)的速度比较慢,那瓶颈不在 ElasticSearch 时,优化就没那么大的动力.实际上 Elasticsearch 的索引速度还是非常快的. 我们有一次遇到 Elasticsearch 升级后索引速度很慢,查下来是新版 IK 分词的问题,修改分词插件后得到解决. 如果

离线部署ELK+kafka日志管理系统

1.简介 对于日志来说,最常见的需求就是收集.查询.显示,正对应logstash.elasticsearch.kibana的功能. ELK日志系统在系统中,主要可解决的问题: 基于日志的数据挖掘 问题排查,上线检查 根据关键字查询日志详情 异常数据自动触发消息通知 服务器监控,应用监控,Bug管理 统计分析,比如接口的调用次数.执行时间.成功率等 性能分析,用户行为分析,安全漏洞分析,时间管理 Logstash: Logstash是一个用来搜集.分析.过滤日志的工具.它支持几乎任何类型的日志,包

Heka–>Elasticsearch 索引数据过程的优化

Heka 的参数配置跟Elasticsearch的参数没有关系,Heka只负责按照配置发送数据,所以索引的优化主要在 Elaticsearch端来完成. 下面是Elasticsearch的一些相关概念和知识点: 一些概念 在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统关系型数据库: Relational DB -> Databases -> Tables -> Rows -> Columns

开源分布式搜索平台ELK+Redis+Syslog-ng实现日志实时搜索

logstash + elasticsearch + Kibana+Redis+Syslog-ng ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进行数据索引. logstash是一个应用程序日志.事件的传输.处理.管理和搜索的平台.你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计.其实logstash是可以被别的替换,比如常见