一、拉取镜像
docker pull elasticsearch:5.6.8二、创建容器
docker run -di --name=tensquare_elasticsearch -p 9200:9200 elasticsearch:5.6.8此时的elasticsearch还无法使用,因为没有解决跨域和远程连接问题
三、解决跨域和远程连接
1、拷贝配置文件到宿主机
docker cp tensquare_elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml2、修改elasticsearch.yml文件
解决远程连接:去掉transport.host: 0.0.0.0之前的#解决跨域问题:添加 http.cors.enabled: true http.cors.allow-origin: "*"四、停止并删除容器
docker stop 01188db41c16 docker rm 01188db41c16五、重新执行创建容器命令
docker run -di --name=tensquare_elasticsearch -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:5.6.8六、系统调优:修改/etc/security/limits.conf,追加
* soft nofile 65536 * hard nofile 65536七、系统调优:修改修改/etc/sysctl.conf,追加
vm.max_map_count=655360八、修改内核参数马上生效
sysctl -p九、重启容器
docker restart tensquare_elasticsearch十、测试
一、拉取镜像
docker pull mobz/elasticsearch-head:5二、安装容器
docker run -di --name=myhead -p 9100:9100 mobz/elasticsearch-head:5三、连接
Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。
业务上的作用:让数据库与es索引库的数据定期进行同步
注意:Logstash的版本需要与elasticsearch的版本一致,否则可能会出现问题。
测试代码:进入logstash的bin目录下使用命令行测试
logstash -e 'input{stdin{}} output{stdout{}}'同步elasticsearch与数据库的数据:在logstash目录下创建目录(如:abc目录),将以下代码文件名命名为my.conf
input { jdbc { # mysql jdbc connection string to our backup databse jdbc_connection_string =>"jdbc:mysql://192.168.220.130:3306/tensquare_article?characterEncoding=UTF8" # the user we wish to excute our statement as jdbc_user => "root" jdbc_password => "123456" # the path to our downloaded jdbc driver jdbc_driver_library => "D:/apache-maven-3.3.9/mavenRepository/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar" # the name of the driver class for mysql jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000" #以下对应着要执行的sql的绝对路径。 statement => "select id,title,content from tb_article" #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新 schedule => "* * * * *" } } output { elasticsearch { #ESIP地址与端口 hosts => "localhost:9200" #ES索引名称(自己定义的) index => "tensquare" #自增ID编号 document_id => "%{id}" document_type => "article" } stdout { #以JSON格式输出 codec => json_lines } }执行同步代码
logstash -f ../abc/my.conf