在微服务架构中,不同的服务模块一般会部署多个节点,日志散落在多个节点的日志文件中。一旦出现问题,我们就需要登录不同的服务节点分别查看日志,非常繁琐。所以在微服务架构中,我们是需要建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
现在目前主流的分布式日志解决方案还是基于ELK(ElasticSearch、Logstash、Kibana),今天我们就动手搭建一个单机版的ELK日志收集系统并将我们的日志文件集成进去。
ElasticSearch 安装配置
-
下载
https://www.elastic.co/cn/downloads/elasticsearch
-
解压缩
tar -zxvf elasticsearch-7.17.5-linux-x86_64.tar.gz
-
创建ElasticSearch启动用户
ElasticSearch默认不允许使用root用户启动,所以我们需要创建一个elastic用户用于启动ElasticSearch,并授予用户对应权限。
useradd elasticsearch
chown -R elasticsearch:elasticsearch /usr/local/ELK/
-
修改es配置
路径为:
/usr/local/ELK/elasticsearch-7.17.5/config/elasticsearch.yml
大部分配置只要取消掉原有配置前的注释就好
cluster.name: my-application
node.name: node-1
path.data: /path/to/data
path.logs: /path/to/logs
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
如果服务器性能不好可以修改jvm参数 默认是4g
路径为:
/usr/local/ELK/elasticsearch-7.17.5/config/jvm.option
-Xms512m
-Xmx512m
修改系统配置文件
vim /etc/sysctl.conf
vm.max_map_count = 655360
vim /etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
* hard nofile 65536
* soft nofile 65536
sysctl -p
修改完成后使用sysctl -p重新加载配置.
-
切换elastic用户并启动ElasticSearch
su elasticsearch
./bin/elasticsearch -d
-d为后台启动
如果启动因为jdk报错,可以修改/bin目录下的elasticsearch-env中关于jdk脚本代码