写点什么

搭建云上日志收集分析系统(二)

  • 2019-09-26
  • 本文字数:4581 字

    阅读完需:约 15 分钟

搭建云上日志收集分析系统(二)

背景说明

应用系统的日志收集与分析工作对运维来说至关重要。常见的系统解决方案中开源技术栈 ELK(Elastic Stack: Elasticsearch, Logstash, Kibana)是当前比较流行的选择。下面我们会讨论另一种构建于云原生设计的类似于 ELK 的解决方案 EKK(Amazon Elasticsearch Service, Amazon Kinesis, and Kibana)。


EKK 的优势在于组件是 AWS 托管服务,不必自己安装、运维,并且与 AWS 的其它服务轻松集成,可以很轻松的部署一套可靠、可扩展、安全、容错以及解耦和基于事件的解决方案。


传统的 Elasticsearch 中,日志数据的不断膨胀,对数据的生命周期管理越来越重要(应对此需求的新功能 ILM(index lifecycle management)在 Elasticsearch 7.0 中闪亮登场)。本文不介绍 ILM,介绍另一种解决方案:使用 Lambda 配合实现数据的轮换。

配置需要收集日志服务器

1. 在 EC2 服务中为需要收集日志的 EC2 分配角色

分配角色



Linux 日志环境

安装 Agent


$sudo yum install –y aws-kinesis-agent


或者


$sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm


打开并编辑配置文件:/etc/aws-kinesis/agent.json


{
"cloudwatch.emitMetrics": true,
"firehose.endpoint": "firehose.cn-north-1.amazonaws.com.cn",
"flows": [
{
"filePattern": "/var/log/httpd/access_log*",
"deliveryStream": "EKK-LogFirehose-apachelog",
"dataProcessingOptions": [
{
"optionName": "LOGTOJSON",
"logFormat": "COMMONAPACHELOG"
}
]


}
]
}
$sudo service aws-kinesis-agent start
$sudo chkconfig aws-kinesis-agent on
复制代码

2. Windows 日志环境

下载安装 Agent


https://s3-us-west-2.amazonaws.com/kinesis-agent-windows/downloads/AWSKinesisTap.1.1.168.1.msi


C:\Program Files\Amazon\AWSKinesisTap\appsettings.json


{
"Sources": [
{
"Id": "PerformanceCounter",
"SourceType": "WindowsPerformanceCounterSource",
"Categories": [
{
"Category": "Server",
"Counters": [
"Files Open",
"Logon Total"
]
},
{
"Category": "LogicalDisk",
"Instances": "*",
"Counters": [
"% Free Space",
{
"Counter": "Disk Reads/sec",
"Unit": "Count/Second"
}
]
}
],
}
],
"Sinks": [
{
"Namespace": "MyServiceMetrics",
"Region": "cn-north-1",
"Id": "CloudWatchSink",
"SinkType": "CloudWatch"
},
{
"Id": "WindowsLogKinesisFirehoseSink",
"SinkType": "KinesisFirehose",
"StreamName": "EKK-LogFirehose-iislog",
"Region": "cn-north-1",
"QueueType": "file"
}
],
"Pipes": [
{
"Id": "PerformanceCounterToCloudWatch",
"SourceRef": "PerformanceCounter",
"SinkRef": "WindowsLogKinesisFirehoseSink"
}
]
}
复制代码


参考: https://docs.aws.amazon.com/zh_cn/kinesis-agent-windows/latest/userguide/getting-started.html

【可选】模拟一个 Apache Log 环境为后面的测试验证

在 EC2 服务中创建一个 Linux EC2









chmod 400 EKK-test.pem


ssh -i EKK-test.pem ec2-user@52.81.85.86

安装 Kinesis Agent

$sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

配置 Agent

$sudo vi /etc/aws-kinesis/agent.json


{
"cloudwatch.emitMetrics": true,
"firehose.endpoint": "firehose.cn-north-1.amazonaws.com.cn",
"flows": [
{
"filePattern": "/var/log/httpd/access_log*",
"deliveryStream": "EKK-LogFirehose-apachelog",
"dataProcessingOptions": [
{
"optionName": "LOGTOJSON",
"logFormat": "COMMONAPACHELOG"
}
]


}
]
}
复制代码


$sudo service aws-kinesis-agent start


$sudo chkconfig aws-kinesis-agent on


$sudo mkdir /var/log/httpd

安装 Fake 日志生成程序

参考 https://github.com/kiritbasu/Fake-Apache-Log-Generator


$sudo yum install -y git


$git clone https://github.com/kiritbasu/Fake-Apache-Log-Generator.git


$sudo yum install python-pip -y


$cd Fake-Apache-Log-Generator/


$sudo pip install -r requirements.txt


产生日志脚本


$cd ~


$sudo vi test.sh


