关键词:
前言
本篇文章记录下自己部署ES引擎的步骤。希望能给各位带来一点帮助。
安装Docker
yum install docker
默认docker镜像文件及数据文件存放位置在/var/lib/docker目录下面
若该磁盘下容量不大,修改docker的数据卷位置(例:迁移到/data/docker目录下):
systemctl disable docker
systemctl stop docker
mkdir /data/docker
cp -R /var/lib/docker /data/docker
vi /lib/systemd/system/docker.service
在ExecStart 后面添加 --graph /data/docker
systemctl daemon-reload
systemctl start docker
systemctl enable docker
可以通过docker info 查看Docker Root Dir 来查看是否修改成功
安装ES
制作镜像文件
中文插件使用IK插件,使用Dockerfile来制作镜像文件,Dockerfile如下:
FROM elasticsearch:6.5.3
RUN ./bin/elasticsearch-plugin install -b https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.3/elasticsearch-analysis-ik-6.5.3.zip
EXPOSE 9200
EXPOSE 9300
构建镜像:
docker build -t elasticsearch-ik:6.5.3 .
docker save -o elasticsearch-ik.tar containerID
在服务器上部署镜像文件:
- 加载images
docker load -i elasticsearch-ik.tar -o elasticserch-ik:6.5.3
直接使用docker run 可能会出现以下问题:
ERROR: [4] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [1024] for user [hadoop] is too low, increase to at least [2048]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
# 会出现其中的一个或多个
解决方法:
[1]文件描述符 => 修改/etc/security/limits.conf配置
esuser soft nofile 65536 # soft表示为超过这个值就会有warnning
esuser hadr nofile 100000 # hard则表示不能超过这个值
[2]线程数 => 修改/etc/security/limits.conf配置
esuser soft nproc 2048 # soft表示为超过这个值就会有warnning
esuser hard nproc 4096 # hard则表示不能超过这个值
[3]虚拟内存 => 修改配置文件/etc/sysctl.conf
vm.max_map_count=262144
[4]system call filters =>
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
修改完毕之后重启虚拟机
esuser这个用户酌情修改
- 运行镜像:
mkdir /data/es
cd /data/es
docker run -p 9200:9200 -p 9300:9300 --name es-ik -v $PWD/conf:/config -v $PWD/logs:/logs -v $PWD/data:/data --privileged=true -d containerID
安装mysql
- 使用docker安装
docker pull mysql:5.7
mkdir /data/mysql
cd /data/mysql
docker run -p 3306:3306 --name mysql5.7 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --privileged=true -d containerID --lower_case_table_names=1
-e MYSQL_ROOT_PASSWORD=123456 初始化mysql root账号的密码,务必修改!!!务必修改!!!务必修改!!!
--lower_case_table_names=1 酌情添加,这个目的是为了让mysql不区分大小写,这里建议不添加,在my.cnf里面配置
安装Logstash
制作镜像文件:
使用logstash-input-jdbc插件来进行数据同步:
FROM logstash:6.5.3
RUN ./bin/logstash-plugin install logstash-input-jdbc
RUN sed -i ‘s/^/#&/g‘ config/logstash.yml
CMD ["-f", "/config/logstash-mysql.conf"]
构建镜像:
docker build -t logstash-jdbc:6.5.3 .
docker save -o logstash-jdbc.tar containerID
在服务器上部署镜像文件:
- 加载images
docker load -i logstash-jdbc.tar -o logstash-jdbc:6.5.3
- 下载mysql jar包:
mkdir /usr/local/logstash/conf
cd /usr/local/logstash/conf
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.zip
unzip mysql-connector-java-5.1.47.zip #解压缩
cd mysql-connector-java-5.1.47
mv mysql-connector-java-5.1.47-bin.jar ../conf
- 编写logstash-input-jdbc配置文件:
vi logstash-mysql.conf
input
jdbc
jdbc_driver_library => "/config/mysql-connector-java-5.1.47-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://mysqlIP:3306/table?characterEncoding=UTF-8&useSSL=false"
jdbc_user => "root"
jdbc_password => "123456"
jdbc_default_timezone => "Asia/Shanghai"
statement => "select field1,field2 from table where updateTime > :sql_last_value"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
schedule => "0 4 * * *"
output
stdout
codec => json_lines
elasticsearch
hosts => ["esip:9200"]
index => "index"
document_type => "document_type"
document_id => "%uuid"
mysqlIP 和esip可以通过docker inspect containerID 来查看,修改之
- 运行镜像:
docker run -d -P --name logstash-jdbc --privileged=true -v /usr/local/logstash/conf:/config containerID
参考资料
[1]:https://github.com/medcl/elasticsearch-analysis-ik
[2]:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html
docker简单部署elasticsearch(代码片段)
一、ElasticSearch是什么?Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。不过,Elasticsearch不仅仅是Lucene和全文搜索... 查看详情
docker简单部署elasticsearch(代码片段)
一、ElasticSearch是什么?Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。不过,Elasticsearch不仅仅是Lucene和全文搜索... 查看详情
docker部署elasticsearch(代码片段)
...使用IK插件,使用Dockerfile来制作镜像文件,Dockerfile如下:FROMelasticsearch:6.5.3RUN./bin/elasticsearch-plugininstall-bhttps://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.3/elas 查看详情
elasticsearch7docker集群部署(代码片段)
背景在日志分析中常用中间件ELK,工作中需要部署一套elastic7集群用于存储数据。搭建过程如下。镜像版本elasticsearch:7.16.2kibana:7.16.2部署地址:192.168.20.20/192.168.20.21/192.168.20.22创建目录sudomkdir-p/app/server/elasticsearch/temp/configs 查看详情
转docker简单部署elasticsearch(代码片段)
一、ElasticSearch是什么?Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。不过,Elasticsearch不仅仅是Lucene和全文搜索... 查看详情
docker本地部署memcached附带docker-compose部署memcached/elasticsearch/kibana/php/nginx脚本(代码片段)
docker本地部署memcached附带docker-compose部署memcached/elasticsearch/kibana/php/nginx脚本一、什么是memcachedMemcached是一个通用的分布式内存缓存系统。它通常用于通过在RAM中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取... 查看详情
docker本地部署memcached附带docker-compose部署memcached/elasticsearch/kibana/php/nginx脚本(代码片段)
docker本地部署memcached附带docker-compose部署memcached/elasticsearch/kibana/php/nginx脚本一、什么是memcachedMemcached是一个通用的分布式内存缓存系统。它通常用于通过在RAM中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取... 查看详情
docker-compose快速部署elasticsearch-8.x集群+kibana(代码片段)
...):https://github.com/zq2599/blog_demos本篇概览前文《Docker下elasticsearch8部署、扩容、基本操作实战(含kibana)》介绍了用docker快速部署es和kibana的过程,然而整个过程人工操作步骤还是多了点,能不能更简单些呢ÿ 查看详情
elasticsearch(十六):在docker中构建elasticsearch集群(代码片段)
项目中用到Elasticsearch提供索引搜索服务,由于项目要部署在docker中,希望elasticsearch也能够搭建在docker环境中,经过学习,成功在docker环境中完成elasticsearch集群环境的搭建。特将搭建过程记录如下:参考文章:https://segmentfault.com... 查看详情
docker安装部署elk教程(elasticsearch+kibana+logstash+filebeat)(代码片段)
作者:万能付博 链接:Docker安装部署ELK教程(Elasticsearch+Kibana+Logstash+Filebeat)ELK是由Elasticsearch、Logstash和Kibana三部分组件组成。Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索... 查看详情
使用docker部署elasticsearch与kibana
部署ElasticSearch1.拉取ElasticSearchdockerpullelasticsearch:7.4.22.创建挂载目录mkdir-p/usr/local/docker/elasticsearch/configmkdir-p/usr/local/docker/elasticsearch/datamkdir-p/usr/local/docker/elasticsearch/plug 查看详情
docker安装部署elk教程(elasticsearch+kibana+logstash+filebeat)(代码片段)
ELK是由Elasticsearch、Logstash和Kibana三部分组件组成。Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全... 查看详情
docker方式部署elk(代码片段)
1.拉取原始镜像:dockerpullsebp/elk:6602.启动下镜像方便进入,进行自定义配置修改:dockerrun-dit--nameelk\\-p5601:5601\\-p9200:9200\\-p5044:5044\\-v/data/elasticsearch:/var/lib/elasticsearch\\-v/etc/localtime:/etc/localtime\\sebp/ 查看详情
docker部署kibana(代码片段)
Docker部署Kibana本篇主要介绍使用Docker部署kibana用于操作Elasticsearch使用.1.前置准备1.1Elasticsearch准备可以先准备一个Elasticsearch服务后续用于使用Kibana去连接它操作,本篇就不展开了1.2查看Elasticsearch和Kibana的版本关系https://www.elastic.co... 查看详情
ubuntu环境下用docker从0到1部署elasticsearch7集群(代码片段)
... 博主爆肝了几个晚上,从0到1,终于把elasticsearch集群整出 查看详情
玩转elasticsearch之服务集群搭建实例(代码片段)
...集群部署部署镜像安装cerebro测试前言没什么就是来玩玩ElasticSearch来look。顺便记录一下,就非常nice,顺便放松一下,水一篇博客~。环境阿里云centos82核8G连接工具FinalShell这个是非常干净的服务器,咱们刚刚创建的... 查看详情
玩转elasticsearch之服务集群搭建实例(代码片段)
...集群部署部署镜像安装cerebro测试前言没什么就是来玩玩ElasticSearch来look。顺便记录一下,就非常nice,顺便放松一下,水一篇博客~。环境阿里云centos82核8G连接工具FinalShell这个是非常干净的服务器,咱们刚刚创建的... 查看详情
玩转elasticsearch之服务集群搭建实例(代码片段)
...集群部署部署镜像安装cerebro测试前言没什么就是来玩玩ElasticSearch来look。顺便记录一下,就非常nice,顺便放松一下,水一篇博客~。环境阿里云centos82核8G连接工具FinalShell这个是非常干净的服务器,咱们刚刚创建的... 查看详情