filebeat收集多个域名网站日志并存储到不同es索引库过程

目录
  • 1.为什么要针对不同的应用系统创建不同的索引
  • 2.搭建web集群环境
    • 2.1.环境准备
    • 2.2.web集群部署
    • 2.3.配置应用支持json格式的日志输出
  • 3.配置filebeat实现不同日志对应不同索引
    • 3.1.实现思路
    • 3.2.配置filebeat不同日志使用不同索引库
    • 3.3.在es上查看创建的索引库
    • 3.4.在kibana上关联es索引库
      • 3.4.1.创建www索引库
      • 3.4.2.创建bbs索引库
      • 3.4.3.创建blog索引库
      • 3.4.4.所有应用索引库都一一对应上了
  • 4.在kibana统计日志分析
    • 4.1.统计nginx01主机www应用200状态码数量
    • 4.2.统计所有节点访问状态码为200的日志

1.为什么要针对不同的应用系统创建不同的索引

公司生产环境中一台机器上一定会运行着多个域名的应用,web应用也是集群的方式,如果filebeat收集来的日志都是分散存储,且在es上建立的索引也都是分散的,这样不利于日志的聚合汇总,因此就需要把同一种应用的不同机器上的日志全部采集过来存储到一个索引库中,在kibana根据各种条件去匹配

2.搭建web集群环境

2.1.环境准备

IP 服务 应用
192.168.81.210 nginx01 bbs、blog、www
192.168.81.220 nginx02 bbs、blog、www

2.2.web集群部署

所有节点都按如下配置

1.安装nginx
yum -y install nginx
2.配置站点配置文件
cat www.conf
server{
	server_name www.jiangxl.com;
	listen 80;
	location ~ / {
		root /web/www;
		index index.html;
	}
}
cat bbs.conf
server{
	server_name bbs.jiangxl.com;
	listen 80;
	location ~ / {
		root /web/bbs;
		index index.html;
	}
}
cat blog.conf
server{
	server_name blog.jiangxl.com;
	listen 80;
	location ~ / {
		root /web/blog;
		index index.html;
	}
}
3.创建站点路径
mkdir /web/{www,bbs,blog} -p
chown -R nginx.nginx /web/
echo "www index" > /web/www/index.html
echo "bbs index" > /web/bbs/index.html
echo "blog index" > /web/blog/index.html
4.重载nginx
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl reload nginx
5.访问站点
curl www.jiangxl.com bbs.jiangxl.com blog.jiangxl.com
www index
bbs index
blog index

2.3.配置应用支持json格式的日志输出

所有节点都这样配置

cat www.conf
server{
	server_name www.jiangxl.com;
	listen 80;
	location ~ / {
		root /web/www;
		index index.html;
	}
	access_log  /var/log/nginx/www_access.log  main;
}
cat bbs.conf
server{
	server_name bbs.jiangxl.com;
	listen 80;
	location ~ / {
		root /web/bbs;
		index index.html;
	}
	access_log  /var/log/nginx/bbs_access.log  main;
}
cat blog.conf
server{
	server_name blog.jiangxl.com;
	listen 80;
	location ~ / {
		root /web/blog;
		index index.html;
	}
	access_log  /var/log/nginx/blog_access.log  main;
}

3.配置filebeat实现不同日志对应不同索引

3.1.实现思路

**日志索引思路:**如何才能让filebeat根据不同的日志路径去创建不同的索引,其实我们可以想一下ls -l命令,使用ls -l命令才能得到文件的详细信息,但是使用ll也可以得到,这是为什么呢?是由于ll仅仅只是一个别名,我们也可以当成一个标记,ll对应的就是ls -l命令

那么日志也一样的,我们可以把www_access.log当成是一个标记,当标记内容为www_access.log时,我们就把他的日志存储在www_access_xxx的索引库中

具体配置:如果一个主机上有多个不同应用的日志需要采集,我们可以定义多个type类型,最后根据定义的标记在indices中进行匹配

**日志聚合思路:**我们也可以将所有机器的tomcat、nginx日志进行聚合收集,不需要根据应用去区分,而是把所有的tomcat日志收集在一起,这样便于开发人员去查询日志,查哪台主机的就在kibana上进行过滤就行了

如下图所示,tomcat就是聚合收集,查哪台机器的日志就添加一个筛选写上主机名就可以了

filebeat标记匹配语法:

filebeat.inputs:
- type: log 									//一个日志一个type
  enabled: true										//是否写在es中
  paths:											//日志路径
    - /var/log/nginx/www_access.log
  json.keys_under_root: true								//开启json格式解析
  json.overwrite_keys: true
  tags: ["www"]														//标记内容,在[]里填写即可
