首页 > 数据库 >白嫖一个月的ES,完成了与MySQL的联动

白嫖一个月的ES,完成了与MySQL的联动

时间:2023-04-04 13:00:24浏览次数:46  
标签:elastic Kibana elasticsearch 联动 MySQL docker ES

前言

《腾讯云 x Elasticsearch三周年》活动来了。文章写之前的思路是:在腾讯云服务器使用docker搭建ES。但是理想很丰满,显示很骨感,在操作过程中一波三折,最后还是含着泪美滋滋地,白嫖了一个月的腾讯云ES服务。

最后就是利用腾讯云的Elasticsearch和Kibana,和我在腾讯云服务器上搭建MySQL进行了一波联动,完成了数据库内部指标的展示。

<服务器搭建ES> 部分只用作记录,可以忽略直接看 <腾讯云领取ES的活动> 进行后续操作。

一. 服务器搭建ES

1.拉取ES镜像

本来想自己编写dockerfile生成镜像,没成想ES官网提供了docker镜像,这里就使用官方镜像,操作文档参考链接:

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.6.2

2. 修改Linux系统句柄

# 在 /etc/sysctl.conf 末尾添加
vm.max_map_count=262144

修改之后重启或者使用以下命令使其生效:

/sbin/sysctl -p

3. 修改文件句柄和进程限制

# 在 /etc/security/limits.conf 末尾添加
* soft nofile 65536
* hard nofile 65536

4. docker安装

docker我也是提前安装好了,可以参考我之前的文章

yum -y install docker-ce

如果安装集群,还需要安装docker-compose,官网提供了此种安装方式,但是我的服务内存实在太小,尝试几次之后就果断放弃了。

单节点ES搭建

启动ES的时候,会自动启用安全认证配置,包括:

  1. 生成安全证书:http_ca.crt
  2. elasticsearch.yml.:TLS(Transport Layer Security)配置
  3. ES用户密码
  4. Kibana的注册token

1. 启动单节点ES

# 创建es网络
docker network create elastic

2. 启动单节点ES

# 启动单节点ES
docker run --name es01 --net elastic -p 9200:9200 -it docker.elastic.co/elasticsearch/elasticsearch:8.6.2

在启动单节点ES的时候,终端会打印一个用户密码(用户名:elastic),和一个注册Kibana用的token。因为只会在第一次启动时输出,所以要保存好。

这里使用的是前台启动,在保存好密码之后,再使用docker start后台启动容器。

3. 安全证书

执行命令将http_ca.crt拷贝到宿主机。

docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .

4. 验证

使用下载的安全证书和用户密码访问ES服务。

curl --cacert http_ca.crt -u elastic https://localhost:9200


至此,ES搭建完成。

外网无法访问服务器Docker中的ES

测试外网无法访问服务器中的ES,需要修改以下配置:

#  /etc/sysctl.conf 默认为0,修改成1
net.ipv4.ip_forward = 1

重启网络和es:

systemctl restart network
docker restart es01

这样就可以外网访问到ES了。

Kibana安装

docker pull docker.elastic.co/kibana/kibana:8.6.2
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.6.2

启动Kibana的时候会输出一个地址,去浏览器中配置。

复制ES启动时生成的token填入。

token过期了,可以再生成一个。

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

花了老大的劲才忙活到这儿,™然后启动kibana就CPU狂飙,丐版服务器终究错付。搞了一下午无果,决定还是去腾讯云看看能不能白嫖。


二. 腾讯云ES0元活动

果然到有ES白嫖一月的活动,呜呜呜呜。觉得自己是个铁憨憨。


购买付款。


两分钟完事儿,进入控制台。

可以看到集群已经分配好,查询集群架构可以发现一共三个ES、一个Kibana。

可视化配置中添加本机的IP到白名单,就可以访问Kibana。

点击公网访问地址,进入Kibana。

三.实践应用

1. 添加数据

在Kibana首页,进入 Add data,可以添加很多种类数据源。这里挑选进行操作

2. MySQL Metrics

选择 MySQL metrics,这个可以获取MySQL的内部指标。首先下载metricbeat。然后根据官方步骤完成配置:

  1. 修改metricbeat.yml中的es和kibana的配置

  1. 修改modules.d/msyql.yml中的mysql的配置,把query那行注释掉,否则会报错。

