一、启动步骤
1.elasticsearch
(1)切换elasticsearch用户
(2)进入bin目录,执行命令:./elasticsearch -d
(3)访问9200
2.kibana
(1)进入bin目录,执行命令:nohup ./kibana &
(2)访问5601/status
3.logstash
(1)将ojdbc14.jar放入/logstash-core/lib/jars
(2)进入bin目录,执行命令:nohup ./logstash -f conf/logstash.conf &
4.cerebro(https://github.com/lmenezes/cerebro/releases)
(1)进入bin目录,执行命令:nohup ./cerebro -Dhttp.port=9210 > cerebro.log &
(2)访问9210
5.配置防火墙
firewall-cmd --zone=public --add-port=9210/tcp --permanent
firewall-cmd --reload
二、can not run elasticsearch as root
原因:为了安全不允许使用root用户启动
解决:es5之后的都不能使用添加启动参数或者修改配置文件等方法启动了,必须要创建用户
1、创建用户:elasticsearch
[root@iZbp1bb2egi7w0ueys548pZ bin]# adduser elasticsearch
2、创建用户密码,需要输入两次
[root@iZbp1bb2egi7w0ueys548pZ bin]# passwd elasticsearch
3、将对应的文件夹权限赋给该用户
[root@iZbp1bb2egi7w0ueys548pZ local]# chown -R elasticsearch elasticsearch-6.0.0
4、切换至elasticsearch用户
[root@iZbp1bb2egi7w0ueys548pZ etc]# su elasticsearch
5、进入启动目录启动 /usr/local/elasticsearch-6.0.0/bin 使用后台启动方式:./elasticsearch -d
[elasticsearch@vmt10003 bin]$ ./elasticsearch -d
6、启动后测试
输入curl ip:9200,如果返回一个json数据说明启动成功
三、启动后访问ip:9200没有显示json
[root@iZbp1bb2egi7w0ueys548qZ ~]# curl 10.132.131.51:9200
curl: (7) Failed connect to 10.132.131.51:9200; Connection refused
解决:修改elasticsearch.yml文件,添加 network.host: 0.0.0.0
,再次启动就可以了
[root@iZbp1bb2egi7w0ueys548qZ ~]# curl 10.132.131.51:9200
{
"name" : "dMD7fZd",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Cy4a99t2Sw2_hnJ_jtdRgA",
"version" : {
"number" : "6.0.0",
"build_hash" : "8f0685b",
"build_date" : "2017-11-10T18:41:22.859Z",
"build_snapshot" : false,
"lucene_version" : "7.0.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
四、elasticsearch在测试时报错:curl: (7) Failed connect to 192.168.109.131:9200; 拒绝连接
config/elasticsearch.yml,找到network和port,加上你虚拟机的ip和端口号,重启es服务,即可
五、Logstash安装失败提示 (TypeError) no implicit conversion from nil to integer
原因是Logstash安装路径不能含有中文,注意排查一下看看是否在中文目录下
六、Logstash同步mysql数据报错tracking_column not found in dataset
由于没有把追踪的字段放在select 里面导致,运行conf配置文件出错,如果sql语句中重新定义了column,那么使用重新定义的列名称。
然后select * from 这种写法的话,* 符号查询出来的字段名称为小写,tracking_column => 需要填写小写
七、修改Logstash中的sql_last_value值
修改syncpoint_table里面的值 就可以了。
这个文件在logstash/bin的第一层目录底下。
不然每次都是从这个最后的值开始执行的。
也可以直接删除该文件,重新启动
八、Elasticsearch-logstash同步mysql数据 字母大小写问题
logstash同步mysql数据的时候,sql里面含有的大写字母,到了ES的时候就会变成小写,这是因为在jdbc.conf里面没有添加 lowercase_column_names => false" 这个属性,就导致es里面看到的字段名称全是小写。
最后总结:es是支持大写字段名称的,如果想要保留原有的大写字母,需要在同步配置中加上
lowercase_column_names => false