ELK日志分析--ES(Elasticsearch)--(二)

  1. ES集群测试

  2. 验证

1.ES集群测试

        1.1配置步骤

确保Elasticsearch集群可用

        (一)Logstash配置

# vim /usr/local/logstash/config/pipeline-1.conf

input {
   beats {
      port => 5044
   }
}

filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
        remove_field => [ "message" ]
    }
    geoip {
       source => "clientip"
    }
}

output {
  stdout {
     codec => rubydebug
  }

  elasticsearch {  #原来基础上添加此配置
    # 这里是输出到 elasticsearch 集群中
    hosts => ["192.168.19.20:9200","192.168.19.21:9200","192.168.19.22:9200"]
  }
}

        1.2  启动 Logstash

假如没有启动,或者没有自动加载配置文件,需要重新启动

/usr/local/logstash/bin/logstash -f /usr/local/logstash/config/pipeline-1.conf

        1.3   启动 Filebeat

配置Filebeat输出数据到logstash,假如没有启动,需要重新启动

nohup   ./filebeat  &
或者
cd  /usr/local/filebeat/
./filebeat

2. 验证

        2.1  持续向日志文件中输入日志内容

持续向测试的日志文件产生日志

        2.2  查看 Logstash 的终端

应有相应的输出,如果logstash用nohup启动到后台的,则查看nohup.out文件

        2.3   验证Elasticsearch是否创建了索引

# curl -X GET "192.168.19.20:9200/_cat/indices"

logstash-2023.02.23-000001   

是Elasticsearch 自动创建的索引。

        2.4  创建自己需要的索引

从之前的查询中知道,索引是 Elasticsearch 是自动创建的,但是,这往往不是生产中想要的。

比较好的一个建议是:

  • 把访问日志 access.log 中的内容单独放到一个索引中。

  • 把错误日志 error.log 中的内容单独放到另外一个索引中。

1 更新配置文件

logstash未使用 Filebeat 内置模块的情况

# vim  /usr/local/logstash/config/first-pipeline.conf 
input {
   beats {
      port => 5044
   }
}

filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
        remove_field => [ "message" ]
    }
    geoip {
       source => "clientip"
    }
}
output {
  stdout {
     codec => rubydebug
  }

  if [log][file][path] == "/var/log/nginx/access.log" {
    elasticsearch {
      hosts => ["192.168.19.20:9200","192.168.19.21:9200","192.168.19.22:9200"]
      index => "%{[host][hostname]}-nginx-access-%{+YYYY.MM.dd}"
    }
  } else if [log][file][path] == "/var/log/nginx/error.log" {
    elasticsearch {
      hosts => ["192.168.19.20:9200","192.168.19.21:9200","192.168.19.22:9200"]
      index => "%{[host][hostname]}-nginx-error-%{+YYYY.MM.dd}"
    }
  }
}

logstash或者使用 Filebeat 内置模块的情况

input {
   beats {
      port => 5044
   }
}

filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
        remove_field => [ "message" ]
    }
    geoip {
       source => "clientip"
    }
}

output {
  stdout {
     codec => rubydebug
  }
  if [event][dataset] == "nginx.access" {
    elasticsearch {
      # 这里是输出到 elasticsearch 集群中
      hosts => ["192.168.19.20:9200","192.168.19.21:9200","192.168.19.22:9200"]
      # 创建索引,索引好比是MySQL 数据库中的表名称
      index => "%{[host][hostname]}-nginx-access-%{+YYYY.MM.dd}"
    }
  } else if  [event][dataset] == "nginx.error" {
  elasticsearch {
      # 这里是输出到 elasticsearch 集群中
      hosts => ["192.168.19.20:9200","192.168.19.21:9200","192.168.19.22:9200"]

      # 创建索引,索引好比是MySQL 数据库中的表名称
      index => "%{[host][hostname]}-nginx-error-%{+YYYY.MM.dd}"
    }
  }
}
#注意打开filebeat中的proccesser功能添加主机信息

2 添加新的日志内容到相关日志文件

分别向测试的日志文件中添加新的日志内容

向 /var/log/nginx/access.log 添加内容

3 验证 Elasticsearch 集群中的索引

 logstash-2023.02.23-000001  是原来的

client-log-access-2023.02.23  是新建立的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值