简介
ELK(Elasticsearch, Logstash, Kibana)是一套开源的日志管理和分析工具,用于收集、存储、分析和可视化日志数据。以下是如何在Ubuntu服务器上安装和配置ELK堆栈以便发送和分析日志信息的步骤。
安装Elasticsearch
首先,安装Elasticsearch:
1、导入Elasticsearch公钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2、添加Elasticsearch APT存储库:
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:
sudo apt update
sudo apt install elasticsearch
4、启动并启用Elasticsearch服务:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
安装Logstash
接下来,安装Logstash:
1、安装Logstash:
sudo apt install logstash
2、配置Logstash:
创建一个简单的配置文件 /etc/logstash/conf.d/logstash.conf,如下所示:
sudo vim /etc/logstash/conf.d/logstash.conf
示例配置文件:
input {
beats {
port => 5044
}
}
filter {
# 这里可以添加过滤器配置
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}
3、启动并启用Logstash服务:
sudo systemctl start logstash
sudo systemctl enable logstash
安装Kibana
最后,安装Kibana:
1、安装Kibana:
sudo apt install kibana
2、启动并启用Kibana服务:
sudo systemctl start kibana
sudo systemctl enable kibana
3、配置Kibana(可选):
编辑Kibana配置文件 /etc/kibana/kibana.yml:
sudo vim /etc/kibana/kibana.yml
修改以下配置(例如,更改Kibana监听的端口):
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
安装Filebeat(发送日志到Logstash)
1、安装Filebeat:
sudo apt install filebeat
2、配置Filebeat:
编辑Filebeat配置文件 /etc/filebeat/filebeat.yml:
sudo vim /etc/filebeat/filebeat.yml
示例配置文件:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.logstash:
hosts: ["localhost:5044"]
3、启动并启用Filebeat服务:
sudo systemctl start filebeat
sudo systemctl enable filebeat
访问Kibana
http://<your_server_ip>:5601
效果图如下:
限制elasticsearch的启动内存
由于本次安装是在虚拟机安装,配置较低,所以出现了内存不足,启动失败的情况,所以需要限制Elasticsearch启动内存。
1、修改Elasticsearch的JVM选项
Elasticsearch的JVM内存设置位于 jvm.options 文件中,通常在 /etc/elasticsearch 目录下。
编辑 jvm.options 文件:
sudo vim /etc/elasticsearch/jvm.options
在这个文件中,找到以下行:
-Xms1g
-Xmx1g
-Xms 表示JVM的初始堆内存大小,-Xmx 表示JVM的最大堆内存大小。可以根据需要调整这两个值,例如将其设置为512MB:
-Xms512m
-Xmx512m
保存文件并退出。
2、重启Elasticsearch服务
在修改完 jvm.options 文件后,重启Elasticsearch服务以应用新的内存设置:
sudo systemctl restart elasticsearch
3、验证内存设置
要验证Elasticsearch是否使用了新的内存设置,可以使用以下命令查看Elasticsearch的JVM堆内存配置:
curl -X GET "localhost:9200/_nodes?filter_path=**.jvm.mem"
这个命令将返回所有节点的JVM内存使用信息,可以检查输出中 heap_init_in_bytes 和heap_max_in_bytes 的值是否与设置的值一致。
示例配置
以下是一个示例 jvm.options 文件内容,假设我们将堆内存设置为512MB:
## 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。
sudo vim /etc/kibana/kibana.yml
在配置文件中,添加或修改以下行:
i18n.locale: "zh-CN"
重启Kibana服务
sudo systemctl restart kibana
重新访问界面,如图:
使用Docker Compose安装Kibana并配置内存限制和中文
1、创建Docker Compose文件:
首先,在工作目录中创建一个名为 docker-compose.yml 的文件,并填入以下内容:
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 的文件,并填入以下内容:
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 文件的目录,然后运行以下命令以启动服务:
sudo docker-compose up -d
通过这些步骤,能够使用Docker Compose安装和配置Kibana,将其内存限制为1GB,并设置界面语言为中文。
若是没有可用的docker镜像源,可根据这篇博客进行配置:docker镜像源自建
今日推荐
小说:《恐龙大军在异界》
推荐原因:猪脚穿越到了传说中的异世界,很麻烦。 他没有变异手枪,电棒,钳子,扳手没有游戏技能,没有中华武术,很蹉跎 但他有迅猛龙,翼龙,剑龙,霸王龙 很黄很暴力!算是比较老的一篇小说了,古早爽文。