output.elasticsearch:
  hosts: ["192.168.81.210:9200"]
  indices:													//索引匹配
    - index: "nginx-www-access-%{+yyyy.MM.dd}"					//索引库名称
      when.contains:										//匹配什么标记
        tags: "www"											//匹配标记为www的日志

3.2.配置filebeat不同日志使用不同索引库

nginx集群内的所有filebeat都需要如下配置

vim复制小技巧:复制2-8行的内容,粘贴到第9行的操作命令:在vim命令模式输入:2,8t9,2,8表示2-8t行复制,9表示粘贴在第九行

1.配置filebeat
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/www_access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["www"]
- type: log
  enabled: true
  paths:
    - /var/log/nginx/bbs_access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["bbs"]
- type: log
  enabled: true
  paths:
    - /var/log/nginx/blog_access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["blog"]
output.elasticsearch:
  hosts: ["192.168.81.210:9200"]
  indices:
    - index: "nginx-www-access-%{+yyyy.MM.dd}"
      when.contains:
        tags: "www"
    - index: "nginx-bbs-access-%{+yyyy.MM.dd}"
      when.contains:
        tags: "bbs"
    - index: "nginx-blog-access-%{+yyyy.MM.dd}"
      when.contains:
        tags: "blog"
setup.template.name: "nginx"
setup.template.pattern: "nginx-*"
setup.template.enabled: false
setup.template.overwrite: true
2.重启filebeat
systemctl restart filebeat

3.3.在es上查看创建的索引库

由于nginx集群相同的应用是要写在同一个索引库中的,因此我们要观察每加一个集群产生的数据变化

刚配置完nginx01时的样子

www:12条 blog:11条 bbs:12条

增加nginx02后的样子

访问nginx02上的应用六七次后,数据明显发生了变化

www:19条 blog:18条 bbs:19条

可以具体看索引中的数据,看看是不是对应的日志,完全正确

3.4.在kibana上关联es索引库

3.4.1.创建www索引库

点击Managerment----索引模式---创建索引

字段选择@timestamp

3.4.2.创建bbs索引库

操作与www的一致

3.4.3.创建blog索引库

操作与www的一致

3.4.4.所有应用索引库都一一对应上了

4.在kibana统计日志分析

4.1.统计nginx01主机www应用200状态码数量

筛选添加:beat.name(主机名)is(是) nginx01(主机名)

​ 状态码(访问状态码) is(是) 200(状态码为200)

4.2.统计所有节点访问状态码为200的日志

只需要添加一个筛选器即可

筛选添加:状态码(访问状态码) is(是) 200(状态码为200)

日志也起到了聚合的作用,所有节点都可以统计

以上就是filebeat收集多个域名网站日志并存储到不同es索引库过程的详细内容,更多关于filebeat收集网站日志存储es的资料请关注我们其它相关文章!

(0)

