写点什么

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

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

发布了 1853 篇内容, 共 120.0 次阅读, 收获喜欢 78 次。

关注

评论

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

面部表情识别技术在社交互动中的应用

来自四九城儿

从孤勇者到边缘云行业翘楚,网心科技做对了什么?

网心科技

Grafana可观测性grpc长链接处理

盈米基金

gRPC 可观测性 Grafana

绘出「星辰大海」:华为云Astro轻应用新手指南Ⅰ

轶天下事

提升UMI分析精度和计算效率:Sentieon UMI分子标记处理模块

INSVAST

umi 基因数据分析 技术服务

08.25 北京站|阿里云 Serverless 技术实践营( AI 专场)开放报名

阿里巴巴云原生

阿里云 Serverless 云原生

What's new in Pika v3.5.0

apache/dubbo-go

数据库 redis kv Redis 7 KV存储

2023-08-24:请用go语言编写。给定一个长度为n的数组arr, 现在你有一次机会, 将其中连续的K个数全修改成任意一个值, 请你计算如何修改可以使修改后的数 列的最长不下降子序列最长。 请输出

福大大架构师每日一题

福大大架构师每日一题

华为云828企业节:助力精细化运营,提升开发效率

mecchi

小程序 云主机 云服务器 网站建设 云电脑

Sentieon数据质控QC模块介绍

INSVAST

数据分析 QC 质控工具

面部表情识别的技术挑战与解决方案

来自四九城儿

Programming abstractions in C阅读笔记:p127-p129

codists

一文读懂 Nuxt.js 服务端组件

树上有只程序猿

React nuxt

PrecisionFDA:多组学样本错标校正挑战赛

INSVAST

数据分析 PrecisionFDA

Sentieon发布RNAseq加速分析方案

INSVAST

数据分析 基因测序 RNAseq

Sentieon软件应用之公共卫生机构

INSVAST

公共卫生 基因数据分析

微服务引擎 MSE 全新升级,15 分钟快速体验微服务全栈能力

阿里巴巴云原生

阿里云 微服务 云原生

Go语言协程池实现第二弹

FunTester

茶桁的AI秘籍 - 人工智能数学基础篇 导言

茶桁

人工智能 数学 math

如何构建 Sidecarless 模式的高性能服务网格

阿里巴巴云原生

阿里云 云原生 asm

面部表情识别技术的神经科学基础

来自四九城儿

富士胶片公司完成阿里云 PolarDB 数据库开源产品兼容适配

阿里云数据库开源

polarDB PolarDB for PostgreSQL 阿里云PolarDB

学习Python文件备份和恢复技术,让您的数据永不丢失!

高端章鱼哥

Python Linux

Apache Dubbo 和 Apache RocketMQ 邀您参与,ASF 亚洲峰会 5 张门票免费送

阿里巴巴云原生

阿里云 云原生

八月更新 | CI 构建计划触发机制升级、制品扫描 SBOM 分析功能上线!

CODING DevOps

虚拟币锁仓数字货币usdt投资理财系统开发合约代码

V\TG【ch3nguang】

虚拟货币 区块链技术开发

虚拟币商城数字货币交易分红模式系统开发[流程框架]

V\TG【ch3nguang】

数字货币交易平台开发 虚拟货币

C++类成员的访问权限以及类的封装

芯动大师

绘出「星辰大海」:华为云Astro轻应用新手指南Ⅱ

轶天下事

大家都在用哪些测试用例管理平台?分析不同类型团队下的4类测试管理工具

爱吃小舅的鱼

产品经理 测试管理

小灯塔系列-中小企业数字化转型系列研究——协同OA测评报告

向量智库

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