目录
1.服务器环境
系统版本:Red Hat Enterprise Linux Server release 6.8
截图安装的elk是5.3.1版本的,按照文档搭建6.2.4版本的也能成功。
elk官网:https://www.elastic.co/cn/
elk是三个产品,都是同一家。
2.安装JDK
执行命令:
java -version
发现系统上的JDK符合安装ELK要求,所以这里不再安装。附JDK版本更换:
Java配置1-卸载、安装、查找JDK-图文_JustDI-CM的博客-CSDN博客
3.安装elasticsearch
1)安装
上传安装介质,并解压至/usr/local路径下
2)修改配置文件
修改 /usr/local/elasticsearch-5.3.1/config/elasticsearch.yml
修改前需要备份
sudo cp elasticsearch.yml elasticsearch.yml.20180724.bak
修改配置文件
sudo vim /usr/local/elasticsearch-5.3.1/config/elasticsearch.yml
修改内容如下:
#这里指定的是集群名称,需要修改为对应的,开启了自发现功能 后,ES会按照此集群名称进行集群发现
cluster.name: test_es_cluster(elasticsearch集群名)
node.name: test_es_cluster_uat1(本节点名,要求唯一)
#数据目录
path.data: /home/XX/elk6.2.4/edata
path.logs: /home/XX/elk6.2.4/elog
# 修改一下ES的监听地址,这样别的机器也可以访问
network.host: 0.0.0.0
# 默认的端口号
http.port: 9200
discovery.zen.ping.unicast.hosts: ["IP1", "IP2"](IP注意修改)
http.cors.enabled: true
http.cors.allow-origin: "*"
# Centos6不支持SecComp,而ES5.2.0默认 bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
3)修改系统参数
设置内核参数,确保系统有足够资源启动ES,修改之前备份
sudo cp sysctl.conf sysctl.conf.20180724.bak
sudo vim /etc/sysctl.conf
增加以下参数
vm.max_map_count=655360
执行以下命令,确保生效配置生效:
sudo sysctl -p
4)设置资源参数
修改之前备份
sudo cp limits.conf limits.conf.20180724.bak
sudo vim /etc/security/limits.conf
修改内容如下:
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
5)设置用户资源参数
修改前备份
sudo cp 90-nproc.conf 90-nproc.conf.20180724.bak
设置elk用户参数
sudo vim 90-nproc.conf
添加一行:
XXuser soft nproc 65536
6)创建数据和日志目录
sudo mkdir -pv /data/elk/{data,logs}
赋予用户权限
sudo chown -R XXuser:XXuser /data/elk/
sudo chown -R XXuser:XXuser /usr/local/elasticsearch-5.3.1/
7)启动elasticsearch
切到elkuser用户elasticsearch的bin目录下
cd /usr/local/elasticsearch-5.3.1/bin/
./elasticsearch
发现报错,原因是先前修改的系统参数没有生效。退出,重新登录即可。
由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,建议创建一个单独的用户用来运行ElasticSearch。如果需要root用户启动(高版本已不支持),可执行命令:
./elasticsearch -Des.insecure.allow.root=true
出现start,表示elasticsearch启动成功
启动成功后,使用命令:Ctrl+z,将服务转入后台运行(不建议)。
查看启动
ps aux | grep elasticsearch
也可以通过浏览器访问elasticsearch:ip:port,查看能否出现界面
ES还可以后台启动(建议),命令如下
./elasticsearch -d
4.安装logstash
1)安装
上传安装介质,并解压至/usr/local目录下
sudo tar -xzvf logstash-5.3.1.tar.gz -C /usr/local/
解压完成后logstash就算安装好了
2)创建配置文件
启动前需要创建配置文件
这里直接创建一个测试文件
cd /usr/local/logstash-5.3.1/config
sudo vim logstash-simple.conf
编辑的是一个空文件,在文件中添加以下内容:
input { stdin { } }
output {
stdout { codec=> rubydebug }
}
2)启动logstash
切到logstash的bin目录下
cd /usr/local/logstash-5.3.1/bin
sudo ./logstash -f ../config/logstash-simple.conf
启动后,可输入信息验证是否启动成功
验证成功后,执行命令:
Ctrl+c
停止logstash服务
编辑新的启动文件,测试EL之间的连通
cd /usr/local/logstash-5.3.1/config
sudo vim logstash-test.conf
文件内容:
input { stdin { } }
output {
elasticsearch {hosts => "ip:port"}(注意替换)
stdout { codec=> rubydebug }
}
该文件中定义了stdout和elasticsearch作为output,这样的多重输出即保证输出结果显示到屏幕上,同时也输出到elastisearch中。
注意文件符号全是英文符号。
启动logstash
sudo ./logstash -f ../config/logstash-test.conf
启动成功后,使用命令:Ctrl+z,将服务转入后台运行(不建议)
也可使用,nohup启动(建议)
sudo nohup ./logstash -f ../config/logstash-test.conf &
使用 curl 命令发送请求来查看 ES 是否接收到了数据:
curl 'http://ip:port/_search?pretty'(注意修改)
若连通性无结果可能是系统内存不够,导致elasticsearch和logstash不能同时启动。
Elasticsearch要求最少4G内存,logstash最好也要有4G内存。所以若单机安装elk,需要给足内存。建议分开安装elk。
5.安装kibana
1)安装
上传安装介质,并解压至/usr/local目录下
2)修改配置文件
切到配置文件路径
cd /usr/local/kibana-5.3.1-linux-x86_64/config
修改之前备份
修改以下参数:
server.port: 5601 #开启默认端口5601
server.host: "ip" #kibana的IP
elasticsearch.url: http://ip:port #elasticsearch服务的ip:port地址
kibana.index: ".kibana"
3)启动kibana
切至kibana安装目录的bin目录下
cd /usr/local/kibana-5.3.1-linux-x86_64/bin
启动
sudo ./kibana
出现以下即为成功
启动成功后,使用命令:Ctrl+z,将服务转入后台运行(不建议)
或直接使用后台启动:
sudo ./kibana -d
补充下,也可以用nohup的方式启动(建议)
sudo nohup ./kibana &
这个会生成一个nohup.out文件,里面是kibana运行日志
浏览器访问:kibana的ip:port
出现以下即为成功
补充:
查看elasticsearch进程
ps -ef | grep elasticsearch
查看logstash进程
ps -ef | grep logstash
查看kibana进程
ps -ef | grep node
停止服务,杀死进程即可
sudo kill -9 进程号