
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在监督和分析系统软件的运行过程的时候,一般都是通过分析系统的运行日志来进行数据分析整理的。所以,今天我们就一起来了解和学习一下这些日志系统应该如何使用。
一、集中式日志
日志可分为系统日志、应用日志以及业务日志,系统日志给运维人员使用,应用日志给研发人员使用,业务日志给业务操作人员使用。我们这里主要讲解应用日志,通过应用日志来了解应用的信息和状态,以及分析应用错误发生的原因等。
随着系统的日益复杂,大数据时代的来临,需要几十甚至上百台的服务器是常有的事,因此迫切需要有一套针对日志、且能够集中式管理的产品。ELK就实现了集中式日志管理平台,该平台统一涵盖了分布式日志收集、检索、统计、分析以及对日志信息的Web管理等集中化管控。
1.1、ELK简介
ELK是Elasticsearch、Logstash、Kibana的简称,这三套开源工具组合起来能搭建一套强大的集中式日志管理平台。
Elasticsearch是个开源的分布式搜索引擎,提供搜索、分析、存储数据三大功能。它的特点有:分布式、自动发现、索引自动分片、索引副本机制、RESTful风格接口、多数据源以及自动搜索负载等。
Logstash是一个开源的用来收集、解析、过滤日志的工具。支持几乎任何类型的日志,包括系统日志、业务日志和安全日志。它可以从许多来源接收日志,这些来源主要包括Syslog、消息传递(例如RabbitMQ)和Filebeat;能够以多种方式输出数据,这些方式主要包括电子邮件、WebSockets和Elasticsearch。
Kibana是一个基于Web的友好图形界面,用于搜索、分析和可视化存储在Elasticsearch中的数据。它利用Elasticsearch的RESTful接口来检索数据,不仅允许用户定制仪表板视图,还允许他们以特殊的方式查询、汇总和过滤数据。
1.2、ELK的架构
出于性能的考虑,选择采用了Beats+EK的形式来组合搭建集中式日志管理系统。
二、配置方法
2.1、Elasticsearch
Elasticsearch部署完成后,需要更改elasticsearch.yml配置文件中的主要属性:cluster.name、node.name、network.host、discovery.zen.ping.unicast.hosts。其中,当部署Elasticsearch时是以集群模式部署的,那么discovery.zen.ping.unicast.hosts这个属性才会需要被配置。
2.2、Logstash
通过配置filebeat-pipeline.conf文件中的Input、Filter(可选)和Output来完成对数据的采集、过滤和输出。
然后以filebeat-pipline.conf文件启用Logstash服务。
备注:由于采用的是Beats+EK这个方案来实现集中式日志管理,所以不需要配Logstash。
2.3、Kibana
通过更改kibana.yml配置文件内容,用来连接正确的Elasticsearch服务地址,通常只需要配置elasticsearch.url属性即可。配置完成后,执行【bin/kibana&】命令启用Kibana服务。最后就可以在浏览器中打开Kibana管理页面来查看日志。
2.4、Filebeat
filebeat.yml配置文件内容主要包含Filebeat、Output、Shipper(可选)、Logging(可选)四大部分,其中Filebeat主要定义监控的日志文件信息,Output主要配置日志数据的输出目标。
filebeat.yml文件中,主要属性值的命名规范如下:
fields.AppID的命名规范是{AppID}。
fields.AppName的命名规范是{产品线英文名称}.{项目英文名称}(如果项目英文名称由2个或2个以上英文单词组成,则单词之间请用.分隔)。
针对index属性需要注意的是:索引(index)所定义的值是{产品线英文名称},但英文字母必须全部小写,且不能以下划线开头,也不能包含逗号。
日志文件存放在哪台服务器中,filebeat服务就部署在哪台服务器中。在windows操作系统上启用filebeat服务的步骤:
1、在windows下开启搜索,输入powershell,打开powershell所在文件位置,右键powershell.exe以管理员身份运行,进入PowerShell窗口。
或者以管理员身份启动cmd.exe,输入命令powershell,进入PowerShell窗口。
注意:
请务必确保以管理员身份打开PowerShell窗口,否则的话在以下第2步中运行.ps1脚本时,就会报没有权限创建filebeat服务的错误:
2、导向到filebeat执行程序所在目录,例如:cd'E:\ELK\filebeat-1.3.0-windows',然后执行命令:powershell.exe-ExecutionPolicyUnRestricted-File.\install-service-filebeat.ps1。
3、之后可以在PowerShell窗口中通过以下几个命令来查看、启用以及停止filebeat服务:
查看filebeat服务状态:Get-Servicefilebeat
启动filebeat服务:Start-Servicefilebeat
停止filebeat服务:Stop-Servicefilebeat
作者:张辉清、杨丽
来源:infoq
【免责声明】:本内容转载于网络,转载目的在于传递最新信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。