写点什么

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

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

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

关注

评论

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

图解Kafka消费者客户端分区分配策略

石臻臻的杂货铺

Kafk

华为云云耀云服务器L实例:轻量级应用服务器也能有高性能,助力业务快速发展

YG科技

Java整合Thymeleaf和wkhtmltopdf实现HTML导出PDF

落日楼台H

PDF thymeleaf wkhtmltopdf htmltopdf

云服务器选购指南:一步步指导企业如何挑选合适的云服务器

YG科技

中小企业如何借助华为云云耀云服务器L实例迅速开展业务?

YG科技

数划云受邀参加2023甄云科技用户大会并发表主题演讲

数划云

企业经营管理 全面预算 绩效分析

永续合约交易所APP系统开发搭建

V\TG【ch3nguang】

交易所搭建

实现 LangChain 版本的 AutoGPT 项目的图形化界面

赤色闪电

专业CHM文件阅读器 CHM Viewer Star最新免激活

胖墩儿不胖y

Mac软件 文件阅读器

华为云云耀云服务器L实例:游戏开发者的高性能轻应用服务器之选

YG科技

华为云云耀云服务器L实例:打造轻量级行业解决方案,助力企业轻松上云

YG科技

mac电脑简单强大修图推荐 Pixelmator Pro直装中文版

mac大玩家j

图像编辑 Mac软件 编辑图像

大语言模型测试

赤色闪电

k8s优雅停服

tiandizhiguai

DevOps kubernetes 运维

华为云云耀云服务器L实例:打造企业级高效稳定的基础云服务架构

YG科技

Spring 注入集合

小万哥

Go golang 后端 开发 开发程序员

ARTS 打卡 Week4

WaitBright

ARTS 打卡计划 #ARTS 左耳朵耗子

蓝易云:如何在Ubuntu 22.04上安装Linux 内核 详细教程!

百度搜索:蓝易云

云计算 Linux ubuntu 运维 云服务器

分拣平台API安全治理实战 | 京东物流技术团队

京东科技开发者

企业号9月PK榜

高性能MySQL实战(二):索引 | 京东物流技术团队

京东科技开发者

MySQL 京东云 企业号9月PK榜

JVM heap + non-heap是否等于 RSS?

Geek_b2fe7a

买彩票能中大奖?用Java盘点常见的概率悖论 | 京东云技术团队

京东科技开发者

京东云 java‘ 企业号9月PK榜

蓝易云:如何在 Rocky Linux 上安装 Apache Kafka?

百度搜索:蓝易云

Apache 云计算 kafka Linux 运维

华为云云耀云服务器L实例:智能化、高性价比的轻量级云服务器

YG科技

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