上篇文章我们遗留了两个问题,想要跟大家讨论。
关于桥接和NAT不仅仅在搭建虚拟机的时候,有这样的问题,在构建局域网的时候,同样需要再NAT和桥接上做出选择,这就不得不对比桥接和NAT的区别。由于我们的主要课题是Elasticsearch,关于网络部分,我们暂且点到即止,更详细内容欢迎加群催更。
从下图,我们可以粗略的理解桥接和NAT。

| 维度 | 桥接 | NAT |
|---|---|---|
| 连接模式 | 使用虚拟网卡连接到宿主机器的物理网卡,从而连接到交换机,宿主机和虚拟机在网络拓扑上是同等地位 | 虚拟机借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网,虚拟机在万拿过来拓扑上在宿主机后方,需要做一次地址转换 |
| IP | 桥接模式下,IP和宿主机同网段 | IP可以不和宿主机同网段,基于DHCP分配IP |
| 访问控制 | 可以访问公网 可以互相访问 | 可以访问公网 可以互相访问 |
| 适用场景 | 对网络拥塞有要求 虚拟机需要被宿主机局域网之内的机器访问 路由器之间的桥接 | 支持更多设备单IP 构建访客网络 |
关于第二个问题,众所周知,纸上得来终觉浅,绝知此事要躬行,第一篇的安装文档已经较为完整的整理了可能遇到的问题,和解决的方案。例如在安装的CentOS版本中ens33网卡是默认下线的,导致无法访问公网,只需要将网卡启用即可。
如果遇见了新的问题需要解决,或者有新的问题的解决方案,欢迎分享。好了,下面开始这篇的正文,快速安装Elasticsearch和Kibana。
我们常常提起ELK,那么ELK到底是什么呢?ELK其实采用的是Elasticsearch,Logstash,Kibana三个组件的缩写,由此构成了一个技术栈。通过使用Logstash进行数据抓取,使用Elasticsearch进行存储、分析、搜索,再通过Kibana进行可视化操作。又被称为ELK stack。
但是,随着场景的变化,有些需要跟踪文件的需求,因此ELK在2015年引入了一些轻量的数据传输器,被称为Beats。因此ELK stack蜕变称为了Elastic stack,通过这样的一个名字,我们能发现,也许随着Elastic的发展,更多的场景需求得以解决,这样的一个stack会越来越丰富。

在安装之前,我想告诉你几个好的方法,会让我们的学习之路更加的通畅,上文我们安装了一个CentOS,如果后期我们想搭建些集群,或者快速创建节点,安装相关环境,都可以采用此类方式。
配置练习文件夹和语法练习文件夹。
克隆,以完成快速准备多节点环境,对于节点环境的一些基础配置,例如jdk,各种环境既可以在后期的节点中进行配置,也可以再模板节点里面预置配置完成。需要注意的是:如果你的节点选择的是动态IP,那么不需要额外的操作,可以获取IP,如果你修改成了静态IP,在节点克隆之后,分配好节点IP。修改方式见上一节
选择对应的平台版本,这里我们以Linux下的Elasticsearch8.2.2演示。Elastic8之后取消了外部jdk依赖,所以可以不用单独安装jdk,如果你想安装jdk,需要注意对应的版本,如下图。具体可查看es的支持矩阵

Elasticsearch下载地址 地址:https://www.elastic.co/downloads/elasticsearch

创建存放目录,并上传下载好的Elasticsearch文件
# 创建目录
mkdir -p /home/soft/elasticsearch/
# 进入文件夹
cd /home/soft/elasticsearch/
# 安装rz工具
yum install lrzsz -y
# 上传文件
rz
解压缩文件
tar -zxvf elasticsearch-8.2.2-linux-x86_64.tar.gz
分配非root用户
# 新增用户
useradd elastic
# 设置密码,会提示密码过于简单,再次输入确认就好
passwd elastic
# 给用户目录的执行权限
chown -R elastic:elastic 文件路径
Elasticsearch提供了两种运行方式,一种是开发模式,一种是生产模式。开发模式主要是用来学习Elasticsearch,并不会做一些线程数、内存、文件数等系统的相关检查。需要注意的是,开发模式和生产模式的安装没有区别,只是一些配置文件的修改。具体可查阅ES 中的“生产模式”和“开发模式”分别是干嘛用的
切换至非root用户,基于开发模式运行Elasticsearch
# 解压目录下的bin目录中运行elasticsearch
./bin/elasticsearch
Elasticsearch8版本默认开启xpack,安全策略。默认密码在启动日志上

验证是否成功,如果返回这类错误

在Elasticsearch解压目录下的config里的elasticsearch.yml把xpack.security.enabled: false配置改成false,先quickstart起来

当我们从9200端口查到相关的信息,代表我们的es启动成功了。接下来我们再安装Kibana。
Kibana和Elasticsearch同样有着相关的兼容性,我们可以通过Elastic支持矩阵查阅相关的兼容性,如果可以,把这个网址:https://www.elastic.co/cn/support/matrix#matrix_compatibility 保留在你的收藏夹里。
Kibana下载地址 https://www.elastic.co/downloads/kibana

选择相应的版本下载,右侧Summary栏有历史版本下载。
创建存放目录,并上传下载好的Elasticsearch文件
# 创建目录
mkdir -p /home/soft/kibana/
# 进入文件夹
cd /home/soft/kibana/
# 安装rz工具(如果已安装,跳过此步骤)
yum install lrzsz -y
# 上传文件
rz
解压缩文件
tar -zxvf kibana-8.2.3-linux-x86_64.tar.gz
并不建议使用root账户启用Kibana,虽然可以使用--allow-root参数运行。使用之前创建的elastic账户进行操作,先将Kibana文件夹权限给到elastic
# 这个地方,我偷懒直接将soft文件夹的权限给到了elastic
chown -R elastic:elastic /home/soft/
进入Kibana的解压文件夹下的config,通过kibana.yml修改Kibana的相关配置
# 运行远程机器连接的地址,默认是localhost,本机连接
server.host: "172.16.192.101"
# 连接的Elasticsearch地址
elasticsearch.hosts: ["http://172.16.192.101:9200"]
在Kibana的解压目录下,有bin文件夹,存放着可执行的启动命令,切换elastic用户,启动

出现Kibana is now available代表着Kibana启动成功。
通过本地浏览器查看输入地址查看,如果无法访问,可能是端口未暴露
/sbin/iptables -I INPUT -p tcp --dport 5601 -j ACCEPT

至此,Elasticsearch和Kibana的单机版已经完成安装了,明天我们会走进Elasticsearch的生产模式,有哪些需要注意的。
在此之前,让我们为Kibana加些数据,看看Kibana的使用。

通过Home下的Try sample data,插入一些示例数据


# 查看当前有哪些索引
GET _cat/indices

# 查看索引的结构
GET kibana_sample_data_flights/_mapping

# 查询目的地国家是US的数据
GET kibana_sample_data_flights/_search
{
"query": {
"match": {
"DestCountry": "US"
}
}
}

Elasticsearch提供了丰富的API,后面我们有专题来专门讲解API。
Elasticsearch划分开发模式和生产两种模式,是处于什么考虑呢?
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=