手把手教你在CentOS上安装ELK,对服务器日志进行收集(四)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: ELK 不是一款软件,而是 Elasticsearch、Logstash 和 Kibana 三种软件产品的首字母缩写。这三者都是开源软件,通常配合使用,而且又先后归于 Elastic.co 公司名下,所以被简称为 ELK Stack。根据 Google Trend 的信息显示,ELK Stack 已经成为目前最流行的集中式日志解决方案。

4.4、登录kibana,创建索引,并且搜集数据

53.jpg54.jpg55.jpg


ELK+ Filebeat的安装,到此,就基本结束了,以上只是简单的部署完了。

但是,还满足不了需求,比如,一台服务器,有多个日志文件路径,改怎么配置,接下来,我们来分类创建索引!

五、Filebeat收集多个tomcat目录下的日志

5.1、修改filebeat.yml配置文件

vim /etc/filebeat/filebeat.yml

配置多个paths收集路径,并且使用fields标签配置自定义标签log_topics,以方便做索引判断,如下:

filebeat.prospectors:
- type: log
  enabled: true
  paths:
    - /usr/tomcat7-ysynet/logs/default/common_monitor.log
  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'
  multiline.negate: true
  multiline.match: after
  fields:
    log_topics: spd-ysynet
- type: log
  enabled: true
  paths:
    - /usr/tomcat7-ysynet-sync/logs/default/common_monitor.log
  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'
  multiline.negate: true
  multiline.match: after
  fields:
    log_topics: spd-ysynet-sync
- type: log
  enabled: true
  paths:
    - /usr/tomcat7-hscm/logs/default/common_monitor.log
  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'
  multiline.negate: true
  multiline.match: after
  fields:
    log_topics: spd-hscm
- type: log
  enabled: true
  paths:
    - /usr/tomcat7-hscm-sync/logs/default/common_monitor.log
  multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'
  multiline.negate: true
  multiline.match: after
  fields:
    log_topics: spd-hscm-sync

filebeat安装包所在服务器有tomcat7-ysynettomcat7-ysynet-synctomcat7-hscmtomcat7-hscm-sync,4个tomcat,在fields下分别创建不同的log_topicslog_topics属于标签名,可以自定义,然后创建不同的值!

5.2、修改logstash.conf配置文件

接着,修改logstash中的配置文件,创建索引,将其输出

vim /etc/logstash/conf.d/logstash.conf

内容如下:

input{
    beats {
        port => 5044
        codec => plain {
          charset => "UTF-8"
        }
    }
}
filter{
    mutate{
        remove_field => "beat.hostname"
        remove_field => "beat.name"
        remove_field => "@version"
        remove_field => "source"
        remove_field => "beat"
        remove_field => "tags"
        remove_field => "offset"
        remove_field => "sort"
    }
}
output{
    if [fields][log_topics] == "spd-ysynet"  {
        stdout { codec => rubydebug }
        elasticsearch {
            hosts => ["localhost:9200"]
            index => "spd-ysynet-%{+YYYY.MM.dd}"
        }
    }
    if [fields][log_topics] == "spd-ysynet-sync"  {
        stdout { codec => rubydebug }
        elasticsearch {
            hosts => ["localhost:9200"]
            index => "spd-ysynet-sync-%{+YYYY.MM.dd}"
        }
    }
    if [fields][log_topics] == "spd-hscm"  {
        stdout { codec => rubydebug }
        elasticsearch {
            hosts => ["localhost:9200"]
            index => "spd-hscm-%{+YYYY.MM.dd}"
        }
    }
    if [fields][log_topics] == "spd-hscm-sync"  {
        stdout { codec => rubydebug }
        elasticsearch {
            hosts => ["localhost:9200"]
            index => "spd-hscm-sync-%{+YYYY.MM.dd}"
        }
    }
}

其中filter表示过滤的意思,在output中使用filebeat中配置的fields信息,方便创建不同的索引!

#表示,输出到控制台
stdout { codec => rubydebug }
#elasticsearch表示,输出到elasticsearch中,index表示创建索引的意思
elasticsearch {
   hosts => ["localhost:9200"]
   index => "spd-hscm-sync-%{+YYYY.MM.dd}"
}

5.3、测试修改的logstash.conf配置文件

输入如下命令,检查/etc/logstash/conf.d/logstash.conf文件,是否配置异常!

/usr/share/logstash/bin/logstash  -f /etc/logstash/conf.d/logstash.conf --config.test_and_exit

输入结果,显示Configuration OK,就表示没问题!56.jpg

5.4、重启相关服务

最后,重启filebeat

systemctl restart filebeat

关闭logstash服务

systemctl stop logstash

以指定的配置文件,启动logstash,输入如下命令,回车就ok了,执行完之后也可以用ps -ef|grep logstash命令查询logstash是否启动成功!

nohup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf &

5.5、登录kibana,创建索引

登录kibana,以同样的操作,页面创建索引,查询收集的日志,以下是小编的测试服务器搜集的信息

57.jpg58.jpg

第3、4、5步骤,是筛选elasticsearch今天收集的日志信息!

59.jpg

六、总结

整个安装过程已经介绍完了,安装比较简单,复杂的地方就是配置了,尤其是logstashkibananginxfilebeat,这几个部分,看了网上很多的介绍,elk配置完之后,外网无法访问kibana,使用nginx代理到kibana,页面就出来了;同时,在配置filebeat多个路径的时候,logstash也配置了输出索引,但是就是没有日志出来,页面检查说Elasticsearch没有找到数据,最后才发现,一定要让logstash指定/etc/logstash/conf.d/logstash.conf配置文件,进行启动,那么就有日志出来了,整篇文章,可能有很多写的不到位的地方,请大家多多包含,也可以直接给我们留言,以便修正!

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
21天前
|
NoSQL 关系型数据库 应用服务中间件
jdk1.8、mysql、redis、nginx centos云服务器安装配置
jdk1.8、mysql、redis、nginx centos云服务器安装配置
|
1月前
|
监控 应用服务中间件 nginx
使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)
ELK的架构有多种,本篇分享使用的架构如图所示: Beats(Filebeat) -> -> Elasticsearch -> Kibana,目前生产环境一天几千万的日志,内存占用大概 10G
69 4
|
27天前
|
存储 编解码 监控
实验模拟 搭建elk 日志分析系统
实验模拟 搭建elk 日志分析系统
|
27天前
|
存储 监控 Java
ELK 企业级日志分析系统 简单介绍
ELK 企业级日志分析系统 简单介绍
|
1月前
|
网络协议 物联网 Linux
你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】
你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】
102 0
|
1月前
|
Linux 网络安全 数据库
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
|
1月前
|
存储 安全 网络协议
云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
云服务器 Centos7 部署 Elasticsearch 8.0 + Kibana 8.0 指南
53 0
|
1月前
|
安全 Linux 网络安全
记录_centos搭建ftp服务器
记录_centos搭建ftp服务器
29 0
|
1月前
|
Linux 应用服务中间件 nginx
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
【PUSDN】centos查看日志文件内容,包含某个关键字的前后5行日志内容,centos查看日志的几种方法
80 0
|
1月前
|
Linux
百度搜索:蓝易云【centos系统应用日志文件被删,空间无法释放怎么办】
通过以上方法,你应该能够解决应用日志文件被删除但空间无法释放的问题,并恢复磁盘空间。
40 1