Ubuntu20.04安装Elasticsearch

简介

ELK(Elasticsearch, Logstash, Kibana)是一套开源的日志管理和分析工具,用于收集、存储、分析和可视化日志数据。以下是如何在Ubuntu服务器上安装和配置ELK堆栈以便发送和分析日志信息的步骤。

安装Elasticsearch

首先,安装Elasticsearch

1、导入Elasticsearch公钥:

bash 复制代码
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

2、添加Elasticsearch APT存储库:

bash 复制代码
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

3、更新APT包列表并安装Elasticsearch:

bash 复制代码
sudo apt update
sudo apt install elasticsearch

4、启动并启用Elasticsearch服务:

bash 复制代码
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

安装Logstash

接下来,安装Logstash:

1、安装Logstash:

bash 复制代码
sudo apt install logstash

2、配置Logstash:

创建一个简单的配置文件 /etc/logstash/conf.d/logstash.conf,如下所示:

bash 复制代码
sudo vim /etc/logstash/conf.d/logstash.conf

示例配置文件:

bash 复制代码
input {
  beats {
    port => 5044
  }
}

filter {
  # 这里可以添加过滤器配置
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
}

3、启动并启用Logstash服务:

bash 复制代码
sudo systemctl start logstash
sudo systemctl enable logstash

安装Kibana

最后,安装Kibana:

1、安装Kibana:

bash 复制代码
sudo apt install kibana

2、启动并启用Kibana服务:

bash 复制代码
sudo systemctl start kibana
sudo systemctl enable kibana

3、配置Kibana(可选):

编辑Kibana配置文件 /etc/kibana/kibana.yml:

bash 复制代码
sudo vim /etc/kibana/kibana.yml

修改以下配置(例如,更改Kibana监听的端口):

bash 复制代码
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

安装Filebeat(发送日志到Logstash)

1、安装Filebeat:

bash 复制代码
sudo apt install filebeat

2、配置Filebeat:

编辑Filebeat配置文件 /etc/filebeat/filebeat.yml:

bash 复制代码
sudo vim /etc/filebeat/filebeat.yml

示例配置文件:

bash 复制代码
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log

output.logstash:
  hosts: ["localhost:5044"]

3、启动并启用Filebeat服务:

bash 复制代码
sudo systemctl start filebeat
sudo systemctl enable filebeat

访问Kibana

bash 复制代码
http://<your_server_ip>:5601

效果图如下:

限制elasticsearch的启动内存

由于本次安装是在虚拟机安装,配置较低,所以出现了内存不足,启动失败的情况,所以需要限制Elasticsearch启动内存。

1、修改Elasticsearch的JVM选项

Elasticsearch的JVM内存设置位于 jvm.options 文件中,通常在 /etc/elasticsearch 目录下。
编辑 jvm.options 文件

bash 复制代码
sudo vim /etc/elasticsearch/jvm.options

在这个文件中,找到以下行:

bash 复制代码
-Xms1g
-Xmx1g

-Xms 表示JVM的初始堆内存大小,-Xmx 表示JVM的最大堆内存大小。可以根据需要调整这两个值,例如将其设置为512MB:

bash 复制代码
-Xms512m
-Xmx512m

保存文件并退出。

2、重启Elasticsearch服务

在修改完 jvm.options 文件后,重启Elasticsearch服务以应用新的内存设置:

bash 复制代码
sudo systemctl restart elasticsearch

3、验证内存设置

要验证Elasticsearch是否使用了新的内存设置,可以使用以下命令查看Elasticsearch的JVM堆内存配置:

bash 复制代码
curl -X GET "localhost:9200/_nodes?filter_path=**.jvm.mem"

这个命令将返回所有节点的JVM内存使用信息,可以检查输出中 heap_init_in_bytes 和heap_max_in_bytes 的值是否与设置的值一致。
示例配置

以下是一个示例 jvm.options 文件内容,假设我们将堆内存设置为512MB:

bash 复制代码
## JVM configuration

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms512m
-Xmx512m

## Add other JVM options here as needed

注意事项

1、内存设置建议:一般建议将 -Xms 和 -Xmx 设置为相同的值,以避免JVM在运行时调整堆大小,从而提高性能稳定性。

2、系统内存分配:确保给Elasticsearch分配的堆内存不会超过系统内存的50%。例如,如果服务器有4GB内存,建议给Elasticsearch分配不超过2GB的堆内存。

3、观察性能:修改内存设置后,观察Elasticsearch的性能和内存使用情况,确保其在生产环境中稳定运行。

配置Kibana支持中文界面

1、修改Kibana配置文件

编辑Kibana的配置文件 kibana.yml,通常位于 /etc/kibana/kibana.yml。

bash 复制代码
sudo vim /etc/kibana/kibana.yml

在配置文件中,添加或修改以下行:

bash 复制代码
i18n.locale: "zh-CN"

重启Kibana服务

bash 复制代码
sudo systemctl restart kibana

重新访问界面,如图:

使用Docker Compose安装Kibana并配置内存限制和中文

1、创建Docker Compose文件:

首先,在工作目录中创建一个名为 docker-compose.yml 的文件,并填入以下内容:

bash 复制代码
version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0
    container_name: elasticsearch
    environment:
      - node.name=elasticsearch
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
    ulimits:
      memlock:
        soft: -1
        hard: -1
    mem_limit: 1g
    volumes:
      - es_data:/usr/share/elasticsearch/data
    ports:
      - "9200:9200"

  kibana:
    image: docker.elastic.co/kibana/kibana:7.17.0
    container_name: kibana
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - "5601:5601"
    mem_limit: 1g

volumes:
  es_data:
    driver: local

2、 创建Kibana配置文件

在与 docker-compose.yml 文件相同的目录中创建一个名为 kibana.yml 的文件,并填入以下内容:

bash 复制代码
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
i18n.locale: "zh-CN"

3、启动Docker Compose服务

在终端中导航到包含 docker-compose.yml 和 kibana.yml 文件的目录,然后运行以下命令以启动服务:

bash 复制代码
sudo docker-compose up -d

通过这些步骤,能够使用Docker Compose安装和配置Kibana,将其内存限制为1GB,并设置界面语言为中文。
若是没有可用的docker镜像源,可根据这篇博客进行配置docker镜像源自建

今日推荐

小说:《恐龙大军在异界》
推荐原因 :猪脚穿越到了传说中的异世界,很麻烦。 他没有变异手枪,电棒,钳子,扳手没有游戏技能,没有中华武术,很蹉跎 但他有迅猛龙,翼龙,剑龙,霸王龙 很黄很暴力!算是比较老的一篇小说了,古早爽文。

相关推荐
梓仁沐白1 小时前
ubuntu+windows双系统切换后蓝牙设备无法连接
windows·ubuntu
zhixingheyi_tian2 小时前
Spark 之 Aggregate
大数据·分布式·spark
PersistJiao2 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
宅小海5 小时前
scala String
大数据·开发语言·scala
朝九晚五ฺ5 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
小白的白是白痴的白5 小时前
11.17 Scala练习:梦想清单管理
大数据
java1234_小锋6 小时前
Elasticsearch是如何实现Master选举的?
大数据·elasticsearch·搜索引擎
Kkooe6 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒7 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
AiFlutter8 小时前
Java实现简单的搜索引擎
java·搜索引擎·mybatis