且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

阿里云服务器搭建elk环境

更新时间:2021-10-11 21:01:49

最近打算学习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的环境了,后续将会持续更新相关学习笔记。