ELK安装文档及相关优化

简介:

前言:随着硬件成本的不断低廉,我们可以存储更多数据内容,也会对各数据加以利用,其中一项很重要的数据内容便是日志文件,无论是访问日志还是系统日志或是应用日志,都显得十分重要,而怎么加以利用一直是一个难题,本文就着重于ELK三套件的搭建,是比较流行或者说可靠的日志分析组件,值得注意的说,本文暂时只考虑单机Elasticsearch,并且为了作为演示,就linux的系统日志收集作为演示。


版本说明:

ElasticSearch  1.7.1

Kibana      4..1

Logstash     1.5.2

JAVA      jdk-7u76

注: 最新的上面不一定是最新的版本,不同的版本之间可能有兼容问题,而上面的组合是本人已经验证过的了。


首先放一张图镇镇楼

wKiom1Z0_A7zXU6PAAHD1ftur0k764.png

强调:不要用IE浏览Kibana!!!

ELK下载地址:https://www.elastic.co/downloads

JAVA环境的安装就不演示了!!!(推荐使用jdk-7u76-linux-x64.gz)

1
2
3
tar  zxvf elasticsearch-1.7.1. tar .gz
tar  zxvf kibana-4.1.1-linux-x64. tar .gz
tar  zxvf logstash-1.5.2. tar .gz

 

值得注意的是,你可以通过elastic提供的rpm包直接安装,但是那对于一个运维人员太没挑战性了~~再者,对ELK的认识实在不够深刻。


下载elasticsearch-servicewrapper(是一个elasticsearch的启动脚本) 

#wget https://github.com/elastic/elasticsearch-servicewrapper/archive/master.zip

###通过这个脚本可以更简单执行Elasticsearch服务启动关闭等命令

其中包括

Console 在前台启动

Start     在后台启动

Stop     关闭

Install   装到启动项里面

Remove 移除卸载


开始安装

