配置服务器静态IP
#这里我的网卡是ens 33 vim /etc/sysconfig/network-scripts/ifcfg-ens33
#加入一下配置
IPADDR=192.168.25.10 #根据设置的子网IP配置 GATEWAY=192.168.25.2 #根据设置的网关配置 NETMASK=255.255.255.0 #根据配置的子网掩码设置 DNS1=8.8.8.8 #DNS服务器 #修改下面两个配置 ONBOOT=yes BOOTPROTO=static
#重启服务
service network restart
关闭防火墙
# 关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.service
安装JDK
#下载JDK wget --no-check-certificate https://soft.ryana.cn/%E5%BC%80%E5%8F%91%E7%9B%B8%E5%85%B3/JDK/Jdk_1.8/jdk-8u144-linux-x64.rpm
#安装JDK
rpm -ivh jdk-8u144-linux-x64.rpm
#配置环境变量 # 编辑 /etc/profile 文件 vi /etc/profile # 在文本中新增以下内容 export JAVA_HOME=/usr/java/jdk1.8.0_144 export JRE_HOME=/usr/java/jdk1.8.0_144/jre export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使环境变量生效
source /etc/profile
安装 ElasticSearch
#新建文件夹 mkdir /elasticsearch cd /elasticsearch
#下载 elasticsearch 6.5.4 版本 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz #解压 tar -xvf elasticsearch-6.5.4.tar.gz
#es不支持root用户启动 # 创建 组 groupadd elsearch # 创建 用户 useradd elsearch -g elsearch chown -R elsearch:elsearch elasticsearch-6.5.4
#配置配置文件 注意这里遵从yml语法 vim elasticsearch-6.5.4/config/elasticsearch.yml #修改 允许所有IP链接 network.host: 0.0.0.0
#因为对内存有要求所以 vim /etc/sysctl.conf # 添加下面配置 vm.max_map_count=655360 # 编辑完,使命令生效 sysctl -p
# 编辑文件 vi /etc/security/limits.conf # 修改并加入下面配置 * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
#切换用户 su elsearch #启动 -d参数为守护进程启动 ./elasticsearch-6.5.4/bin/elasticsearch
访问 ip:9200
安装IK分词器
因为不支持中文分词所以需要安装ik分词器
Github链接
https://github.com/medcl/elasticsearch-analysis-ik/releases
进入plugins目录
#下载ik分词器 wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
#解压ik分词器
unzip -d ik-analysis elasticsearch-analysis-ik-6.5.4.zip
#可能没有unzip命令
yum install -y unzip
#删除压缩包
rm -rf elasticsearch-analysis-ik-6.5.4.zip
测试
安装kibana
#下载 wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.4-linux-x86_64.tar.gz #解压 tar -xzvf kibana-6.5.4-linux-x86_64.tar.gz
#修改配置文件 vim kibana-6.5.4-linux-x86_64/config/kibana.yml #!!!这里遵循yml规范 #配置端口 server.port: 5601 #elasticsearch地址 elasticsearch.url: "http://192.168.25.10:9200" #默认索引? kibana.index: ".kibana" #允许哪些ip链接 这里是所有ip 生产环境请修改 server.host: "0.0.0.0"
启动端口为5601
./kibana-6.5.4-linux-x86_64/bin/kibana
安装logstash
#下载 wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.4.tar.gz #解压 tar -xzvf logstash-6.5.4.tar.gz
安装jdbc插件
#进入logstacsh目录 cd logstash-6.5.4 #安装插件 bin/logstash-plugin install logstash-input-jdbc
下载jdbc jar包
#下载 wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz #解压 tar -xzvf mysql-connector-java-5.1.47.tar.gz
进入 logstacsh下的config目录 新建jdbc.conf
vim jdbc.conf input { jdbc { jdbc_driver_library => "jdbc jar包路径" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://:3306/rta " jdbc_user => "" jdbc_password => " " schedule => "* * * * *" statement => "SELECT * FROM table" use_column_value => true tracking_column_type => "timestamp" tracking_column => "update_time" } }
output {
elasticsearch {
hosts => ["host1:9200", "host2:9200"]
user => "
password => "
index => "索引名"
document_id => "%{id}"
document_type =>"类型名"
}
}
---------------------------------------------------------------------------------------- jdbc_driver_library: jdbc mysql 驱动的路径,在上一步中已经下载 jdbc_driver_class: 驱动类的名字,mysql 填 com.mysql.jdbc.Driver 就好了 jdbc_connection_string: mysql 地址 jdbc_user: mysql 用户 jdbc_password: mysql 密码 schedule: 执行 sql 时机,类似 crontab 的调度 statement: 要执行的 sql use_column_value: 使用递增列的值 tracking_column_type: 递增字段的类型,numeric 表示数值类型, timestamp 表示时间戳类型 tracking_column: 递增字段的名称,这里使用 update_time 这一列,这列的类型是 timestamp
hosts: es 集群地址
user: es 用户名
password: es 密码
index: 导入到 es 中的 index 名,这里我直接设置成了 mysql 表的名字
document_id: 导入到 es 中的文档 id,这个需要设置成主键,否则同一条记录更新后在 es 中会出现两条记录,%{id} 表示引用 mysql 表中 id 字段的值
执行
./bin/logstash -f ./config/jdbc.conf
Docker安装es
安装docker
yum install docker #或者 参考 https://docs.docker.com/install/linux/docker-ce/centos/#install-using-the-repository
由于默认使用国外仓库所以
mkdir /etc/docker
vim /etc/docker/daemon.json
添加
{ "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true }
systemctl docker start #启动docker
systemctl start docker #开机启动
#因为对内存有要求所以
vim /etc/sysctl.conf
# 添加下面配置
vm.max_map_count=655360
# 编辑完,使命令生效
sysctl -p
# 编辑文件
vi /etc/security/limits.conf
# 修改并加入下面配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
以开发模式启动
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.5.4
生产环境请参考
https://www.elastic.co/guide/en/elasticsearch/reference/6.5/docker.html#docker-prod-cluster-composefile