elk搭建与简单的线上应用

开源文档:

Logstash:https://www.elastic.co/guide/en/logstash/current/index.html
Filebeat:https://www.elastic.co/guide/en/beats/filebeat/current/index.html
Elasticsearch:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
Kibana:https://www.elastic.co/guide/cn/kibana/current/index.html

1、介绍elk
elk顾名思义,是Elasticsearch、Logstash和Kibana配合使用。Elasticsearch是分布式搜索和分析引擎,可以理解为数据库。Logstash服务器端数据处理管道,可以收集服务器端的数据。Filebeat是Logstash的替代软件,Filebeat的优势在于轻量级,占用的内存和cpu很小,但是分析能力不如Logstash,在遇到不需要大量数据清洗的业务场景下,推荐使用Filebeat。Kibana是数据的可视化分析界面,同样的替代组件有Grafana等。

通过Elasticsearch、Logstash和Kibana配合使用,可以实现服务器端的数据收集–>存储–>分析→展示,这一整套的流程

2、搭建elk
下面我将在自己的服务器搭建一个elk系统来实现数据的收集–>存储→分析→展示这一整套流程
首先需要两台服务器,一台elk服务器A,用于运行elk系统。一台业务服务器B,elk获取的就是这台服务器上的日志

这边我elk通过容器的方法部署
具体步骤:https://www.cnblogs.com/zhengyazhao/p/12517966.html
1)安装镜像:docker pull sebp/elk
2)修改虚拟内存:echo “vm.max_map_count = 655360” >> /etc/sysctl.conf
注:max_map_count限制一个进程可以拥有的VMA(虚拟内存区域)的数量
3)刷新内核参数:sysctl -p 查看max_map_count:sysctl vm.max_map_count
注:因为elk需要的内存比较大,我们需要先修改系统参数vm.max_map_count,不然elk容器起不来

4)创建docker的挂盘目录
mkdir -p /root/data/es/{conf,data}
mkdir -p /root/data/kibana/config
mkdir -p /root/data/logstash/config

5)将elk中原始的配置文件复制到刚刚的挂盘目录中
docker run --tid --name elk sebp/elk 先启动elk
docker cp -a elk:/opt/elasticsearch/config /root/data/es/config
docker cp -a elk:/var/lib/elasticsearch /root/data/es/data
docker cp -a elk:/opt/kibana/config/kibana.yml /root/data/kibana/config
docker cp -a elk:/opt/logstash/config /root/data/logstash/config

6)运行elk容器
docker run -tid -p 5601:5601 -p 5044:5044 -p 9200:9200 -p 9300:9300
-e ES_HEAP_SIZE=“3g” -e LS_HEAP_SIZE=“1g”
-v /root/data/es/config:/opt/elasticsearch/config
-v /root/data/es/data:/var/lib/elasticsearch
-v /root/data/kibana/config/kibana.yml:/opt/kibana/config/kibana.yml
-v /root/data/logstash/config:/opt/logstash/config
–restart=always --name elk hs/elk:20211218

注:
-p 5601:5601 映射kibana端口
-p 9200:9200 映射es端口
-p 5044:5044 映射logstash端口

7)修改下logstash的配置文件,修改下将Kibana汉化下,将容器重新打个镜像启动
在这里插入图片描述

8)访问 http://服务器A的IP:5601,就可以访问刚刚搭建的Kibana了
elk搭建与简单的线上应用_第1张图片

3、安装Filebeat
虽然上一步我们安装了elk(包含logstash),但是这边我的例子不用logstash,而是用Filebeat

1)登录业务服务器B
2)wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.2-x86_64.rpm
3)rpm -ivh filebeat-7.4.2-x86_64.rpm
4)cd /etc/filebeat
5)vim filebeat.yml 编辑配置文件filebeat.yml
6)filebeat.yml配置文件如何修改请看Filebeat开源文档,这边我简单截取我的配置文件

获取对应路径的error和info日志,并且打上标签
elk搭建与简单的线上应用_第2张图片
将获取的日志输出到elk服务器中的Elasticsearch(9200)
elk搭建与简单的线上应用_第3张图片
将无用的字段过滤掉
elk搭建与简单的线上应用_第4张图片
7)启动filebeat服务
systemctl start filebeat
systemctl enable filebeat
systemctl status filebeat

4、我们登录Kibana:http://服务器A的IP:5601
如果网络层是通的,就可以在Kibana的索引管理中看到创建的新索引:xxx
elk搭建与简单的线上应用_第5张图片

5、在索引模式中创建索引模式 ,然后就可以在Kibana中分析日志了
elk搭建与简单的线上应用_第6张图片

你可能感兴趣的:(linux运维,elk,服务器,运维)