搭建之前需要先查看服务器中是否安装了jdk java -version 查看jdk是否安装 java -verbose 查看jdk安装目录 未安装: 1.查看可安装java版本
yum -y list java*2.安装
yum install -y java-1.8.0-openjdk-devel.x86_64~~ 下面正式开始搭建旅程 ~~
1.直接进入elasticsearch的官网https://www.elastic.co/downloads/elasticsearch,下载最新的安装包:
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/elasticsearch-6.3.1.tar.gz2.安装位置:
cd /usr/es3.解压
tar -zxvf elasticsearch-6.3.1.tar.gz4.创建用户(使用非root启动) (1)创建elsearch用户组及elsearch用户
groupadd elastic useradd elastic -g elastic -p elasticsearch chown -R elsearch:elsearch elasticsearch(2)切换到elsearch用户再启动
su elsearch #切换账户 cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录 ./elasticsearch5.查看后台命令是否启动成功
ps aux|grep elasticsearch1、Elasticsearch下载 在官网https://www.elastic.co/downloads/elasticsearch下载elasticsearch的rpm包或者直接在终端wget下载:
[root@localhost es]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm2、安装rpm包
[root@localhost es]# rpm -ivh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm3、开启Elasticsearch服务
[root@localhost es]# service elasticsearch start 或者 [root@localhost es]# systemctl start elasticsearch4、测试Elasticsearch是否安装成功
[root@localhost es]# curl -XGET 'http://localhost:9200'如果出现以下内容说明安装成功了 5.设置Elasticsearch随机自启
systemctl status elasticsearch service elasticsearch start service elasticsearch status systemctl status elasticsearch systemctl enable elasticsearch6.开启nginx端口
(1) firewall-cmd --state 检查防火墙状态 (2)firewall-cmd --list-ports 查看已经开放的端口 (3)sudo firewall-cmd --zone=public --add-port=9200/tcp 开放9200端口 (4)systemctl restart firewalld 重启防火墙此时如不需要开启防火墙可关闭
官方的配置文档: https://www.elastic.co/guide/en/elasticsearch/reference/6.0/rpm.html 1.elasticsearch配置文件在这两个地方,有两个配置文件: elasticsearch.yml 文件用于配置集群节点等相关信息的 elasticsearch 文件则是配置服务本身相关的配置,例如某个配置文件的路径以及java的一些路径配置什么的。 2.开始配置集群节点,在服务器上编辑配置文件:
[root@localhost ~]# vim /etc/elasticsearch/elasticsearch.yml # 增加或更改以下内容 http.cors.enabled: true # 配置head http.cors.allow-origin: "*" # 配置head #http.port: 9200 # es服务的端口号,默认可不配置 # cluster.name: es_test # 集群中的名称 # node.name: node-1 # 该节点名称 # node.master: true # 意思是该节点为主节点 # node.data: true # 表示该节点是数据节点 # network.host: ip # 监听全部ip,在实际环境中应设置为一个安全的ip # network.publish_host: ip # network.bind_host: ip # #discovery.zen.ping.multicast.enabled: false # discovery.zen.ping.unicast.hosts: ["主节点ip", "子节点ip"] # 配置自动发现所有节点 # transport.tcp.port: 9300 # tcp外部访问 # #index.analysis.analyer.default.tokenizer : "ik_max_word" # ik分词器 # #index.analysis.analyer.default.type : "ik" # ik分词器注意:以上配置每行结束都要添加空格,行与行之间空一行 3.完成以上的配置之后,到主节点上,启动es服务:
systemctl start elasticsearch.serviceElasticsearch Head Plugin: 对ES进行各种操作,如查询、删除、浏览索引等。 1、下载elasticsearch-head并解压 在线下载:
wget https://github.com/mobz/elasticsearch-head/archive/master.zip或者到github下载:(采用这一种) https://github.com/mobz/elasticsearch-head
unzip elasticsearch-head-master.zip //解压zip文件 mv elasticsearch-head-master.zip /home/ntc/code/elasticsearch-head //解压到自定义目录并修改文件夹名为elasticsearch-head2、安装node 由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。(npm可以理解为maven)
wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz tar -xvf node-v8.11.3-linux-x64.tar.xz3.解压完node的安装文件后,需要配置下环境变量,编辑/etc/profile,添加
#配置jdk 如果配置过可以省略 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64 JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin:$PATH #配置nodejs export NODEJS_HOME=/usr/share/es/node-v8.11.3-linux-x64 export PATH=$PATH:$NODEJS_HOME/bin4.保存后别忘记立即执行以下
source /etc/profile5.这个时候可以测试一下node是否生效: 5、安装grunt grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动的。 (1)安装一下grunt:
cd /usr/share/es/elasticsearch-head-master(2)安装nodejs
npm install -g grunt-cli //执行后会生成node_modules文件夹 npm install注:5.0以上,elasticsearch-head 不能放在elasticsearch的 plugins、modules 目录下,否则elasticsearch启动会报错 6、修改head源码
vi /usr/share/es/elasticsearch-head-master/Gruntfile.js connect: { server: { options: { port: 9100, hostname: '*', base: '.', keepalive: true } } }增加hostname属性,设置为* 7.修改连接地址: (1)目录:
vi /es/install/es/elasticsearch-head-master/_site/app.js(2)修改head的连接地址:
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200"; 把localhost修改成你es的服务器地址,如: this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://ip:9200";8、运行head 启动nodejs (1)cd /es/install/es/elasticsearch-head-master //先跳转到head目录下 (2)grunt server //若想在后台运行,结尾追加“&” 或者使用 nohup grunt server & 启动(日志打印在nohup.out中) 9.发现head没有连接到elasticsearch
关闭elasticsearch,到config文件夹下 打开/etc/elasticsearch/elasticsearch.yml文件,在文件的末尾添加
http.cors.enabled: true http.cors.allow-origin: "*"10.重启elasticsearch和head 11.再次访问
http://ip:91001.在主节点上安装:
[root@localhost ~]# yum -y install kibana若yum安装的速度太慢,可以直接下载rpm包来进行安装:
[root@localhost ~]# cd /es/install/kibana [root@localhost es]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.1-x86_64.rpm [root@localhost es]# rpm -ivh kibana-6.3.1-x86_64.rpm2.安装完成后,对kibana进行配置:
[root@localhost ~]# vim /etc/kibana/kibana.yml # 增加以下内容 server.port: 5601 # 配置kibana的端口 server.host: ip # 配置监听ip elasticsearch.url: "http://ip:9200" # 配置es服务器的ip,如果是集群则配置该集群中主节点的ip logging.dest: /var/log/kibana.log # 配置kibana的日志文件路径,不然默认是messages里记录日志3.创建日志文件:
[root@localhost ~]# touch /var/log/kibana.log [root@localhost ~]# chmod 777 /var/log/kibana.log4.启动kibana服务,并检查进程和监听端口:
[root@localhost ~]# systemctl start kibana [root@localhost ~]# ps aux |grep kibana[root@localhost ~]# netstat -lntp |grep 5601 注:由于kibana是使用node.js开发的,所以进程名称为node 5.访问 然后在浏览器里进行访问,如:http://ip:5601/,由于并没有安装x-pack,所以此时是没有用户名和密码的,可以直接访问的 到此kibana就安装完成了,很简单,接下来就是安装logstash,不然kibana是没法用的。
logstash的安装和elasticsearch的安装是一样简单的,就是那种拆箱即用的。注意版本需要和elasticsearch的版本一致。 1.下载安装
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.1.tar.gz2.下载完之后解压
tar -xvf logstash-6.3.1.tar.gz3.启动服务测试一下是否安装成功:
cd /usr/share/es/logstash-6.3.1/bin ./logstash -e 'input { stdin { } } output { stdout {} }'如果出现下面的东西就表示成功: 输入随便什么内容: HelloWorld 展示出如下内容则表示成功
1、logstash下载 在官网https://www.elastic.co/downloads/kibana下载logstash的rpm包或者直接在终端wget下载:
[root@localhost es]#wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.1.rpm2、安装rpm包
[root@localhost es]# rpm -ivh logstash-6.3.1.rpm3.启动服务测试一下是否安装成功:
cd /usr/share/logstash/bin ./logstash -e 'input { stdin { } } output { stdout {} }'如果出现下面的东西就表示成功:
输入随便什么内容: HelloWorld 展示出如下内容则表示成功
4.同步MySQL数据 (1)创建文件夹与文件
cd /usr/share/es/logstash/bin mkdir config-mysql cd config-mysql touch mysql.conf(2)配置mysql.conf --同步多表就是在input和output 中添加type,但注意type对应要一致
input { jdbc { type => "test1表名" jdbc_driver_library => "/usr/es/elasticsearch-jdbc-2.3.4.0/lib/mysql-connector-java-5.1.38.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://ip:3306/数据库?useUnicode=true&characterEncoding=utf8&useSSL=false" jdbc_user => "root" jdbc_password => "password" jdbc_page_size => 100 jdbc_paging_enabled => true jdbc_default_timezone => "Asia/Shanghai" parameters => { "favorite_artist" => "Beethoven" } schedule => "* * 1 * *" tracking_column => "id" tracking_column_type => "numeric" use_column_value => true statement => "SELECT * from test1表名" } jdbc { type => "test2表名" jdbc_driver_library => "/usr/es/elasticsearch-jdbc-2.3.4.0/lib/mysql-connector-java-5.1.38.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&useSSL=false" jdbc_user => "root" jdbc_password => "password" jdbc_page_size => 100 jdbc_paging_enabled => true jdbc_default_timezone => "Asia/Shanghai" parameters => { "favorite_artist" => "Beethoven" } schedule => "* * * * *" tracking_column => "id" tracking_column_type => "numeric" use_column_value => true statement => "select * from test2表名" } } filter { date { timezone => "Asia/Shanghai" match => [ "created_at", "yyyy-MM-dd HH:mm:ss" ] } } output { stdout { codec => rubydebug } if [type]=="test1表名"{ elasticsearch { hosts => ["ip:9200"] index => "test1表名" document_id => "%{id}" } } if [type]=="test2表名"{ elasticsearch { hosts => ["ip:9200"] index => "test2表名" document_id => "%{id}" } } }5.启动logstash进行同步表数据
./logstash -f /usr/share/es/mysql-config/wx_push_total.conf6.如果想指定日志输出目录使用
./logstash --path.settings /etc/logstash/ --path.data /usr/share/log/actv_activity_info.log -f /usr/share/es/mysql-config/wx_push_total.conf 如果想释放控制台,就在命令之后加一个 & 符号,就可以后台运行了 nohup ./logstash --path.settings /etc/logstash/ -f /usr/share/es/mysql-config/wx_push_total.conf &nohup的意思是:当终端断开(hang up)后,服务仍然在后台执行,需要注意的是,我们需要在nohup命令执行后,按任意键回到shell提示符后,再退出终端。 7.查看日志
tail -f /var/log/logstash/logstash-plain.log -n100使用nohup命令后台启动查看日志 (1)找到nohup.out文件 2)查看日志
tail -f -n100 /usr/share/logstash/bin/nohup.out~~ 以下仅供参考 五.安装ik中文分词器 https://github.com/medcl/elasticsearch-analysis-ik/releases
六.获取当前版本
rpm -qa|grep elasticsearch rpm -qa|grep kibana rpm -qa|grep logstash七.删除版本
rpm -e kibana-6.4.2-1.x86_64