您的位置:首页 > 其它

集中式日志简介及其使用方法

2018-01-05 09:46 357 查看
日志通常是我们在定位系统或产品出现问题并解决问题的最直接有效的方法,但是随着云主机的出现,日志往往会分布在不同的服务器上,这样对找日志造成了一定困难,也有一些不安全因素,因为通常开发人员是不能直接进入生产环境的服务器的。这种权限只有运维才有。下面我就站着巨人的肩膀上,再次特别感谢写这篇文字的大神。


1、集中式日志

日志主要包括系统日志、应用程序日志(业务日志)以及安全日志。系统运维和开发人员通过日志了解服务器软硬件信息、查阅日志信息以及分析错误发生的原因等。

随着系统的日益复杂,大数据时代的来临,越来越容易就涉及到几十甚至上百台的服务器,因此迫切需要有一套针对日志的集中式管理平台产品。我们通过ELK实现了集中式日志管理平台,该平台统一涵盖了分布式日志收集、检索、统计、分析以及对日志信息的Web管理等集中化管控。


1.1   ELK简介

ELK是Elasticsearch、Logstash、Kibana的简称,这三套开源工具组合起来能无缝搭建一套强大的集中式日志管理平台。
Elasticsearch是个开源的分布式搜索引擎,提供搜索、分析、存储数据三大功能。它的特点有:分布式、自动发现、索引自动分片、索引副本机制、RESTful 风格接口、多数据源以及自动搜索负载等。
Logstash是一个开源的用来搜集、解析、过滤日志的工具。支持几乎任何类型的日志,包括系统日志、业务日志和安全日志。它可以从许多来源接收日志,这些来源主要包括 Syslog、消息传递(例如 RabbitMQ)和Filebeat;能够以多种方式输出数据,这些方式主要包括电子邮件、WebSockets和Elasticsearch。
Kibana是一个基于Web的友好图形界面,用于搜索、分析和可视化存储在 Elasticsearch中的数据。它利用Elasticsearch的RESTful接口来检索数据,不仅允许用户定制仪表板视图,还允许他们以特殊的方式查询、汇总和过滤数据。


2、集中式日志的架构

将选择采用Beats+ELK的形式来组合搭建集中式日志管理的架构,如下图1所示:




3、配置方法

本节阅读对象主要针对运维人员。


3.1   Elasticsearch

Elasticsearch部署完成后,需要更改
elasticsearch
.yml配置文件中的主要属性:cluster.name、node.name、network.host、discovery.zen.ping.unicast.hosts。其中,当部署Elasticsearch时是以集群模式部署的,那么discovery.zen.ping.unicast.hosts这个属性才会需要被配置。


3.2   Logstash

通过配置filebeat-pipeline.conf文件中的Input、Filter(可选)和Output来完成对数据的采集、过滤和输出,如下图2所示:



图2、Logstash配置



图3、启用Logstash服务




3.3   Kibana

通过更改kibana.yml配置文件内容,用来连接正确的Elasticsearch服务地址,通常只需要配置elasticsearch.url属性即可,请见图4。配置完成后,执行【bin/kibana &】命令启用Kibana服务,请见图5。最后就可以在浏览器中打开Kibana管理页面来查看日志。

3.4   Filebeat

filebeat.yml配置文件内容主要包含Filebeat、Output、Shipper(可选)、Logging(可选)四大部分,其中Filebeat主要定义监控的日志文件信息,Output主要配置日志数据的输出目标。

filebeat.yml文件中,主要属性值的命名规范如下:

1、fields.AppID的命名规范是{AppID}。

2、fields.AppName的命名规范是{产品名称}.{名称}。

3、针对index属性需要注意的是:索引(index)所定义的值是{名称},但英文字母必须全部小写,且不能以下划线开头,也不能包含逗号。

filebeat.yml的配置示例如下图6所示:



日志文件存放在哪台服务器中,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 -ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1。

3、之后可以在PowerShell窗口中通过以下几个命令来查看、启用以及停止filebeat服务:
      查看filebeat服务状态:Get-Service filebeat
      启动filebeat服务:Start-Service filebeat
      停止filebeat服务:Stop-Service filebeat


4 、使用方法

本节阅读对象主要针对开发人员。


4.1 Log4Net本地日志

1、日志存放路径规范:{盘符}:\Log4Net\{xxx}\,其中AppID即为我们所做项目的六位编码。例如:D:\Log4Net\110407\。

2、log4net.config配置内容:

注意了:

*maximumFileSize设置为10MB;请给countDirection设置为大于-1的整数;maxSizeRollBackups设置为10。

*日志文件内容规范:日志文件中的每条日志内容要求是“记录时间 线程 日志级别 出错类 日志消息”。


4.2  日志查询

基于Kibana查询日志,主要通过以下几个步骤实现:

1、选择业务索引库。

2、选择日期范围。

3、输入待查找的内容实现精确查询,也可以通过输入*实现模糊查询。

4、点击每条日志的展开图标,可以查看该条日志的详细信息。

5、在Kibana界面的左侧区域,自上而下依次是索引库选择框、选中字段集合列表(Selected Fields)、可用字段集合列表(Available Fields)。通过添加可用字段到选中字段集合列表中来改变Kibana右侧的日志表格呈现。

请参考如下图7所示:




5、日志记录保存期限

      本地日志文件保存期限:会保存3个月,然后压缩拷贝到其它地方后,再保存2年。

      存在Elasticsearch里的日志记录保存期限:国内的日志保存1个月,其他业务组的日志记录保存15天。


6、参考资料

ELK官网:https://www.elastic.co/
正则表达式配置说明:https://www.elastic.co/guide/en/beats/filebeat/current/regexp-support.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: