阿里云服务器搭建elk环境

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: elasticsearch、kibana、logstash

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
监控 安全 Linux
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第18天】在RHEL环境下部署Subversion服务器需依次完成安装Subversion、创建版本库、配置服务器、启动服务、客户端连接及备份维护等步骤。确保遵循安全最佳实践,保障数据安全。
|
1月前
|
SQL 机器学习/深度学习 分布式计算
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
62 1
|
3月前
|
传感器 网络协议 物联网
手把手教你在 Windows 环境中搭建 MQTT 服务器
手把手教你在 Windows 环境中搭建 MQTT 服务器
298 0
|
5月前
|
弹性计算 JavaScript 应用服务中间件
在一台ECS服务器上优雅部署多环境:实践攻略
在ECS上部署多环境应用,通过Nginx反向代理实现。规划端口或子域名区分开发、测试和生产环境。配置应用监听不同端口,如Node.js应用修改启动脚本。【6月更文挑战第21天】
240 3
|
1月前
|
安全 Linux 数据安全/隐私保护
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第17天】在RHEL环境下部署Subversion服务器包括安装Subversion、创建和配置版本库、启动服务器、客户端连接以及备份与恢复等步骤。通过这些步骤,可确保服务器的安全性和稳定性,满足版本控制需求。
|
1月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
36 2
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
331 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
1月前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
1月前
|
域名解析 安全 网络安全
阿里云服务器WordPress环境上安装SSL证书
阿里云服务器WordPress环境上安装SSL证书
|
1月前
|
弹性计算 JSON 关系型数据库
使用ROS模板基于ECS和RDS创建WordPress环境
使用ROS模板基于ECS和RDS创建WordPress环境
下一篇
无影云桌面