一、ELK日志归集之Elasticsearch安装(CentOS 7.5)
二、ELK日志归集之LogStash安装(CentOS 7.5)
三、ELK日志归集之Kibana安装(CentOS 7.5)
四、.NET5 WebApi 直接输出到Elasticsearch
五、.NET5 WebApi 日志利用Logstash收集到Elasticsearch中
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
Logstash的作用和特点:以下是官网的介绍,大致归纳为采集、筛选、输出、可扩展
准备一台全新的Linux服务器,虚拟机也可以
10.3.1.171
安装一下基本的插件
yum -y install net-tools install wget java lrzsz unzip zip vim
接下来,将从文件下载开始,一步一步记录安装过程。
1、下载logstash安装包
官方下载页面:https://www.elastic.co/cn/downloads/logstash
>cd /opt/package >wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0-linux-x86_64.tar.gz
2、解压logstash-7.14.0-linux-x86_64.tar.gz
>cd /opt/apps >tar -zxvf /opt/package/logstash-7.14.0-linux-x86_64.tar.gz
3、修改配置文件
>cd /opt/apps/logstash-7.14.0/config
logstash.yml 是主要的配置文件,我们只修改它
>vim /opt/apps/logstash-7.14.0/config/logstash.yml
修改如下:
//修改成以下,对外开放 http.host: 0.0.0.0
4、启动logstash,官方提供多种方式,我这只演示几种典型和常用的
>cd /opt/apps/logstash-7.14.0/bin
直接从字符串配置中启动:
>./logstash -e 'input { stdin { } } output { stdout {} }'
>./logstash -e 'input { stdin{} } output { elasticsearch {hosts => ["10.3.1.171:9200"] index => "mytest-%{+YYYY.MM.dd}" }}'
从配置文件中启动:
>./logstash -f redis.conf
重点介绍下配置文件的编写:
配置文件中,主要定义了日志的来源,存储的去处,以及筛选的规则等,建议多个来源的配置文件独立。
比如:Redis、RabbitMQ、Nginx、AspNetCoreWebAPI等,产生的日志不在一个地方,格式也不同,那么可以建立多个配置文件来进行收集日志
当然,如果你的项目不多,也可以用一个配置文件搞定
比如:
# Sample Logstash configuration for creating a simple # Beats -> Logstash -> Elasticsearch pipeline. input { file{ path => "/nginx-1.16.1/logs/*.log" codec => json start_position => "beginning" type => "nginx-log" } file{ path => "/ElkDemo.Api/ConsoleApp1/bin/Debug/netcoreapp3.1/Logs/*.log" codec => json start_position => "beginning" type => "consoledemo-log" } } output { if [type] == "nginx-log" { elasticsearch { hosts => ["http://10.3.1.171:9200"] index => "nginx-log-%{+YYYY.MM.dd}" } } if [type] == "consoledemo-log" { elasticsearch { hosts => ["http://10.3.1.171:9200"] index => "consoledemo-log-%{+YYYY.MM.dd}" } } stdout{ codec => rubydebug } }
5、查看收集到的数据文件夹
>ll /opt/apps/elasticsearch-7.14.0/data/nodes/0/indices/
因为现在只有一个节点,nodes下面只有0
6、开启防火墙,支持对外开放
>firewall-cmd --permanent --zone=public --add-port=9600/tcp >systemctl reload firewalld
7、查看启动情况
>netstat -antp |grep 9600
8、关闭服务
>ps -ef|grep logstash|grep -v grep|awk '{print $2}'|xargs kill -9
9、外部访问测试
看到以下情况,就是正常了
{ "host": "localhost.localdomain", "version": "7.14.0", "http_address": "0.0.0.0:9600", "id": "5e216287-cfca-475a-b409-435c58c2ceb1", "name": "localhost.localdomain", "ephemeral_id": "21c4fd6b-df1a-4580-b22b-1b7db5479cac", "status": "green", "snapshot": false, "pipeline": { "workers": 4, "batch_size": 125, "batch_delay": 50 }, "build_date": "2021-07-29T19:43:14Z", "build_sha": "29d52f1e490de0a97194846bbfc2aa00dce23b54", "build_snapshot": false }
留下您的脚步
最近评论