写点什么

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

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

    阅读完需:约 1 分钟

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

背景说明

应用系统的日志收集与分析工作对运维来说至关重要。常见的系统解决方案中开源技术栈 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:291218
用户头像

发布了 1573 篇内容, 共 68.1 次阅读, 收获喜欢 67 次。

关注

评论

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

谈谈我的云笔记使用之路

读钓

学习 个人成长 写作

数据与广告系列二:计算广告和推荐系统

黄崇远@数据虫巢

数据挖掘 大数据 互联网 广告 推荐系统

Algorithm week 1: Merge Two Sorted Lists

猫吃小怪兽

算法 链表 ARTS 打卡计划

鄙视链 & 全栈

伯薇

学习 能力提升 全栈

修改Tomcat窗口的名称

阡陌r

Java tomcat 踩坑 实施

关于工作的一点总结

印無印

工作思路

Tomcat学习分享

印無印

tomcat

编程入门整理

紫枫

读书笔记

字节跳动:高级人才的五个基本素质

池建强

人才培养

Kubernetes 资料集合

倪朋飞

学习 Kubernetes 架构模式

Spring Data R2DBC 入门

稻草鸟人

MySQL WebFlux springboot R2DBC

青春期的打油诗

印無印

随笔

ARTS打卡Week 01

teoking

android WebRTC

Python 3.6.1 官方文档练习——初入江湖(三)

小匚

Python python教程

从引用聊一聊 Java 垃圾回收

Rayjun

Java 引用 对象

音视频会议系统-Janus的安装与布署

音视频专家-李超

音视频 WebRTC

宏在C++中的替代解决方案

老王同学

c++ 模板 template

Lucene的Smart CN实现分词、停用词、扩展词

Page

中文分词 lucene 停用词 扩展词 SmartCN

“数据资产”究竟是“数据”还是“资产”

马踏飞机747

大数据 数据中台 数据治理 数据资产

转行程序员浅谈Linux下的多线程编程

WB

Linux 程序员 多线程

ARTS week1

紫枫

ARTS 打卡计划

其实,还是让我挺震惊的,程序员的换行率竟然高达 40%

非著名程序员

程序员 程序人生 自我思考

我的 Windows Terminal 配置

FeiLong

Windows Terminal

【应用异常监控利器Sentry搭建与学习笔记】

卓丁

Docker Sertry Fasthttp CI/CD Go 语言

ArrayList 源码分析

读钓

Java 源码分析 jdk源码

《陆蓉行为金融学讲义》 - 读后感

石云升

读书笔记 投资 行为金融学 理性 公平

leetcode练级-只出现一次的数字

幸福三寸日光

算法 LeetCode js

Service Provider Interface介绍

Skysper

spi

【ARTS】Week 1

Amos

ARTS 打卡计划

leetcode练级-只出现一次的数字 升级版

幸福三寸日光

算法 LeetCode js

向往优雅的代码

Janenesome

编码习惯 读书

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