NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 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:291379
用户头像

发布了 1836 篇内容, 共 92.4 次阅读, 收获喜欢 73 次。

关注

评论

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

Shell的参数传递

智趣匠

Shell 三周年连更 shell参数传递

基于 EKS Fargate 搭建微服务性能分析系统

亚马逊云科技 (Amazon Web Services)

Python

责任心与执行力

Jadedev

职业素养 团队文化 人格

容量成本性能全都要有, Redis 容量版 PegaDB 设计与实践

Baidu AICLOUD

推开“任意门”,华为全屋智能正在实现一代科幻迷的童年梦想

脑极体

人工智能 全屋智能

OpenHarmony设备开发从零到一

鸿蒙之旅

OpenHarmony 三周年连更

科大讯飞发布讯飞星火认知大模型,深度赋能教育、办公、汽车、数字员工领域

Lucien

大数据 大模型时代 AIGC

在这样的公司工作没意义

Jadedev

职场 职场经验 职场发展

Go常用设计模式(中)

海风极客

三周年连更

YApi自动生成接口文档

Liam

Postman 接口文档 API YAPI 文档生成

软件测试 | Requests库

测吧(北京)科技有限公司

测试

蚂蚁安全科技 Nydus 与 Dragonfly 镜像加速实践 | 龙蜥技术

OpenAnolis小助手

开源 dragonfly 操作系统 龙蜥技术 镜像加速

清晰的定位对团队成功的影响

Jadedev

团队管理

团队管理的五个关键词

Jadedev

团队管理

Flink API的4个层次

阿泽🧸

flink 三周年连更

【转载】亚信科技亮相2023移动云大会,“数智云网”助力行业转型发展

亚信AntDB数据库

AntDB AntDB数据库

软件测试 | 接口测试工具的不足

测吧(北京)科技有限公司

测试

MobPush 厂商通道SDK集成指南

MobTech袤博科技

3D点云数据集在3D数字化技术中的应用

来自四九城儿

【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合SpringBoot客户端访问的实战指南

洛神灬殇

分布式 OSS Minio 三周年连更 SpringBoot-Starter

在啥样的公司工作没意义

Jadedev

职场 职场经验 职场发展

浪潮海岳低代码平台inBuilder开源社区版特性推荐系列-第一期

inBuilder低代码平台

开源 低代码 实操

人工智能(AI)行业如此烧钱,离真正商业化还有多远,如果不商业化还能走多远? | 社区征文

迷彩

人工智能 AIGC 生成式AI 三周年征文 三周年连更

如何为 Databend 添加新的系统表

Databend

软件测试 | Django开发环境

测吧(北京)科技有限公司

测试

ebpf-linux 安全“双刃剑”

统信软件

Linux Kenel

云原生文件存储 CFS 线性扩展到千亿级文件数,百度沧海·存储论文被 EuroSys 2023 录用

Baidu AICLOUD

文件存储 元数据 posix

推荐6个我经常逛的“小网站”,嘿嘿嘿!!!

引迈信息

程序员 低代码 摸鱼 JNPF 文案

软件测试 | 程序报错不要慌

测吧(北京)科技有限公司

测试

对象存储——Minio初探

程序员架构进阶

对象存储 Minio 5月日更 5月月更

John Schulman:强化学习与真实性,通往TruthGPT之路

OneFlow

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