来源:http://blog.csdn.net/liubenlong007/article/details/53782955
ELK2参考:http://blog.csdn.net/liubenlong007/article/details/53782961
基本环境
Linux系统
- elasticsearch-2.4.2.tar.gz
- logstash-2.4.1.tar.gz
- kibana-4.6.3-linux-x86_64.tar.gz
基本概念
本节内容摘自http://baidu.blog.51cto.com/71938/1676798
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和 效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。
集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站:https://www.elastic.co/products
- Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
- Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。
- kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、 分析和搜索重要数据日志。
工作原理如下如所示:
在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到logstash indexer,logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
elasticsearch集群安装
下载地址
https://www.elastic.co/products/elasticsearch
解压
- 1
- 2
- 3
- 1
- 2
- 3
安装head插件
- 1
- 1
配置config
这里集群包含3台服务器
elasticsearch-2.4.2_1的配置
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
elasticsearch-2.4.2_21的配置(只写了不同的部分)
- 1
- 2
- 3
- 1
- 2
- 3
elasticsearch-2.4.2_3的配置(只写了不同的部分)
- 1
- 2
- 3
- 1
- 2
- 3
后台启动3台服务器:
- 1
- 1
注意要讲elasticsearch所有文件用户赋给elasticsearch用户,否则没权限。
这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑。
chown -R elasticsearch elasticsearch2.4.0
如果出现
curl 127.0.0.1:9211
可以正常访问,curl 本机IP地址:9211
不能访问的问题,则需要在conf文件中配置network.host: 你的服务器ip地址
。参考:ss -l
命令
安装logstash
修改配置文件
- 读取文件方式
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 说明:multiline的作用是为了处理错误日志的,使得错误堆栈信息作为一条记录显示。这里可能导致无法创建多线程,只能以单线程运行,解决办法参考我的另一篇文章ELK 之 nginx日志分析
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 还可以直接与log4j配合使用,直接将日志输出到logstash中
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
启动服务
- 1
- 1
安装kibana
修改配置
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
后台启动
- 1
- 1
但是nohup在使用时还需要注意一些问题:
1、当输入nohup COMMAND & 命令后,需要按任意键返回到shell窗口
2、退出当前登录窗口用exit命令,不要直接点击窗口上的叉来关闭
配置索引
进入kibana,配置好在logstash中配置的索引
定时清理ES索引数据
- 编写清理脚本
参考资料 elasticsearch的索引自动清理及自定义清理
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
文件名为: es-index-clear.sh
- 设置定时任务
输入crontab -e,出现vi编辑页面
输入以下命令,每天两点10分执行sh文件:
- 1
- 1
保存退出即可。
到此为止,ELK环境搭建完毕。
后续会继续写ELK的具体使用教程,敬请期待
参考资料
- ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
- Elasticsearch部分节点不能发现集群(脑裂)问题处理
- ElasticSearch集群服务器配置
- ElasticSearch教程(三)————ElasticSearch集群搭建
- 源实时日志分析ELK平台部署
- logstash日志分析的配置和使用