git clone git://github.com/medcl/elasticsearch-rtf.git -b master --depth 1
创建非root用户
进入非root用户,启动:ES_JAVA_OPTS="-Xms512m -Xmx512m" ./bin/elasticsearch -d
外网访问
vi conf/elasticsearch.yml
修改network.host: 0.0.0.0
bootstrap checks failed
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
1、vi /etc/sysctl.conf
设置fs.file-max=655350
保存之后sysctl -p使设置生效
由于使用的是openvz的VPS, 所以优化前需要执行修复命令.
否则会出现"permission denied on key 'xxx'"的异常.
rm -f /sbin/modprobe
ln -s /bin/true /sbin/modprobe
rm -f /sbin/sysctl
ln -s /bin/true /sbin/sysctl
2、vi /etc/security/limits.conf 新增
* soft nofile 655350
* hard nofile 655350
3、重新使用SSH登录,再次启动elasticsearch即可。
外网访问:serverip:9200/
一般这个时候ok了,但我的虚拟机就是不行,所以我只能通过nginx反向代理的方式实现外网访
1.下载插件安装
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
在elasticsearch-head目录下node_modules/grunt下如果没有grunt二进制程序,需要执行
cd elasticsearch-head
npm install grunt --save
2.修改配置
修改elasticsearch-head下Gruntfile.js文件,默认监听在127.0.0.1下9200端口
3.启动服务
/usr/local/elasticsearch-head/node_modules/grunt/bin/grunt server
浏览器访问 http://192.168.1.12:9100/
3、出现问题
head主控页面是可以显示的,但是显示连接失败
“集群健康值: 未连接”
4、解决方案
修改elasticsearch.yml文件
vim $ES_HOME$/config/elasticsearch.yml
# 增加如下字段
http.cors.enabled: true
http.cors.allow-origin: "*"
重启es和head即可
1.下载公共密钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
2.添加yum源
vim /etc/yum.repos.d/logstash.repo
文件中写入
[logstash-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
保存退出
3.使用yum安装
yum install logstash
4.验证是否安装成功
进入 logstash 安装目录
cd /usr/share/logstash
运行
bin/logstash -e 'input { stdin { } } output { stdout {} }'
等待几秒钟 出现
The stdin plugin is now waiting for input:
然后输入
hello world
得到类似的结果
2016-11-24T08:01:55.949Z huangxd hello world
开始安装插件
bin/logstash-plugin install logstash-input-jdbc
下载
mysql-connector-java.jar
在bin目录下生成/conf-mysql/logstash-mysql-es.conf
input{
jdbc {
jdbc_driver_library => "mysql-connector-java-5.1.44-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://rm-***.mysql.rds.aliyuncs.com:3306/db_name"
jdbc_user => "db_user"
jdbc_password => "db_password"
jdbc_paging_enabled => "true"
jdbc_page_size => "1000"
jdbc_default_timezone =>"Asia/Shanghai"
schedule => "* * * * *"
statement => "select * from jm_es_employee where updatetime > :sql_last_value"
use_column_value => true
tracking_column => "updatetime"
last_run_metadata_path => "./logstash_jdbc_last_run"
}
}
output{
elasticsearch {
hosts => "es-cn-***.elasticsearch.aliyuncs.com:9200"
user => "elastic"
password => "es_password"
index => "employee"
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
然后开始执行
bin/logstash -f fielname.conf
如果出现错误 或者没有结果 可以进入 logs 目录中查看日志