目录
前景:
因为要用Jmeter调es做一些操作,但是还没有环境,就自己搭了一个,所以就从部署基础环境开始吧。
以下操作我这里都是用root操作的
1、创建一个目录文件夹(用来放置jdk)
mkdir xxx & mkdir -p /xxx/java
2、解压jdk
tar -zxvf jdk-8u301-linux-x64.tar.gz
3、设置软连接(也可不设置,这里只是为了方便)
ln -s jdk1.8.0_121 jdk
4、配置环境变量
vim /etc/profile
将以下几行加入至文件中
export JAVA_HOME=/xxx/java/jdk #你的jdk路径地址
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/ext:$JRE_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
要注意的是,环境变量千万别改错咯,不然会影响到其他的命令使用!!!
*如果出现/usr/libexec/grepconf.sh: line 5: grep: command not found那就是环境变量配错了,用下面这个命令重新把profile这个文件改过来
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin*
5、生效环境变量
source /etc/profile
6、查看配置是否成功
java -version
出现以下代表配置完毕
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
一样的步骤,自行创建一个文件夹用于放置下载的es文件
1、解压es
tar -zxvf elasticsearch-6.4.3.tar.gz
2、切换用户(es不能使用root用户启动,不然会报错)
groupadd es
useradd es -g es -p 123456
su - es
3、授权刚解压的es文件夹
chown -R es:es /xxx/es/elasticsearch-6.4.3
4、配置elasticsearch.yml(在config目录下)
在配置文件的底部加入以下两行,用于设置ip及端口
network.host: 0.0.0.0
http.port: 9200
5、启动es
./elasticsearch-6.4.3/bin/elasticsearch -d
6、配置密码
在elasticsearch.yml添加以下几行
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
然后重启es
使用./elasticsearch-setup-passwords interactive 设置密码
8、创建、查询索引
这里只简单讲解,详细可查看大佬的https://blog.csdn.net/sss294438204/article/details/122884953
注意:因为我们配置了密码,所以后续的操作都要带上es的账号密码才可进行
a)创建索引
curl -X PUT "http://0.0.0.0:9200/test3" -u elastic:123456
出现{"acknowledged":true,"shards_acknowledged":true,"index":"test3"}代表创建成功
b)查询索引
curl -X GET "http://0.0.0.0:9200/test3/_search" -u elastic:123456
返回:
{"took":1,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":0,"max_score":null,"hits":[]}}
c)给索引加文档
我这里版本不支持 _ + name的类型 所以创建一个doc类型的id为1111的文档
curl -X PUT "http://0.0.0.0:9200/test3/doc/1111" -H 'Content-Type: application/json' -d '{"aaa":"asd","name":"as"}' -u elastic:123456
返回:
{"_index":"test3","_type":"doc","_id":"1111","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
再次查询:
curl -X GET "http://0.0.0.0:9200/test3/_search" -u elastic:123456
返回:
{"took":2,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":1,"max_score":1.0,"hits":[{"_index":"test3","_type":"doc","_id":"1111","_score":1.0,"_source":{"aaa":"asd","name":"as"}}]}}
可以看到数据已经写进去了,那我们测试数据准备完毕
因为es是暴露了restful api,所以可以直接用Jmeter的http请求来进行编写
只需要填写这些参数就可以了(ip地址就写es机器所在地址),是不是很简单!入参如果有查询条件再写,没有的话就不用写,也可以跟在路径后面,毕竟是get的嘛

成功返回

这里需要注意的是,这是在es还没有账户密码的情况下调用的,而我们现在设置了账户密码,那自然需要加上用户密码进行访问,与curl的-u会有所不同!
Jmeter添加es账户密码方式:
1、需要添加HTTP信息头管理器,添加Authorization字段,值为base64加密值,值需要为“Basic +加密值”

2、加密值通过beanshell的方式来取(也可以写个jar包,通过java请求),在HTTP信息头管理器前面加上BeanShell 预处理程序,代码如下:
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String name = "elastic";
String password = "123456";
String basebase = name + ":" + password;
log.info("auth string: " + basebase);
//Base64编码
Base64.Encoder encoder = Base64.getEncoder();
String s = encoder.encodeToString(basebase.getBytes(StandardCharsets.UTF_8));
log.info("______________________________________________________");
log.info("s="+s);
vars.put("userpasswd",s)
至此,全部设置完毕,可进行配置线程进行压测啦!
es启动日志默认在安装包目录下的logs文件夹的elasticsearch.log,可看到es启动情况
a)es启动出现如下报错
启动没多久后ps -ef | grep ela 发现没有es的进程了,发现es被自动关闭了!
因为es索引文件是映射到虚拟内存空间的,只有当访问索引的时候,才会从磁盘读到物理内存里(提高查询速度),这里看到es需要的最低虚拟内存空间是252144,而我这只有65530,所以导致es报错无法启动
解决办法:使用root 临时修改sysctl -w vm.max_map_count=262144
永久修改:echo vm.max_map_count=262144>> /etc/sysctl.conf sysctl -p
b)es配置密码时出现以下报错
Unexpected response code [403] from calling GET http://xxx:9200/_xpack/security/_authenticate?pretty
It doesn't look like the X-Pack security feature is available on this Elasticsearch node.
Please check if you have installed a license that allows access to X-Pack Security feature.
原因是没开启X-pack安全
解决办法:curl -H "Content-Type:application/json" -XPOST http://localhost:9200/_xpack/license/start_trial?acknowledge=true
再使用./elasticsearch-setup-passwords interactive 设置密码
c)curl、Jmeter未加用户密码访问报错
如果es配置了账户密码,但是在进行操作es时没有加上用户密码就会报以下的错
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication token for REST request [/test3/_create/1111]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication token for REST request [/test3/_create/1111]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/
前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
我试图在rails中了解rubygems是如何变得可以自动使用的,而不是在使用required的文件中gem? 最佳答案 这是通过bundler/setup完成的:http://bundler.io/v1.3/bundler_setup.html.它在您的config/boot.rb文件中是必需的。简而言之,它首先将环境变量设置为指向您的Gemfile:ENV['BUNDLE_GEMFILE']||=File.expand_path('../../Gemfile',__FILE__)然后它通过要求bundler/setup将所有ge