[实战] 用数人云,部署弹性 ELK 集群就五步
2019独角兽企业重金招聘Python工程师标准>>>
摘要:本篇文章介绍了如何通过数人云部署一套标准的 ELK 日志收集系统。第一步,将主机组织成集群;第二步,发布 ElasticSearch 实例;第三步,发布 Kibana 实例;第四步,发布 Logstash 实例到待收集日志的应用 server ;第五步,快速扩展/减少 ElasticSearch , Kibana 实例数(可选)。
在具体介绍部署步骤前,让我们先来了解下 ELK 是什么。 ELK 是 ElasticSearch+Logstash+Kibana 的缩写, ElasticSearch 是一款基于 Lucene 的分布式搜索引擎,大名鼎鼎的 GitHub 就是由它提供的搜索。 Logstash 是一款分布式日志收集系统,是一个应用程序日志、事件的传输、处理、管理和搜索的平台,可以用来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。 Kibana 是一个基于浏览器页面的 ElasticSearch 前端展示工具,内置了各种查询和聚合操作,并拥有图形化展示功能。
我们知道,日志记录了各种重要信息,如应用程序的 log 记录的 error,warn 级别的 log,在量小的情况下,我们当然可以直接 vi+awk+sed+grep 定位原因,而当数量非常大,且需要各种聚合或基于多个异常关键词的组合搜索时,就是 ELK 大显身手的地方!可以说, ELK 是运维界的明星,非常适合应用级的实时监控和核心服务预警。
下面就让我们来看看如何通过数人云部署一套标准的 ELK 日志收集系统吧。
第一步, 将主机组织成集群
首先,需要访问 www.shurenyun.com 注册并登录系统,然后进入主机的准备工作。假设有7台主机,这些主机可以是连接互联网的私有主机,也可以是阿里云、Ucloud、 AWS、Azure、首都在线、华为云等公有云上购买的任意一台云主机。这7台主机之间需要网络互通并能够访问外网。7台主机的规划及配置信息如下:
然后,登录账户,在集群管理中,点击创建群组,填写集群名称( elk ),选择 3 Master 集群,点击完成。 添加主机后,如图点击右上角下拉菜单,选择添加主机。
点击已有主机下面的按钮 Ubuntu 或者 CentOS ,填写主机名称,并在主机上根据"连接主机"的提示进行操作。
选择主机组件:前 3 台主机( 10.3.10.9 [1-3] )为 Master 节点, 无可选组件;在添加主机 10.3.10.94 时需要将可选组件中的内部代理勾选上。
登录到将要添加的主机终端
ssh ubuntu@10.3.10.91
安装 Docker (若主机已安装 Docker ,这步可跳过)
curl -sSL https://get.docker.com/ | sh
安装 Agent :点击页面按钮,点击“生成命令”生成安装命令并粘贴到主机终端运行。
sudo -H OMEGA_ENV=prod bash -c "$(curl -Ls https://raw.githubusercontent.com/Dataman-Cloud/agent-installer/master/install-agent.sh)" -s 92a0c8b287d34445b03f8518ce688e66
按提示执行以上两步后,点击"完成"即成功添加主机。
需要注意的是,由于数人云默认将加入集群的前3台机器作为 master 节点,为了符合前期规划,请确保主机10.3.10.91, 10.3.10.92, 10.3.10.93 首先被加入到集群中。同时,向同一集群添加的主机应存在于同一网段内,暂不支持跨公网的主机组建集群。此外,由于数人云在主机连接后会向主机上安装基础服务,所以主机需要一段时间进行初始化,依主机所处的网络环境,主机初始化的时间有所不同。
主机添加完成后,检查主机运行是否正常,如图:
第二步,发布 ElasticSearch 实例
我们将通过数人云将 ES 的 Docker 镜像以 HOST 模式部署到我们规划的主机 10.3.10.95 和 10.3.10.96 上。具体操作如下:
选择"应用管理"中的"新建应用",如图:
新建 ES 应用:
• 填写应用名称: es
• 选择集群:elk
• 添加应用镜像地址:index.shurenyun.com/dataman/jdk7-elasticsearch-1.4.5
• 填写镜像版本:2015112811
• 网络模式:HOST 模式
• 主机选择:10.3.10.95,10.3.10.96
• 容器目录:容器内的挂载目录 /data/app/elasticsearch
• 主机目录:主机上的挂载目录 /data (该目录是我们主机数据盘所在的目录)
• 选择容器规格: CPU:0.8 内存:4096MB
• 容器个数:2 并且勾选 1 容器: 1 主机
•高级设置:
•添加应用地址:o 应用端口: 9200o 类型: 对内o 协议: TCPo 地址: 10.3.10.94:9998•环境变量o Key: CLUSTERNAMEo Value: dataman-es•环境变量o Key: ZOOKEEPER_ADDRESSo Value: 10.3.10.91:2181,10.3.10.92:2181,10.3.10.93:2181
填写完成后,点击创建。 如图:
第一次向集群部署 ES 时由于本地没有 Docker 镜像 index.shurenyun.com/dataman/jdk7-elasticsearch-1.4.5,集群需要大约 1-2 分钟去拉取镜像(可能更长时间)。我们可以在 ES 的应用详情页看到相应的状态,以及事件等。
第三步, 发布 Kibana 实例
点击新建应用,新建 Kibana 应用:
• 填写应用名称: kibana
• 选择集群:elk
• 添加应用镜像地址:index.shurenyun.com/dataman/kibana
• 填写镜像版本:4.1.4
• 网络模式:网桥模式
• 选择主机: ALL
• 容器规格: CPU:0.2 内存:256 MB
• 容器个数:1
• 高级设置:
• 应用地址:o 应用端口: 5601o 类型: 对内o 协议: HTTPo 地址: http://10.3.10.94:5601• 环境变量:o KEY: ELASTICSEARCH_URLo VALUE: http://10.3.10.94:9998
注: Kibana 需要通过环境变量 ELASTICSEARCH_URL 来确定 ElasticSearch 的地址,由于添加主机时我们已经设置内部代理的节点为 10.3.10.94,并且在添加 ES 应用时将其端口映射到了内部代理端口 9998 , 所以这里我们只需要设置 ELASTICSEARCH_URL=http://10.3.10.94:9998 即可使得 Kibana 发现 ES 实例。
来到 Kibana 的应用详情页,若应用状态为运行中即应用已正常运行。
打开浏览器,访问地址:http://10.3.10.94:5601(可能需要为你的浏览器设置内网代理),看到如下页面,则说明 Kibana 应用已经成功运行。
第四步, 发布 Logstash 实例到待收集日志的应用 server
点击新建应用,新建 Logstash 应用:
• 填写应用名称: logstash
• 选择集群:elk
• 添加应用镜像地址:index.shurenyun.com/dataman/logstash
• 填写镜像版本:2.1
• 网络模式:网桥模式
• 选择主机: 10.3.10.97
注:由于上面我们假设应用运行在了主机 10.3.10.97 上,所以这里我们限制 Logstash 在该主机上收集日志
• 主机/容器目录
• 数据挂载目录: /var/log/app
• 容器目录: /var/log/app
注: 这里我们假设用户的应用(待采集日志的应用)日志存储在了主机目录 /var/log/app 下面。
• 容器规格: CPU:0.3 内存:256 MB
• 容器个数:1
• 高级设置:
• CMD:
logstash -e 'input { file { type => "linux-syslog" path => ["/var/log/app/*.log"]}} output { elasticsearch { hosts => "10.3.10.94:9998" }}'
同样,等待 1-2 分钟后 Logstash 将被部署到应用 server 上并且开始收集日志, 用户可以通过访问 Kibana 的页面来发掘相应的日志信息。
第五步, 快速扩展/减少 ElasticSearch, Kibana 实例数(可选)
为了提高集群的资源利用率,我们可能需要根据负载来扩展或者减少 ElasticSearch , Kibana 等的实例数,在数人云的应用列表页或者应用详情页, 点击扩展按钮,即可快速调整相应应用的实例数。
通过前面的五步实战,大家都尝试了用数人云去部署 ELK 系统,总结来说,使用数人云去部署 ELK 主要有三大优势:第一,部署方便: 用户的应用无需任何改造,只需要提供日志的存储目录;第二,可扩展: 如果日志存储端( ElasticSearch )需要添加更多的实例, 用户只需要向集群中添加更多的机器, 并在应用列表页点击扩展相应的 ELK 即可;第三,安全: 用户应用的所有日志数据都存储在了集群内网的 ES 服务集群中。
转载于:https://my.oschina.net/shurenyun/blog/605838
[实战] 用数人云,部署弹性 ELK 集群就五步相关推荐
- [实战] 用数人云,部署弹性 ELK 集群就五步 1
摘要:本篇文章介绍了如何通过数人云部署一套标准的 ELK 日志收集系统.第一步,将主机组织成集群:第二步,发布 ElasticSearch 实例:第三步,发布 Kibana 实例:第四步,发布 Log ...
- 数人云CEO王璞:容器正成为软件交付的标准
2014年Docker技术逐步兴起,大量围绕Docker的创业公司以及诸多开源软件项目涌现.如今,容器技术的生态圈渐成气候,此领域的新技术已呈井喷之态. 技术的迭代同时,Docker在资本市场的斩获也 ...
- 数人云轻量级PaaS将弹性做到极致
技术型创业公司有一个比较普遍的现象,老板大多是留过洋,甚至在国际互联网公司里打拼过几年小有成就.他们带着先进的思想.技术,以及抱负回到中国,开始自己的创业梦想. 数人云就是这样的技术性创业企业,由原谷 ...
- 数人云牵手红帽Ansible:七大最佳实践解锁DevOps落地姿势
2018年1月23日,红帽联合至顶网在上海举办了以"智能 自动 规范--迎接自动化运维新时代"为主题的"Ansible Automates"大会. 这是国内首届 ...
- 云计算与 Cloud Native | 数人云CEO王璞@KVM分享实录
今天小数又给大家带来一篇干货满满的分享--来自KVM社区线上群分享的实录,分享嘉宾是数人云CEO王璞,题目是<云计算与 Cloud Native>.这是数人云在KVM社区群分享的第一弹,之 ...
- 数人云DCOS:坚持Mesos+Docker,图谋10万主机集群与机器学习扩容
国内的容器创业公司各具特色,数人云看中的是用Mesos和Docker改变企业级市场.在日前的媒体沟通会上,数人云创始人&CEO王璞和数人云CTO肖德时介绍了数人云的目标以及技术选择.商业路径. ...
- 数人云CTO解读Docker 1.12和金融业容器化
7月29日 数人云 在上海举办金融沙龙,邀请上交所和近二十家来自银行.保险.证券的IT技术专家一同探讨容器技术在金融业中的最佳实践.数人云CTO肖德时在会上将传统金融行业通过容器可以解决的四大问题做了 ...
- 【每日新闻】2017年亚马逊研发投入排世界第一,超过华为、BAT 总和 | 数人云宣布与UMCloud合并
每一个企业级的人 都置顶了 中国软件网 中国软件网 为你带来最新鲜的行业干货 小编点评 我们希望邀请更多的生态伙伴 共同探讨 共同行动 2018年4月25日 北京站,不见不散! 趋势洞察 生态视角 ...
- 【每日新闻】2017年亚马逊研发投入排世界第一,超过华为、BAT 总和 | 数人云宣布与UMCloud合并...
每一个企业级的人 都置顶了 中国软件网 中国软件网 为你带来最新鲜的行业干货 小编点评 我们希望邀请更多的生态伙伴 共同探讨 共同行动 2018年4月25日 北京站,不见不散! 趋势洞察 生态视角 ...
最新文章
- VMware卸载虚拟机
- mysql常用日期时间函数_MySql常用日期时间函数
- 武汉大学计算机学院 曹老师,关于校园网吧建设的计算机网络综合设计.doc
- 成功解决极其刁钻bug之TypeError: ‘<=‘ not supported between instances of ‘list‘ and ‘int‘
- 深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析
- 一个比较方便的转换NSString为UTF8编码的函数
- c语言linux消息机制,linux消息机制的过程是什么啊,请赐教
- 结合案件要素序列的罪名预测方法
- Python 夺大满贯!三大编程语言榜即将全部“失守”!
- 用c语言编写五子棋用vs写,c语言写的五子棋人与人对战
- [置顶] 【cocos2d-x入门实战】微信飞机大战之二:别急,先处理好CCScene和CCLayer的关系...
- 【大咖有约】58同城孙玄:58同城从MongoDB到MySQL迁移之路
- 网页游戏开发秘笈 PDF扫描版
- 网页视频播放器-插件
- 华为5G手机回归,再次打破国外技术垄断,将价格推至新高度
- play框架使用起来(16)
- python中自然数e怎么表示_python e怎么表示
- html页面 消除横向滚动条,框架网页中去掉横向(水平)滚动条的方法
- kaptcha验证码使用
- RabbitMQ——RabbitMQ集群原理
热门文章
- “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
- 找出数组中出现次数最多的一项并统计次数
- 关于Azure存储账户中存储虚拟机VHD文件的注意事项
- php-5.2.3.tar.bz2.gz 的解压方法
- QQ交流群,欢迎有兴趣的同学加入。
- Java Socket实战之一:单线程通信
- bootstrapTable语言包设置
- zyUpload+struct2完成文件上传
- 《黑客秘笈——渗透测试实用指南(第2版)》目录—导读
- Yii-mongo操作