官方操作文档:

数据加载完成之后,点击check data 会提示数据成功接收。

3. Dashboard

在Kibana首页找到Dashboard

选择导入的MySQL指标数据。

如图,MySQL各种指标就展示出来了。

结语

在控制台点击几下,就完成了一下午的工作量,不得不感叹SaaS有点东西。如果对Elasticsearch和Kibana有兴趣的,在腾讯云白嫖一个挺合适的。

标签:elastic,Kibana,elasticsearch,联动,MySQL,docker,ES
From: https://www.cnblogs.com/seven0007/p/es.html

相关文章

  • flask,mysql实现用户登录注册注销改密
    flask.py文件fromflaskimportFlask,render_template,request,redirect,url_for,flash,sessionfromflask_mysqldbimportMySQLimportbcryptapp=Flask(__name__)app.secret_key="secret"#MySQLconfigurationsapp.config['MYSQL_HOST'......
  • golang CVE-2016-2183漏洞,https需要添加tls设置加密算法CipherSuites白名单,将弱加密算
    golangCVE-2016-2183漏洞,https需要添加tls设置加密算法白名单,将弱加密算法DES和3DES去掉。服务端样例代码packagemainimport("crypto/tls""fmt""net/http")funchandler(writerhttp.ResponseWriter,request*http.Request){fmt.Fprintf(wri......
  • The role of local toxicity testing in evaluating new drugs
    Aseriesoftoxicitystudiesarerequiredtorevealthepossibletoxicreactionsofdrugsbeforeclinicalapplicationandtoensurethesafetyandeffectivenessofclinicaluse.Localtoxicitytestisanintegralpartoftoxicologyresearch,whichisdesi......
  • mysql 时间转换成日期
    很多时候都存了当前时间,没有单独存日期这个函数。查询按天查询的时候,需要转换成日期。selectDATE_FORMAT(create_time,"%Y-%m-%d")asday,count(DISTINCT(product_user_id))asuv,count(product_user_id)aspvfromdts_pay_orderwhereclient_id=32andcreate_ti......
  • ERROR: Could not find a version that satisfies the requirement pymysql (from ver
    踩过的坑不管是idea中直接引入还是 pip3installpymysql都会报错:ERROR:Couldnotfindaversionthatsatisfiestherequirementpymysql(fromversions:none)  原因是网络问题,需要需要使用国内镜像源来加速,比如豆瓣源pipinstallpymysql-ihttp://pypi.douba......
  • MySQL8的root帐号授权
    执行下面的命令MySQL8会报错:grantallprivilegesondb_name.*to'root'@'%'###Cause:java.sql.SQLSyntaxErrorException:Accessdeniedforuser'root'@'%'todatabase'db_name'解决办法:SELECT`User`,`Grant_priv......
  • 安装MYSQL_5.0/8.0教程(附数据库和客户端工具下载链接)
    1.Mysql5.7下载网盘下载(推荐):链接:https://pan.quark.cn/s/d98d2536f847提取码:kbyN 官网下载:mysql下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html跳转到上述页面,选择Archives(历史存档)选择版本-下载2.Mysql安装双击打开下载好的文件。以前安......
  • git pull遇到错误:error: Your local changes to the following files would be overwr
    error:Yourlocalchangestothefollowingfileswouldbeoverwrittenbymerge:意思是我台式机上新修改的代码的文件,将会被git服务器上的代码覆盖;我当然不想刚刚写的代码被覆盖掉,看了git的手册,发现可以这样解决:方法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pu......
  • 技嘉GA7PESH3主板,官网驱动下载,官方使用说明
    主板如图驱动下载服务器主板驱动比较难找,这里给出官网地址http://b2b.gigabyte.com/products/product-page.aspx?pid=4468#dl用户手册也在那个地址,选择一下就好了https://download.gigabyte.com/FileList/Manual/server_manual_7pesh3_sc_1001.pdf......
  • git pull 报错提示 fatal: refusing to merge unrelated histories
    从远程拉到本地的时候提示错误 造成原因:1.远程仓库和本地仓库内容不相关,合并不兼容。2.目录有问题,.git可能意外被删除。如果克隆或清理项目时可能会发生这种情况。3.从远程仓库拉取或推送数据时,分支位于不同的HEAD位置,并且由于缺乏共性而不发匹配。 我出......