1
2
3
4
5
mv  elasticsearch-1.7.1  /data/elasticsearch
unzip master.zip
mv  elasticsearch-servicewrapper-master/* /data/elasticsearch/bin/
mv  logstash-1.5.2  /data/logstash
mv  kibana-4.1.1  /data/kibana


  ELK三套件都是依赖JAVA环境并不需要编译安装,所以安装其实非常简单,只是有版本兼容问题所以部分人总是装不上,再者ELK需要相关优化,不然就会总是抛出异常。

 ELK中的E,elasticsearch一个全文搜索引擎,存储着收集过来的所有数据并支持集群模式,你只用真正的会用的时候你才会体会到它的异常强大,虽然笔者也是刚刚深入,但是又一次通过Python调用API查询自安装使用至今,查询结果大于五万条数据,嗖的一下就返回,没有任何延迟,并且是结果聚合的数据,由此可见一斑,而且是单机版的。


配置elasticsearch

1
vi /data/elasticsearch/config/elasticsearch .yml

 

增加下面两行

1
2
http.cors.enabled: true
http.cors.allow-origin:http: //ip (本机IP)


启动Elasticsearch

1
/data/elasticsearch/bin/service/elasticsearch  start


本地测试Elasticsearch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
curl -X GET http: //localhost :9200/
{
   "status"  : 200,
   "name"  "Jack Flag" ,
   "cluster_name"  : "elasticsearch" ,
   "version"  : {
     "number"  "1.7.1" ,
     "build_hash"  : "927caff6f05403e936c20bf4529f144f0c89fd8c" ,
     "build_timestamp"  "2015-07-16T14:11:12Z" ,
     "build_snapshot"  false ,
     "lucene_version"  : "4.10.2"
   },
   "tagline"  "You Know, forSearch"
}

 

  ELK中的L指Logstash,是一个日志收集应用,本文主要用来收集系统日志,你当然也可以用来解析各种日志,如Tomcat,Nginx,MongoDB等相关应用日志,此文档作为安装文档就不做演示了。

    

配置logstash

1
2
mkdir  /data/logstash/conf/
vi  /data/logstash/conf/sys .conf

input {

    syslog{

    port => "514"

    type => "syslog"

  }

}

   

output {

  elasticsearch {

    host => "127.0.0.1"

  }

}


  上面的信息是说,以syslog作为输入,监听514端口,Type为syslog,将接收的信息输出到本机的elasticsearch。

  如果你执行/data/logstash/bin/logstash -f /data/logstash/conf/sys.conf 

你会发现本机监听514端口,但是没有用,因为没有配置任何机器的rsyslog,其他机器怎么会发信息过来~

 所以我们配置一下,需要收集系统日志的主机的rsyslog

1
2
3
4
  yum -y  install  rsyslog
  vi  /etc/rsyslog .conf
  ##加入下面一行,ip填日志服务器的IP
  *.* @@ip:514


当你重启被收集日志主机的rsyslog,该主机就会往日志服务器的514端口以syslog的格式发送系统日志了。


因为是源码安装的,所以可能需要用& 或者nohup 或者自己写的启动脚本将logstash服务放到后台,这里推荐supverisor,后面的kibana也通过supervisor放到后台。


#修改kibana配置文件

1
2
# vi/data/kibana/config/kibana.yml
port: 80    ##改为80(默认监听5601端口)


 

然后启动kibana

1
/data/kibana/bin/kibana > /dev/null  2>&1 &


但是通过&或者nohup实在太不优雅了,我们使用supervisor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
yum -y  install  supervisor
 
[program:kibana]
command = /data/kibana/bin/kibana
autorestart =  true
redirect =  true
stderr_logfile =  /var/log/kibana/kibana .log
startsecs = 3
 
[program:logstash]
command = /data/logstash/bin/logstash  -f  /data/logstash/conf/logstash .conf -l  /data/logstash/logstash_debug .log
autorestart =  true
redirect =  true
stderr_logfile =  /var/log/logstash/logstash .log
startsecs = 3

至于supervisord的详细配置,请参考:http://youerning.blog.51cto.com/10513771/1714627


最后启动supervisord即可。


现在你就可以访问日志服务器了。


第一次登陆,应该是下面的页面

wKioL1Z1Boyw5YTjAAEM8FGZmVs894.png

因为我们没有创建索引,所以他会提示我们创建索引,点击create即可,如果你没有配置发送系统日志的rsyslog你会发现,输入框是红色,不能create,这是因为elasticsearch没有任何内容。


当然可以手工的创建一条信息。

创建一个配置文件

1
vi  hello.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
input {
   stdin {
     type  =>  "human"
   }
}
  
output {
   stdout {
     codec => rubydebug
   }
  
   elasticsearch {
     host =>  "127.0.0.1"
   }
}


/data/logstash/bin/logstash -f hello.conf

在提示Completed之后,随便输入一条信息即可。


上面安装完成后,你会发现kibana总是会出现红色提示框"shards faild",所以需要相关优化


关于elasticsearch的优化

配置文件/data/elasticsearch/config/elasticsearch.yml增加一面内容


# Search pool

threadpool.search.type: fixed

threadpool.search.size: 20

threadpool.search.queue_size: 10000

 

系统优化

vi /etc/security/limits.conf 

1
2
3
4
elasticsearch soft  nofile 32000
elasticsearch hard  nofile 32000
root          hard nofile 32000
root          soft nofile  32000

 

后记:好吧,安装文档就到这里吧,关于Elasticsearch的API调用(主要通过Python)以及Kibana的使用在以后的内容文章会说到



本文转自 youerning 51CTO博客,原文链接:http://blog.51cto.com/youerning/1726338


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
消息中间件 存储 运维
一文吃透企业级elk技术栈:1. 基础优化
一文吃透企业级elk技术栈:1. 基础优化
|
存储 Kubernetes 监控
在K8S中,ELK是如何实现及如何优化的ES?
在K8S中,ELK是如何实现及如何优化的ES?
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
3908 0
|
11月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
1423 64
搭建ELK日志收集,保姆级教程
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
1023 90
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
存储 监控 安全
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志
|
运维 监控 Ubuntu
一键启动日志魔法:揭秘ELK自动安装脚本的神秘面纱!
【8月更文挑战第9天】在数据驱动时代,高效处理日志至关重要。ELK Stack(Elasticsearch、Logstash、Kibana)是强大的日志分析工具,但其复杂的安装配置常让初学者望而却步。本文介绍如何编写ELK自动安装脚本,简化部署流程。脚本适用于Ubuntu系统,自动完成ELK下载、安装及基本配置,包括依赖项安装、服务启动及自启设置,极大降低了使用门槛,助力运维人员和开发者轻松构建日志分析平台。
610 6