共计 3292 个字符,预计需要花费 9 分钟才能阅读完成。
ELK 平台介绍
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的 syslog,将所有服务器上的日志收集汇总。
集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用 grep、awk 和 wc 等 Linux 命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
开源实时日志分析 ELK 平台能够完美的解决我们上述的问题,ELK 由 ElasticSearch、Logstash 和 Kiabana 三个开源工具组成。官方网站:https://www.elastic.co/products
- Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。
- Logstash 是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
- Kibana 也是一个开源和免费的工具,它 Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
画了一个 ELK 工作的原理图:
如图:Logstash 收集 AppServer 产生的 Log,并存放到 ElasticSearch 集群中,而 Kibana 则从 ES 集群中查询数据生成图表,再返回给 Browser。
ELK 平台搭建
系统环境
System: CentOS release 6.6 (Final)
ElasticSearch: elasticsearch-5.3.0.tar.gz
Logstash: logstash-5.3.0.tar.gz
Kibana: kibana-5.3.0-linux-x86_64.tar.gz
Java: openjdk version”1.8.0_51″
ELK 官网下载:https://www.elastic.co/downloads/
ElasticSearch
配置 ElasticSearch:
useradd elk #ES 不允许 root 启动服务
tar -zxvf elasticsearch-5.3.0.tar.gz
cd elasticsearch-5.3.0
vi config/elasticsearch.yml
修改以下配置项:
cluster.name: es_cluster
node.name: node0
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: 172.16.160.122
http.port: 9200
其他的选项保持默认,然后启动 ES:
su elk
./bin/elasticsearch &
3、
补:启动异常:ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
问题原因:因为 Centos6 不支持 SecComp,而 ES5.2.1 默认 bootstrap.system_call_filter 为 true 进行检测,所以导致检测失败,失败后直接导致 ES 不能启动。
解决方法:在 elasticsearch.yml 中配置,注意要在 Memory 下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
可以看到,它跟其他的节点的传输端口为 9300,接受 HTTP 请求的端口为 9200。
Logstash
Logstash 的功能如下:
其实它就是一个 收集器 而已,我们需要为它指定 Input 和 Output(当然 Input 和 Output 可以为多个)。由于我们需要把 Java 代码中 Log4j 的日志输出到 ElasticSearch 中,因此这里的 Input 就是 Log4j,而 Output 就是 ElasticSearch。
配置 Logstash:
tar -zxvf logstash-5.3.0.tar.gz
cd logstash-5.3.0
编写配置文件 (名字和位置可以随意,这里我放在 config 目录下,取名为 log4j_to_es.conf):
mkdir config
vi config/a_es.conf
input {
file {
path => “/tmp/a.log” #创建的测试日志文件
}
}
filter {
}
output {
stdout {codec => rubydebug}
elasticsearch {
index => “test_%{+YYYY.MM.dd}” #索引信息
hosts => [“172.16.160.122:9200”]
}
}
./bin/logstash -f config/a_es.conf & #启动服务
如下图,证明通信无误
Kibana
配置 Kibana:
tar -zxvf kibana-4.3.0-linux-x86.tar.gz
cd kibana-4.3.0-linux-x86
vi config/kibana.yml
server.port: 5601
server.host: "172.16.160.122"
elasticsearch.url: http://172.16.160.122:9200
kibana.index: ".kibana.yml"
./bin/kibana
Elasticsearch1.7.3 升级到 2.4.2 过程笔记 http://www.linuxidc.com/Linux/2017-03/142137.htm
ElasticSearch 基础和集群搭建 http://www.linuxidc.com/Linux/2017-02/140491.htm
Elasticsearch 的安装,运行和基本配置 http://www.linuxidc.com/Linux/2016-07/133057.htm
使用 Elasticsearch + Logstash + Kibana 搭建日志集中分析平台实践 http://www.linuxidc.com/Linux/2015-12/126587.htm
Ubuntu 14.04 搭建 ELK 日志分析系统 (Elasticsearch+Logstash+Kibana) http://www.linuxidc.com/Linux/2016-06/132618.htm
Elasticsearch1.7 升级到 2.3 实践总结 http://www.linuxidc.com/Linux/2016-11/137282.htm
Ubuntu 14.04 中 Elasticsearch 集群配置 http://www.linuxidc.com/Linux/2017-01/139460.htm
Elasticsearch-5.0.0 移植到 Ubuntu 16.04 http://www.linuxidc.com/Linux/2017-01/139505.htm
ElasticSearch 的详细介绍 :请点这里
ElasticSearch 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-04/142772.htm