最近打算学习elk产品,申请阿里云服务器后,便开始了环境的搭建,需要注意的是本次同一版本为7.9.3。
1、安装elasticsearch
首先创建elk目录
mkdir elk
查看当前目录 pwd
/usr/local/custom/elk
获取源文件,其中-P 表示指定目录 ./表示目录
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-linux-x86_64.tar.gz -P ./
解压源文件
tar -xzvf elasticsearch-7.9.3-linux-x86_64.tar.gz
修改配置文件
vim elasticsearch-7.9.3/config/elasticsearch.yml
node.name: node-1 #节点名称
#设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
network.host: 0.0.0.0
http.port: 9200 #端口
#设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前是单机,放入一个节点即可
cluster.initial_master_nodes: ["node-1"]
因为elasticsearch很耗费内存,所以修改jvm参数
vim elasticsearch-7.9.3/config/jvm.options
-Xms2g
-Xmx2g
运行时发现他需要jdk11的版本,而当前我配置的只是jdk8环境,不过好在,下载elasticsearch时自动下载了jdk11,这个目录和es的bin目录同级,所以我们修改启动脚本文件
vim elasticsearch-7.9.3/bin/elasticsearch
#开头几行
#配置es自带的jdk11 你安装的位置
export JAVA_HOME=/usr/local/custom/elk/elasticsearch-7.9.3/jdk
export PATH=$JAVA_HOME\bin:$PATH
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/custom/elk/elasticsearch-7.9.3/jdk/binjava"
else
JAVA=`which java`
fi
再次启动发现报错,不能以root账户启动,所以我们要创建新用户
#新增用户组 elsearch
groupadd elsearch
#用户组新增用户 elsearch
useradd elsearch -g elsearch
#修改用户的密码
passwd elsearch
使用新创建的用户
su elsearch
./elasticsearch
再次启动发现还是报错,错误原因是文件操作权限不够,因此将elk目录分给elsearch用户
chown -R elsearch:elsearch /usr/local/custom/elk/
再次启动,启动完成,然后访问http://xxx:9200/时,无法访问,经过查找后,发现需要开放阿里云端口,在网络和安全组里面配置安全组,我这里配置的是所有端口开放,配置完成后,再次访问,得到如下结果:
{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "ZnYK6DJYSduRxhEh_jF6jg",
"version" : {
"number" : "7.9.3",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
"build_date" : "2020-10-16T10:36:16.141335Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
至此,elasticsearch环境就搭建好了。这里需要注意的是,最开始云服务器是没有开启防火墙的,如果开启了防火墙,那你需要在虚拟机里面开放端口。
2、安装kibana
同样在elk目录下执行获取源文件操作
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-linux-x86_64.tar.gz -P ./
解压源文件
tar -xzvf kibana-7.9.3-linux-x86_64.tar.gz
修改配置文件
vim /kibana-7.9.3/config/kibana.yml
#端口 2 line
server.port: 5601
#地址 7 line 同样让所有地址可以访问
server.host: "0.0.0.0"
#被可视化的es地址 28 line
elasticsearch.hosts: ["http://localhost:9200"]
由于我们前面开放了所有端口,所以本次就不用再次配端口了。然后我们切换elsearch用户,运行kibana发现报错,原来还是文件操作权限不够,我们重新分配文件权限,因为我下载是root用户操作的,下载的文件是属于root的。
chown -R elsearch:elsearch /usr/local/custom/elk/
再次启动访问http://xxx:5601/出现页面,支持配置完成。
3、安装logstash
安装这个非常简单,按照如下命令操作即可
#1、获取源文件
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.9.3.tar.gz -P ./
#2、解压源文件
tar -xzvf logstash-7.9.3.tar.gz
#3、备份
cp logstash-sample.conf logstash.conf
mv logstash-sample.conf logstash-sample.conf.bak
#4、修改logstash.conf
见后面配置列表
#5、启动logstash
./bin/logstash -f ./config/logstash.conf
配置列表如下
input {
file {
#数据源路径
path => "/usr/local/custom/elk/source/movies.csv"
start_position => "beginning"
#记录导入的数据源情况
sincedb_path => "/usr/local/custom/elk/logstash-7.9.3/log/db_path.log"
}
}
filter {
csv {
separator => ","
columns => ["id","content","genre"]
}
mutate {
split => { "genre" => "|" }
remove_field => ["path", "host","@timestamp","message"]
}
mutate {
split => ["content", "("]
add_field => { "title" => "%{[content][0]}"}
add_field => { "year" => "%{[content][1]}"}
}
mutate {
convert => {
"year" => "integer"
}
strip => ["title"]
remove_field => ["path", "host","@timestamp","message","content"]
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "movies"
document_id => "%{id}"
}
stdout {}
}
至此,我们就搭建好了elk的环境了,后续将会持续更新相关学习笔记。