可以快速搭建好环境,不知道为什么canal.adapter不会同步数据,ES无法和数据库建立连接
Mysql 5.7.24 26
elasticsearch-6.5.0
kibana-6.5.0-linux-x86_64
canal.deployer-1.1.4
canal.adapter-1.1.4
启动服务的顺序elastichsear+kibana+canal(deployer, adapter)
cd /usr/local/elasticsearch/elasticsearch/bin #执行时注意su elasticsearch 然后执
./elasticsearch
cd /usr/local/kibana/kibana/bin #执行./kibana
MySQL systemctl restart mysqld
服务端 /usr/local/canal.deployer/bin sh stop.sh关闭服务 sh startup.sh开启
客户端 /usr/local/canal.adapter/bin sh stop.sh关闭服务 sh startup.sh开启
准备工作
hostnamectl set-hostname canal-es
#修改ip 10.0.0.50
cd /etc/sysconfig/network-scripts
sed -i '/.*BOOTPROTO=*/c\BOOTPROTO="static"' ifcfg-ens33
sed -i '/.*IPADDR=*/c\IPADDR=10.0.0.50' ifcfg-ens33
systemctl restart network
yum install lrzsz
#elasticsearch-6.5.0 9200端口
#ES解压
cd /usr/local
tar -zxvf elasticsearch-6.5.0.tar.gz
mv elasticsearch-6.5.0 elasticsearch
cd /usr/local/elasticsearch/config
#vi jvm.options
#vi elasticsearch.yml
cp elasticsearch.yml elasticsearch.yml.bak
sed -i 's/#cluster.name: my-application/cluster.name: P8/' elasticsearch.yml
sed -i 's/#node.name: node-1/node.name: node-1\nnode.master: true\nnode.data: true/' elasticsearch.yml
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/' elasticsearch.yml
sed -i 's/#http.port: 9200/http.port: 9200\ntransport.tcp.port: 9300/' elasticsearch.yml
sed -i 's/#discovery.zen.ping.unicast.hosts: \["host1", "host2"\]/discovery.zen.ping.unicast.hosts: \["localhost"\]/' elasticsearch.yml
#启动
useradd elasticsearch
chown -R elasticsearch /usr/local/elasticsearch
su elasticsearch
cd /usr/local/elasticsearch/bin
#使用非root用户
./elasticsearch
#kibana-6.5.0- 5061端口
#kibana解压
cd /usr/local
tar -zxvf kibana-6.5.0-linux-x86_64.tar.gz
mv kibana-6.5.0-linux-x86_64 kibana
cd /usr/local/kibana/config
cp kibana.yml kibana.yml.bak
sed -i 's/#server.port: 5601/server.port: 5601/' kibana.yml
sed -i 's/#server.host: "localhost"/server.host: "10.0.0.50"/' kibana.yml
sed -i 's/#elasticsearch.url: "http:\/\/localhost:9200"/elasticsearch.url: "http:\/\/localhost:9200"/' kibana.yml
sed -i 's/#kibana.index: ".kibana"/kibana.index: ".kibana"/' kibana.yml
#kibana启动
cd /usr/local/kibana/bin
./kibana
#解压软件包canel(server) 5061端口
#canal.deplyer server解压
cd /usr/local
mkdir canal.deployer
tar -zxvf canal.deployer-1.1.4.tar.gz -C canal.deployer
cd /usr/local/canal.deployer/conf/example/
cp instance.properties instance.properties.bak
#vi instance.properties
#修改MySQL的地址
sed -i 's/# canal.instance.mysql.slaveId=0/canal.instance.mysql.slaveId=2/' instance.properties
sed -i '/.*canal.instance.master.address=*/c\canal.instance.master.address=10.0.0.11:3306' instance.properties
#sed -i '/.*#canal.instance.tsdb.url=*/c\canal.instance.master.url=jdbc:mysql://10.0.0.11:3306/canal_tsdb' instance.properties
#sed -i 's/#canal.instance.tsdb.dbUsername=/canal.instance.master.dbUsername=/' instance.properties
#sed -i 's/#canal.instance.tsdb.dbPassword=/canal.instance.master.dbPassword=/' instance.properties
#启动canal server(11110,11111,11112端口)
cd /usr/local/canal.deployer/bin
sh startup.sh
tail -f /usr/local/canal.deployer/logs/
#canal.deployer-1.1.4 8081端口
#解压软件包canel(server)
#canal.deplyer server解压
cd /usr/local
mkdir canal.deployer
tar -zxvf canal.deployer-1.1.4.tar.gz -C canal.deployer
cd /usr/local/canal.deployer/conf/example/
cp instance.properties instance.properties.bak
#vi instance.properties
#修改MySQL的地址
sed -i 's/# canal.instance.mysql.slaveId=0/canal.instance.mysql.slaveId=2/' instance.properties
sed -i '/.*canal.instance.master.address=*/c\canal.instance.master.address=10.0.0.11:3306' instance.properties
#sed -i '/.*#canal.instance.tsdb.url=*/c\canal.instance.master.url=jdbc:mysql://10.0.0.11:3306/canal_tsdb' instance.properties
#sed -i 's/#canal.instance.tsdb.dbUsername=/canal.instance.master.dbUsername=/' instance.properties
#sed -i 's/#canal.instance.tsdb.dbPassword=/canal.instance.master.dbPassword=/' instance.properties
#启动canal server(11110,11111,11112端口)
cd /usr/local/canal.deployer/bin
sh startup.sh
tail -f /usr/local/canal.deployer/logs/
#canal.adapter
#解压软件包canel(client)
cd /usr/local
mkdir canal.adapter
tar -zxvf canal.adapter-1.1.4.tar.gz -C canal.adapter
cat /usr/local/canal.deployer/logs/canal/canal.log
cd /usr/local/canal.adapter/conf
cp application.yml application.yml.bak
sed -i 's/# srcDataSources:/ srcDataSources:/' application.yml
sed -i 's/# defaultDS:/ defaultDS:/' application.yml
sed -i 's/# url: jdbc:mysql:\/\/127.0.0.1:3306\/mytest?useUnicode=true/ url: jdbc:mysql:\/\/10.0.0.11:3306\/mytest?useUnicode=true/' application.yml
sed -i 's/# username: root/ username: canal/' application.yml
sed -i 's/# password: 121212/ password: canal/' application.yml
sed -i 's/ - name: logger/# - name: logger/' application.yml
#指定行替换,想要优化,花了很久时间。没意义了
sed -i '62s/# properties:/ properties:/' application.yml
sed -i 's/# - name: es/ - name: es/' application.yml
sed -i 's/# hosts: 127.0.0.1:9300 # 127.0.0.1:9200 for rest mode/ hosts: 127.0.0.1:9200 # 127.0.0.1:9200 for rest mode/' application.yml
sed -i 's/# mode: transport # or rest/ mode: rest # or rest/' application.yml
sed -i 's/# cluster.name: elasticsearch/ cluster.name: P8/' application.yml
#启动canal client
cd /usr/local/canal.adapter/bin
sh startup.sh
tail -f /usr/local/canal.adapter/logs/adapter/adapter.log
强行关闭elasticsearch
netstat -tunlp|grep 5601
kill -9 进程号
#ES启动错误清单
2022-06-11 21:57:20.161 [main] ERROR com.alibaba.druid.pool.DruidDataSource - init datasource error, url: jdbc:mysql://10.0.0.11:3306/mytest?useUnicode=true
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 286 milliseconds ago. The last packet sent successfully to the server was 281 milliseconds ago.
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171)
at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:103)
at sun.security.ssl.TransportContext.kickstart(TransportContext.java:220)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:433)
at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:149)
... 91 common frames omitted
示例的java版本是1.8.0.2xx没有TLSv1, TLSv1.1加密。
cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64/jre/lib/security
cp java.security java.security.bak
sed -i 's/jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1,/jdk.tls.disabledAlgorithms=SSLv3,/' java.security
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
#vi /etc/security/limits.conf
sed -i '$a\* soft nofile 65536' /etc/security/limits.conf
sed -i '$a\* hard nofile 131072' /etc/security/limits.conf
sed -i '$a\* soft nproc 4096' /etc/security/limits.conf
sed -i '$a\* hard nproc 4096' /etc/security/limits.conf
ulimit -Hn
ulimit -Sn
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
vi /etc/sysctl.conf
sed -i '$a\#elasticsearch6.5 use' /etc/sysctl.conf
sed -i '$a\vm.max_map_count=262144' /etc/sysctl.conf
sysctl -p
sysctl -a|grep vm.max_map_count