ELK 一、什么是ELK
? ELK是Elasticsearch + Logstash + Kibana 这种架构的简写.
? 这是一种日志分析平台的架构.
如果没有ELK这样的日志分析平台,我们同样可以使用shell三剑客(grep、sed、awk)来分析日志。
这种方式略显原始而简陋,虽然也能应对大多数的场景,但是当日志量变大,分析频繁的时候,仅靠人工shell 的方式来查看分析日志,就很不方便。
尤其适当使用者,对于shell不是很擅长的情况下,一个操作简单,配置方便的日志分析平台,就显得很有必要了。
ELK是开源的,社区活跃,用户众多。
二、ELK常见的架构Elasticsearch + Logstash + Kibana 这是一种最简单的架构。这种架构,通过logstash收集日志,Elasticsearch分析日志,然后在Kibana(web界面)中展示。这种架构虽然是官网介绍里的方式,但是往往在生产中很少使用。
Elasticsearch + Logstash + filebeat + Kibana 与上一种架构相比,这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理,用来部署在客户端,优势是消耗非常少的资源(较logstash), 所以生产中,往往会采取这种架构方式,但是这种架构有一个缺点,当logstash出现故障, 会造成日志的丢失。
Elasticsearch + Logstash + filebeat + redis(也可以是其他中间件,比如kafka(集群化)) + Kibana 这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当Logstash出现故障,日志还是存在中间件中,当Logstash再次启动,则会读取中间件中积压的日志。目前我司使用的就是这种架构,我个人也比较推荐这种方式。
说明: logstash节点和elasticsearch节点可以根据日志量伸缩数量, filebeat部署在每台需要收集日志的服务器上。
三、简单ELK部署部署环境,关闭防火墙
安装elasticsearch-rpm包
加载系统服务.
更改elasticsearch主配置文件
创建数据存放路径并授权
启动查看是否成功开启
查看节点信息
查看集群状态 安装head插件安装phantomjs
安装可视化工具
修改主配置文件,启动head插件及服务
创建索引
apache主机上安装logstash,并启动
建立logstash软连接
logstash与elasticsearch做对接测试
登录主机做对接配置
vi /etc/logstash/conf.d/system.conf
input { file{ path => "/var/log/messages" type => "system" start_position => "beginning" } } output { elasticsearch { hosts => ["192.168.9.139:9200"] index => "system-%{+YYYY.MM.dd}" } } node1上安装kibana修改配置文件
配置索引 对接apache主机的日志文件 四、扩展在生产环境中,由于logstash消耗资源过多,我们一半采用filebeat轻量级日志收集代理,让logstash专注于日志格式化,又由于生产环境中日志量过大,logs他是一旦故障,会导致日志的丢失,所以要在filebeat与logstash中增加一个中间件redis或kafka来起一个缓存汇聚作用。如下图:
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |
标签: #elk日志分析系统 #ELK一什么是ELK