Elasticsearch学习
- 重要:安装es,ram至少要2G,如果加logstash连接数据库,还要再加内存,4G起
安装es和kibana
重要:建立docker网络,因为es和kibana要连接
1 | docker network create elastic |
安装es
1 | docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.9 |
安装kibana
1 | docker pull docker.elastic.co/kibana/kibana:7.17.9 |
kibana改中文
把docker的文件复制出来到data路径下
1 | docker cp kib01-test:/usr/share/kibana/config/kibana.yml /data |
在文件中添加添加一行配置i18n.locale: "zh-CN"

然后把修改的文件粘贴回去
1 | docker cp /data/kibana.yml kib01-test:/usr/share/kibana/config/ |
拉取logstash镜像,版本要和es,kibana一致
1 | docker pull logstash:7.17.9 |
下载 mysql connect文件,解压后将jar文件复制到data目录下
写logstash.conf文件
1 | input { |
input 部分具体参数说明:
jdbc_connection_string:JDBC 连接字符串,用于连接 MySQL 数据库。这里指定了 IP 地址 172.17.0.5(注意这里是 Docker 内部 IP,可通过docker inspect container_id命令查看 Docker 内部 IP)。jdbc_user:连接数据库的用户名。jdbc_password:连接数据库的密码。jdbc_driver_library:指定 JDBC 驱动的 jar 文件路径。jdbc_driver_class:JDBC 驱动类,这里使用的是com.mysql.cj.jdbc.Driver。jdbc_paging_enabled:启用分页查询,这里设置为true。jdbc_fetch_size:每次查询返回的数据量,这里设置为 2000,以避免内存溢出(OOM)。jdbc_page_size:每页查询的数据量,这里设置为 2000。schedule:定时任务的调度设置,类似于 Crontab 表达式。statement:SQL查询语句(也可以使用statement_filepath指定 SQL 文件的地址)。lowercase_column_names:是否将字段名转换为小写,这里设置为 false。codec:指定字符编码,这里设置为UTF-8,以处理中文乱码问题。
output 部分具体参数说明:
hosts:Elasticsearch 集群的地址。index:指定 Elasticsearch 索引的名称,这里使用了动态索引名%{user_index},表示根据 MySQL 数据表中的user_index字段来决定索引名称。document_id:指定 Elasticsearch 文档的 ID,这里使用了动态ID%{user_id},表示根据 MySQL 数据表中的user_id字段来决定文档 ID。user:连接 Elasticsearch 的用户名(如果 Elasticsearch 没有设置,这个配置项可为空)。password:连接 Elasticsearch 的密码(如果 Elasticsearch 没有设置,这个配置项可为空)。
创建容器并启动
1 | docker run -d -v /home/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \ |
我服务器ram太小,等扩容后再验证
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 竹兰小筑!
评论