相关推荐

  • Filebeat 采集 Nginx 日志的方法

    Nginx 日志可用于分析用户地址位置,行为画像等,如何通过 Elastic Stack 进行一站式的数据采集,数据清洗,数据落地,数据可视化,让数据发挥真正的价值呢? 架构设计 涉及到 Elastic Stack 中 Filebeat 是用于采集 Nginx 相关的日志, Elasticsearch 是用于对于数据落地存储和搜索的引擎, Kibana 是用于对数据可视化的工具. 在 Nginx 中相关的日志是存储在 /var/log/nginx 目录下的,分别是访问日志 access.log,

  • filebeat同时收集错误日志与普通日志并存详解

    目录 1.配置filebeat收集error日志 2.查看es是否产生error索引 3.在kibana上关联es索引 4.在kibana上统计错误日志 1.配置filebeat收集error日志 只收集正常日志往往是不完整的,错误日志更需要收集起来 所有集群都按如下配置,其实就是增加了一个type和一个index vim /etc/filebeat/filebeat.yml filebeat.inputs: - type: log enabled: true paths: - /var/log

  • filebeat收集多个域名网站日志并存储到不同es索引库过程

    目录 1.为什么要针对不同的应用系统创建不同的索引 2.搭建web集群环境 2.1.环境准备 2.2.web集群部署 2.3.配置应用支持json格式的日志输出 3.配置filebeat实现不同日志对应不同索引 3.1.实现思路 3.2.配置filebeat不同日志使用不同索引库 3.3.在es上查看创建的索引库 3.4.在kibana上关联es索引库 3.4.1.创建www索引库 3.4.2.创建bbs索引库 3.4.3.创建blog索引库 3.4.4.所有应用索引库都一一对应上了 4.在ki

  • filebeat收集json格式的tomcat日志详解

    目录 1.部署tomcat 1.1.部署tomcat 1.2.修改tomcat配置文件支持json格式日志输出 1.3.查看tomcat日志 2.配置filebeat收集tomcat日志 2.1.配置filebeat收集tomcat日志 2.2.使用ab压测工具生成1000行tomcat日志 2.3.查看es是否收集到日志 3.kibana关联es索引库进行数据查询 3.1.关联es索引库 3.2.查看收集来的tomcat日志 1.部署tomcat 公司中常用的web程序一般都是nginx和to

  • Spark网站日志过滤分析实例讲解

    目录 日志过滤 日志分析 日志过滤 对于一个网站日志,首先要对它进行过滤,删除一些不必要的信息,我们通过scala语言来实现,清洗代码如下,代码要通过别的软件打包为jar包,此次实验所用需要用到的代码都被打好jar包,放到了/root/jar-files文件夹下: package com.imooc.log import com.imooc.log.SparkStatFormatJob.SetLogger import com.imooc.log.util.AccessConvertUtil i

  • 向大家推荐一个收集整理正则表达式的网站

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等.正则表达式是一种处理文本的有用工具,无论是验证用户输入.搜索字符串内的模式.还是以各种有效方式重新设置文本格式,正则表达式都非常有用.    大家都知道ASP.NET中有个RegularExpressionValidator的校验控件,其中有一个属性就是要填充自己所写的正则表达式,以作为校验的标准.    我向大家推荐的这个国

  • python实现apahce网站日志分析示例

    维护脚本一例,写得有点乱,只是作为一个实例,演示如何快速利用工具快速达到目的:应用到:shell与python数据交互.数据抓取,编码转换 复制代码 代码如下: #coding:utf-8#!/usr/bin/python'''程序说明:apache access.log日志分析 分析访问网站IP 来源情况 日期:2014-01-06 17:01 author:gyh9711 程序说明:应用到:shell与python数据交互.数据抓取,编码转换'''import osimport jsonim

  • 使用shell脚本分析网站日志统计PV、404、500等数据

    下面的脚本能统计出网站的总访问量,以及404,500出现的次数.统计出来后,我们可以结合监控宝来进行记录,进而可以看出网站访问量是否异常,是否存在攻击,一目了然.还可以根据查看500出现的次数,进而判断网站程序是否出现异常. 复制代码 代码如下: #!/bin/bash#purpose:count nginx or apache or other webserver status code using jiankongbao#how to:run the script every 5 minut

  • shell脚本实现的网站日志分析统计(可以统计9种数据)

    写了个shell脚本,可以用来统计每天的访问日志,并发送到电子邮箱,方便每天了解网站情况.脚本统计了:1.总访问量2.总带宽3.独立访客量4.访问IP统计5.访问url统计6.来源统计7.404统计8.搜索引擎访问统计(谷歌,百度)9.搜索引擎来源统计(谷歌,百度) 复制代码 代码如下: #!/bin/bashlog_path=/home/www.jb51.net/log/access.log.1domain="jb51.net"email="log@jb51.net&quo

  • 收集的常用域名管理后台网址

    新网域名管理· 新网互联域名管理· 商务中国域名管理 · 中国频道域名管理 · Enom域名管理· 万网域名管理· 中资源· 删除域名检索 · each交易论坛 · 名协论坛· 商务中国域名管理 · 中国频道域名管理 · Enom域名管理 · each交易论坛 · alexa.com世界排名查询 · 查询一个ip上网站列表 · 域名批量查询 · dnform 世界中心· 域名主机大全 · 常用软件下载 · 域名删除· 世界域名交易中心· speednames.com · DNHOT域名热点·UI

  • springboot实现将自定义日志格式存储到mongodb中

    步骤如下 首先定义封装所需要的日志信息的实体类 public class MyLog { //根据需要定义字段 @Id private String id; private Date ts; private String level; private String msg; private String thread; //属性的get/set方法(略) } 定义操作mongodb的接口 @Repository public interface LogRepository extends Mon

  • ELK收集Nginx日志的项目实战

    目录 01 安装 Nginx 和 ab 工具 1.1 安装 nginx 1.2 启动 Nginx 并测试 02 使用 Filebeat 采集日志并展示 2.1 配置 filebeat 采集 Nginx 日志 2.2 使用 Kibana 展示 Nginx 日志数据 03 采集 JSON 格式的 Nginx 日志 3.1 修改 Nginx 日志为 Json 格式 3.2 Filebeat 重新采集 Nginx 日志 3.3 自定义存储 Filebeat 采集日志的 ES 索引 04 使用 Fileb

随机推荐