ELK 5.X 环境搭建与常用插件安装
环境介绍:
ip: 192.168.250.131
os: CentOS 7.1.1503 (Core)
内存不要给的太低,至少4G吧,否则elasticsearch启动会报错。
软件及其版本 这里软件包都解压在了/opt下,注意!
logstash-5.4.0.tar.gz
elasticsearch-5.4.0.tar.gz
kibana-5.4.0-linux-x86_64.tar.gz
jdk-8u92-linux-x64.tar.gz
安装前准备:
(把jdk1.8以下的都要卸载掉,否则elasticsearch会报错的)
cat /etc/profile 添加以下内容
export jdk=/opt/jdk
export PATH=$jdk/bin:$PATH
export elasticsearch=/opt/elasticsearch
export PATH=$elasticsearch/bin:$PATH
export logstash=/opt/logstash
export PATH=$logstash/bin:$PATH
export kibana=/opt/kibana
export PATH=$kibana/bin:$PATH
环境设置
/etc/security/limits.conf 文件中添加以下内容
* soft nofile 65536
* hard nofile 65536
* soft memlock unlimited
* hard memlock unlimited
/etc/sysctl.conf 添加以下内容 sysctl -p 生效
fs.file-max = 183723 (l7版本中默认的)
vm.max_map_count = 262144
cat /etc/hosts
192.168.250.131 elk.cluster1.com
192.168.250.128 elk.cluster2.com
192.168.250.127 elk.cluster3.com
一、安装部署软件,依次是elasticsearch、logstash、kibana
elasticsearch:
useradd elasticsearch
chown -R elasticsearch. elasticsearch
/opt/elasticsearch/config/elasticsearch.yml 修改配置文件(注意,“:”后必须要有空格,否则会有语法错误,vim打开写对时,会变色)
cluster.name: elk-cluster #自定义集群名,相同集群内的节点设置相同的集群名
node.name: elk.cluster1.com #自定义节点名,建议统一采用节点hostname
path.data: /opt/elasticsearch #定义elasticsearch家目录
path.logs: /opt/elasticsearch/logs #定义elasticsearch日志目录
bootstrap.memory_lock: true #ES的mlockall属性允许ES节点不交换内存
network.host: 192.168.250.131 #es监听地址,也可采用”0.0.0.0”,允许所有设备访问
http.port: 9200 #es监听端口,可不取消注释,默认即此端口
discovery.zen.ping.unicast.hosts: ["elk.cluster1.com","elk.cluster2.com","elk.cluster2.com","elk.cluster2.com"] #集群节点发现列表,也可采用ip的形式
discovery.zen.minimum_master_nodes: 3 #集群可做master的最小节点数
以下两个是为安装head插件做准备:
http.cors.enabled: true #开启跨域访问支持,默认为false
http.cors.allow-origin: "*" #跨域访问允许的域名地址,使用正则表达式
su - elasticsearch -c "/opt/elasticsearch/bin/elasticsearch -d" 启动服务
测试是否安装成功
curl 192.168.250.131:9200
为elasticsearch安装head插件
yum -y install git npm xz #npm,xz在安装插件的时候会用到
1、下载插件 git clone git://github.com/mobz/elasticsearch-head.git
2、第二步,安装node
①由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。(npm可以理解为maven)
去官网下载nodejs,https://nodejs.org/en/download/
②然后解压nodejs的安装包:在/opt下
mv node-v6.10.3-linux-x64 node
# set node environmentexport in /etc/profile
export NODE_HOME=/opt/node
export PATH=$PATH:$NODE_HOME/bin
source /etc/profile
测试一下
echo $NODE_HOME
node -v
v6.10.3
npm -v
3.10.10
③安装head插件
cd /opt/elasticsearch-head
npm install
grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.X里的head插件就是通过grunt启动的。
cd /opt/elasticsearch-head/node_modules/grunt/bin
[root@elk bin]# ls
grunt
[root@elk bin]#./grunt -V
grunt-cli v1.2.0
grunt v1.0.1
备注:我们在执行npm install 的时候,默认已经安装,如果自己安装的话,需要执行npm installgrunt-cli
4、修改head源码
由于head的代码还是2.6版本的,直接执行有很多限制,比如无法跨机器访问。因此需要用户修改两个地方:
①修改服务器监听地址
vim /opt/elasticsearch-head/Gruntfile.js #添加下面的内容
connect: {
server: {
options: {
port: 9100,
hostname: "*",
base: '.',
keepalive: true
}
}
}
});
增加hostname属性,设置为*
vim /opt/elasticsearch-head/_site/app.js #修改head的连接地址
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.250.131:9200"; ##把localhost修改成你es的服务器地址
5、运行head
然后在head目录中,执行npm install 下载以来的包:
pwd
/opt/elasticsearch-head
[root@elk elasticsearch-head]# npm install
重启你的elasticsearch
su - elasticsearch -c "/opt/elasticsearch/bin/elasticsearch -d"
启动nodejs
cd /opt/elasticsearch-head/node_modules/grunt/bin
nohup ./grunt server & 或者 -d 选项 后台运行
这个时候,访问http://192.168.250.131:9100就可以访问head插件了.
使用RESTful API进行交互
查看当前索引和分片情况,稍后会有插件展示
curl -i -XGET 'http://192.168.3.159:9200/?pretty' -d '{
"query" {
"match_all": {}
}
}'
logstash:
kibana:
/opt/kibana/config/kibana.yml
server.host: "192.168.250.131"
server.maxPayloadBytes: 1048576
server.name: "elk.cluster1.com"
elasticsearch.url: "http://192.168.250.131:9200"
nohup kibana -c kibana.yml &