AWS 搭建ELK

​在亚马逊EC2机器上运行Logstash, 通过Logstash从亚马逊的Kinesis将数据导入AWS的Elasticsearch, 最后在AWS自带的Kibana上查询和展示数据。


  1. 创建AWS Elasticsearch Service

    首先,选择AWS的分析服务Elasticsearch Service,创建一个新域,输入域的名称并选择Elasticsearch的版本。配置ES集群, 选择实例个数和实例类型,不同的实例类型虚拟CPU、ECU、内存和支持的最大存储容量不同,t2类型的实例最大存储只支持35G,最多能存不到20G的数据。根据需要选择你的实例类型,可以动态扩容。网络配置选择公有访问权限,并配置访问策略。如果想通过配置的账号池通过账号访问Kibana,  需要启用Amazon Cognito身份验证,详细参考下文的Kibana身份验证。 访问策略:列表中的第一个策略是为了让EC2 的机器访问aws的es,第二个策略是为了让配置的账号池能够访问aws的es,角色ID为配置Kibana时的经过身份验证的角色的ARN,角色的ARN在IAM的角色里面找到。

  2. 配置Kibana身份验证

    按步骤提示创建用户池。 然后创建用户身份池,配置身份池时用户池ID和应用程序客户端ID需要填写为刚刚创建的用户池ID,未经身份验证的角色和经过身份验证的角色一定要填,角色为根据身份池名称创建的角色,两个角色为AWS自动创建,否则访问Kibana会出错。将创建的用户池名称和用户身份池名称填入ES的集群配置。

  3. 用Logstash从aws的Kinesis导数据到aws的ES

    安装logstash并安装kinesis input和 amazon es output插件

    bin/logstash-plugin install logstash-input-kinesis

    bin/plugin install logstash-output-amazon_es

    配置logstash配置文件logstash_kinesis.conf

    运行logstash: ./logstash -f logstash_kinesis.conf。让logstash访问aws的kinesis需要aws的访问key和secret。将写有aws_access_key_id和aws_secret_access_key的文件放在~/.aws/credentials。通过aws的Elasticsearch 域概述中的Kibana url就可以访问kibana了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 AWS EC2 实例中使用 Terraform 部署 Nginx 的步骤: 1. 在 AWS 控制台中创建一个 IAM 用户,并为该用户授权 AWS 访问密钥和安全凭证。 2. 安装 Terraform,并配置 AWS 访问密钥和安全凭证: ``` $ terraform init $ export AWS_ACCESS_KEY_ID="your_access_key_here" $ export AWS_SECRET_ACCESS_KEY="your_secret_key_here" ``` 3. 创建一个 Terraform 项目,并在 main.tf 文件中定义以下资源: ``` provider "aws" { region = "us-west-2" } resource "aws_instance" "nginx" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = "nginx-server" } provisioner "remote-exec" { inline = [ "sudo apt-get update", "sudo apt-get install -y nginx", ] } connection { type = "ssh" user = "ubuntu" private_key = file("~/.ssh/id_rsa") host = aws_instance.nginx.public_ip } lifecycle { create_before_destroy = true } # Allow HTTP traffic ingress { from_port = 80 to_port = 80 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } # Allow SSH traffic ingress { from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } # Allow HTTPS traffic ingress { from_port = 443 to_port = 443 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } # Allow ICMP traffic ingress { from_port = -1 to_port = -1 protocol = "icmp" cidr_blocks = ["0.0.0.0/0"] } } ``` 上述代码中定义了一个 AWS EC2 实例和一些安全组规则,以允许 HTTP、SSH、HTTPS 和 ICMP 流量通过。还在 provisioner 部分中安装了 Nginx。 4. 运行 Terraform 命令创建实例: ``` $ terraform apply ``` 5. 在浏览器中输入实例 IP 地址,应该可以看到 Nginx 的欢迎页面。 现在,您已经成功在 AWS EC2 实例中部署了 Nginx,而且使用 Terraform 进行自动化管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值