#!/bin/bash# chkconfig: 2345 10 90cd /var/log/httpd/while truedosudo python /home/ec2-user/Fake-Apache-Log-Generator/apache-fake-log-gen.py -n 100 -o LOGsleep 10done


后台运行脚本:


$sudo sh ./test.sh &


Fake 日志产生在目录 /var/log/httpd 中。

【可选】可使用 Systems Manager(SSM)安装 Agent

1. 为 EC2 的 Role EKK-EC2 附加 SSM 需要的权限

2. 使用 SSM 服务


Linux 可使用 AWS-RunShellScript



https://s3.cn-north-1.amazonaws.com.cn/awschinablog/picture replacement4.jpg)


运行 Shell 的目标 EC2 可直接选择,或者按 Tag 筛选





Windows 类似,可使用 AWS-RunPowerShellScript 运行 powershell script


https://s3.cn-north-1.amazonaws.com.cn/awschinablog/Amazon Elasticsearch Service, Amazon Kinesis, and Kibana39.jpg">



作者简介


陈朕,AWS 解决方案架构师,负责基于 AWS 云计算方案架构的咨询和设计,在国内推广 AWS 云平台技术和各种解决方案。十余年分布式应用、大数据的分布式处理经验。


本文转载自 AWS 技术博客


原文链接:


https://amazonaws-china.com/cn/blogs/china/ekk-amazon-elasticsearch-service-amazon-kinesis-and-kibana/


2019-09-26 16:291458
用户头像

发布了 1845 篇内容, 共 110.6 次阅读, 收获喜欢 77 次。

关注

评论

发布
暂无评论
发现更多内容

一文带你快速入门【哈希表】

Fire_Shield

数据结构 哈希表 9月月更

「趣学前端」Taro实践+踩坑记录第一期

叶一一

taro 前端 框架 9月月更

Redis的事件

急需上岸的小谢

9月月更

网络入侵检测系统之Suricata(十)--ICMP实现详解

于顾而言

网络安全 suricata

MyBatisPlus(四、代码生成器)

Mybatis-Plus 代码生成 9月月更

「趣学前端」自己动手丰衣足食的TS项目开发

叶一一

typescript 前端 ts 9月月更

网络入侵检测系统之Suricata(十二)--TCP重组优化

于顾而言

网络安全 suricata

[极致用户体验] 微信设置大字号后,iOS加载网页时闪动怎么办?

HullQin

CSS JavaScript html 前端 9月月更

jQuery之实战

楠羽

笔记 JQuery框架 9月月更

大数据调度平台Airflow(一):什么是Airflow

Lansonli

9月月更

Flutter - Google 开源的移动 UI 框架

陈橘又青

9月月更

SAP UI5 Form 表单 Column Layout 下的 Column 个数分配问题

汪子熙

JavaScript Fiori SAP UI5 ui5 9月月更

Java进阶(二十七)使用Dom4j解析XML文件

No Silver Bullet

Java xml 9月月更 DOM4J

redis对应的数据类型及其底层原理

知识浅谈

redis 底层原理 9月月更

架构师的十八般武艺:架构方法论

agnostic

TOGAF Zachman

网络入侵检测系统之Suricata(六)--规则加载模块代码详解

于顾而言

网络安全 suricata

[Maven进阶]聚合和继承

十八岁讨厌编程

maven 后端开发 9月月更

【算法实践】分块查找知多少?手把手带你实现分块查找

迷彩

数据结构 算法 9月月更 分块查找 查找算法

网络入侵检测系统之Suricata(十四)--匹配流程

于顾而言

网络安全 suricata

C++学习---cstdio的源码学习分析03-文件重命名函数rename

桑榆

c++ 源码阅读 9月月更

网络入侵检测系统之Suricata(八)--Option实现详解

于顾而言

网络安全 suricata

网络入侵检测系统之Suricata(九)--Storage实现详解

于顾而言

网络安全 suricata

网络入侵检测系统之Suricata(十一)--TCP重组实现详解

于顾而言

网络安全 suricata

网络入侵检测系统之Suricata(十六)--类suricata/snort规则自动维护工具

于顾而言

网络安全 suricata

[Maven进阶]多环境配置与应用

十八岁讨厌编程

maven 后端开发 9月月更

[Maven进阶]属性与版本管理

十八岁讨厌编程

maven 后端开发 9月月更

网络入侵检测系统之Suricata(十三)--网络安全威胁及攻击手段总览

于顾而言

网络安全 suricata

4 张图了解 CI/CD 基础~

掘金安东尼

前端 9月月更

网络入侵检测系统之Suricata(七)--DDOS流量检测模型

于顾而言

网络安全 suricata

网络入侵检测系统之Suricata(十五)--IPOnly/Radix Tree详解

于顾而言

网络安全 suricata

王者荣耀商城异地多活架构设计

张立奎

搭建云上日志收集分析系统(二)_服务革新_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章