elasticsearch集群+logstash安装
young / / / 阅读量

安装准备:

ES版本:6.4.1

环境CentOS6, jdk版本1.8

安装elasticsearch:

下载解压ES文件

修改${es_home}/config/elasticsearch.yml

配置文件:

#集群名称
cluster.name: aubin-cluster 
#节点名称
node.name: node1   
#指定该节点是否有资格被选举成为master节点,默认是true,
node.master: true       
#允许该节点存储数据(默认开启)
node.data: true             
#数据的默认存放路径
path.data: /web/soft/elasticsearch/data/
#日志的默认存放路径
path.logs: /web/soft/elasticsearch/logs/      
#bind IP地址
network.host: 0.0.0.0     
#服务端口
http.port: 9200     
#集群服务的端口
transport.tcp.port: 9300
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#集群master节点IP地址
discovery.zen.ping.unicast.hosts: ["172.18.68.11:9300"]  


服务器环境是CentOS 6,不支持SecComp,CentOS7已经解决这个问题,当前服务器不能换系统,只能禁用:
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

bootstrap.memory_lock: false 
bootstrap.system_call_filter: false

系统参数修改:
/etc/sysctl.conf:

vm.max_map_count=262144

/etc/security/limits.conf

* hard    nofile           65536
* soft    nofile           65536

/etc/security/limits.d/90-nproc.conf

*          soft    nproc     4096
root       soft    nproc     unlimited

集群安装时其他几机器上参考这个配置文件,确保同一网段下集群名称一致,则ES会自动将他们建立成集群。

安装analysis-ik(分词插件)

离线安装(确保版本和ES一致):
analysis-ik下载地址
先去下载对应版本的zip包,解析到your-es-root/plugins/下,重启你的ES。

启动ES(先创建ES用户)
内存设置一般为机器内存的1/2

设置ES内存:${ES_HOME}/conf/jvm.options

-Xms4g
-Xmx4g

启动: ./bin/elasticsearch -d
\6. 检查启动是否正常

curl -XGET "http://127.0.0.1:9200/_cat/nodes?v&pretty"

安装logstash

下载解压logstash注意版本和ES版本一致。

安装logstash的插件,用于同步mysql数据到ES
a) ./bin/logstash-plugin install logstash-input-jdbc
b) ./bin/logstash-plugin install logstash-output-elasticsearch
离线安装:点击

修改${logstash_home}/config/mysql.conf 配置文件没有就新建个.

input {
    stdin {
    }
    jdbc {
    # 数据库地址  端口  数据库名
      jdbc_connection_string => "jdbc:mysql://172.16.16.112:3306/nxdb_cms"
    # 数据库用户名      
    jdbc_user => "nxdbcms"
    # 数据库密码
      jdbc_password => "nxdbcms_2018"
    # mysql java驱动地址 
      jdbc_driver_library => "/web/soft/logstash-6.4.0/mysql-connector-java-5.1.46-bin.jar"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # sql 语句文件
      statement_filepath => "/web/soft/logstash-6.4.0/config/test1.sql"
      schedule => "* * * * *"
      #如果有多个input 输入到不同的type 课用下面的type 字段区分,后续在output下面分别做逻辑(if  type=="jdbc " then..)
      type => "jdbc"
      #use_column_value=>true
      #tracking_column => "updatetime"
      #--使用别名小写,默认都是小写,sql别名有大小写这里只认小写。
    }
}
filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}


output {
  stdout {
        codec => json_lines
    }
  elasticsearch {
        hosts  => "172.16.16.109:9200"
        index => "cms"
        document_id => "%{id}"
    }
}

启动logstash

./bin/logstash -f ../config/mysql.conf
支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章