整体项目架构:nginx作代理、gateway作网关、Eureka作服务的注册中心、SpringCloud作微服务、config作配置中心、Elasticsearch作海量/非结构化数据的存储、mysql作结构化数据存储、redis作为内存数据库、RabbitMQ作解耦之消息队列中问件、zipkin做日志的链路追踪。

一般的,我们通过config的配置文件可以查到某个做服务所连接的ElasticSearch服务器,但是如果我们在测试或无法查询es里相关数据的时候需要通过跟navicat一样的东西去访问它,看数据有没有被存下来为第一要素,下面一步一步带大家伙从0到1查看ES里存的数据;

第一步:

通过域名+head默认的地址在浏览器中直接访问;例如域名https://toutao.com,那么访问地址就是
https://toutao.com/es/_plugin/head/,其中/es/_plugin/head/就是head组件默认的访问路径,head在ES中扮演的角色就跟在navicat中连接数据库并查看表数据是一样的东东,如果出现下面的提示信息,则说明当前服务器中没有安装head插件,就跟没有安装navicat是一个道理,如果没有出现下面的提示信息则直接跳到第四步;

{"error":{"zoot_cause":[{"type":"1llegal_argument_exception","reason":"xo endpoint of operatlon is avatlable at [head)"}],"type":"xllegal_argument_exception","reason":"No endpoint or operation is available at [head)"I,"status"

第二步:

在所在服务器上安装head插件,这个就不再赘述,网上有好多相关的文章

第三步:

在nginx所在的服务器中配置es的代理,nginx在哪台服务器呢?问问旁边的同事是最快捷的方式哦!如果不想开口,那就继续往下看:

(1)通过 ps -ef lgrep nginx 命令查找nginx的配置文件,得到类似下面的结果

[root@izbpi3tx21s4p04uOzjdb5z -]# ps -ef |grep nginx

root 2519 1 0 Apr01? 00:00:00 nginx: master process /ust/sbin/nginx -c /etc/nginx/nginx.conf

(2)在/etc/nginx/conf.d 目录下一般会有一个https.conf或者http.conf的配置文件,为什么会有两个很相似的文件呢,一般的我们正式环境都是 https.conf,而测试环境可能为了减少成本就不用https了,只用http就行。

[root@izbpi3tx21s4p04u0zidb5z conf.d]# pwd

/etc/nginx/conf.d

(3) 通过 vi https.conf 或者 vi http.conf 增加es的代理路径:相信配置很明了了,

proxy_pass 后面的ip部分就是在config里配置的java应用所连接 的ES地址。

location /es/t proxy_pass http://1.11.11.207:9200/;

(4)有时候可能我们项目有多个es,只是版本不同,那就再加个关键字。区分他们.例如:

location /es243/ {

proxy_pass http:/11.11.1.243:9200/;

}

第四步:到这步即是大功告成了,通过命令nginx -s reload 重新加载nginx配置文件,再次访问第一步的路径,发现可以正常访问了,当然如果有密码的话,需要输入eS的用户名和密码才可以登录。 接下来es的sql语法怎么用可以直接百度head 查看,这里附上一篇大家直接点过去继续看吧

https://blog.csdn.net/mon_star/article/details/102934620

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