ELK + Filebeat +Nginx 集中式日志分析平台(一)

一、环境准备

本次我们采用 yum 官方仓库进行安装,之前采用 rpm 包安装的文档大家请看 http://blog.51cto.com/wzlinux/2175836

1、软件版本

Filebeat 6.5.1
Logstash 6.5.1
Elasticsearch 6.5.1
Kibana 6.5.1
JDK 1.8.0_181

2、服务器准备

IP 系统 角色
172.18.8.200 CentOS 7.5 Minimal Elasticsearch + Kibana
172.18.8.201 CentOS 7.5 Minimal Logstash
172.18.8.202 CentOS 7.5 Minimal Filebeat + Nginx

角色规划架构图如下所示:

3、服务器环境准备

关闭防火墙。

systemctl stop firewalld.service
systemctl disable firewalld.service

添加时间同步。

echo "$((RANDOM%60)) $((RANDOM%24)) * * * /usr/sbin/ntpdate time1.aliyun.com" >> /var/spool/cron/root

配置主机名。
关闭SELinux。

sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/selinux/config
setenforce 0

二、ES + Kibana 安装(172.18.8.200)

1、Elasticsearch 安装配置

安装JDK。

rpm -ivh jdk-8u181-linux-x64.rpm

导入Elasticsearch PGP Key。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

创建仓库。

cat >> /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

软件安装。

yum install elasticsearch -y

修改配置文件/etc/elasticsearch/elasticsearch.yml,修改为如下内容:

cluster.name: my-application
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 172.18.8.200
http.port: 9200
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*

启动服务。

systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service

检查启动状态。

[[email protected] ~]# curl http://172.18.8.200:9200
{
  "name" : "node-1",
  "cluster_name" : "my-application",
  "cluster_uuid" : "SK5_gP5eSQaRyWRaJMPG7Q",
  "version" : {
    "number" : "6.5.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "9434bed",
    "build_date" : "2018-11-29T23:58:20.891072Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

看到这个结果,证明我们安装已经完成。

详细安装步骤,请参见官方文档

2、Kibana 安装配置

为了节省机器资源,我们这里使用安装在一台机器上面,因为环境上面已经配置好,我们这里直接进行安装。

yum install kibana -y

编辑配置文件`/etc/kibana/kibana.yml,修改如下内容:

server.port: 5601
server.host: "172.18.8.200"
elasticsearch.url: "http://172.18.8.200:9200"

启动服务。

systemctl daemon-reload
systemctl enable kibana.service
systemctl start kibana.service

访问http://172.18.8.200:5601,画面正常显示即我们安装完成。

具体配置,请参见官方文档

三、Logstash 安装配置(172.18.8.201)

1、Logstash 安装配置

安装JDK。

rpm -ivh jdk-8u181-linux-x64.rpm

导入Elasticsearch PGP Key。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

创建仓库。

cat >> /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

软件安装。

yum install logstash -y

2、配置nginx日志过滤

一个Logstash的pipeline由3部分组成:input, filter, output,在配置文件中我们也分为三部分。

创建配置文件/etc/logstash/conf.d/logstash.conf,增加如下内容:

input {
  beats {
    port => 5044
  }
}

filter {
  if [type] == "nginx_access" {
    grok {
      match => { "message" => "%{NGINXACCESS}" }
    }
  }
  if [type] == "apache_access" {
    grok {
      match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
  }
  geoip {
    source => "clientip"
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  if [type] == "nginx_access" {
    elasticsearch {
      hosts => "172.18.8.200:9200"
      index => "nginx_access-%{+YYYY.MM.dd}"
    }
        stdout { codec => rubydebug }
  }

  if [type] == "apache_access" {
    elasticsearch {
      hosts => "172.18.8.200:9200"
      index => "apache_access-%{+YYYY.MM.dd}"
    }
        stdout { codec => rubydebug }
  }
}

%{NGINXACCESS} 是一个frok patterns,可以对我们的日志进行标准化输出,系统安装好之后,会支持很多patterns,可以使用命令rpm -ql logstash|grep patterns
然而我们刚刚使用的%{NGINXACCESS},默认不存在,需要我们自定义,找到grok-patterns文件,在最后面加入下面内容:

# Nginx logs
NGUSERNAME [a-zA-Z\.\@\-\+_%]+
NGUSER %{NGUSERNAME}
NGINXACCESS %{IPORHOST:clientip} %{NGUSER:ident} %{NGUSER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} (?:%{NUMBER:bytes}|-) (?:"(?:%{URI:referrer}|-)"|%{QS:referrer}) %{QS:agent}

3、启动检测

启动程序。

systemctl daemon-reload
systemctl enable logstash.service
systemctl start logstash.service

检测端口5044是否已经启动。

[[email protected] ~]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1098/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1234/master
tcp6       0      0 127.0.0.1:9600          :::*                    LISTEN      24546/java
tcp6       0      0 :::5044                 :::*                    LISTEN      24546/java
tcp6       0      0 :::22                   :::*                    LISTEN      1098/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1234/master         

四、Filebeat 安装配置(172.18.8.202)

因为我们默认的仓库里面没有nginx软件包,所以我们首先添加epel源。

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/repo/epel-7.repo

配置Filebeat仓库,导入Elasticsearch PGP Key。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

创建仓库。

cat >> /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

软件安装。

yum install filebeat nginx -y

编辑文件/etc/filebeat/filebeat.yml,修改为如下内容:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  fields:
    type: nginx_access
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
output.logstash:
  hosts: ["172.18.8.201:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

原文地址:http://blog.51cto.com/wzlinux/2327253

时间: 2024-10-02 23:57:01

ELK + Filebeat +Nginx 集中式日志分析平台(一)的相关文章

ELK+Filebeat+Nginx集中式日志解决方案(二)——添加ElasticSearch集群

一.使用说明: Elasticsearch插件:  Elasticsearch常用的几个插件为: # head # 地址  https://github.com/mobz/elasticsearch-head mobz/elasticsearch-head # kopf # 地址  https://github.com/lmenezes/elasticsearch-kopf lmenezes/elasticsearch-kopf # bigdesk # 地址 https://github.com

集中式日志分析平台 - ELK Stack - 安全解决方案 X-Pack

大数据之心 关注 0.6 2017.02.22 15:36* 字数 2158 阅读 16457评论 7喜欢 9 简介 X-Pack 已经作为 Elastic 公司单独的产品线,前身是 Shield, Watcher, Marvel, Graph, 和 reporting,先来说说这几个爸爸是做什么的吧: Shield: 提供对数据的 Password-Protect,以及加密通信.基于角色的权限控制,IP 过滤,审计,可以有效地: 防止未授权的访问:基于 Password-Protect,基于角

安装logstash+kibana+elasticsearch+redis搭建集中式日志分析平台

本文是参考logstash官方文档实践的笔记,搭建环境和所需组件如下: Redhat 5.7 64bit / CentOS 5.x JDK 1.6.0_45 logstash 1.3.2 (内带kibana) elasticsearch 0.90.10 redis 2.8.4 搭建的集中式日志分析平台流程如下: elasticsearch 1.下载elasticsearch. wget https://download.elasticsearch.org/elasticsearch/elasti

集中式日志分析平台 Elastic Stack(介绍)

一.ELK 介绍 ELK 构建在开源基础之上,让您能够安全可靠地获取任何来源.任何格式的数据,并且能够实时地对数据进行搜索.分析和可视化. 最近查看 ELK 官方网站,发现新一代的日志采集器 Filebeat,他是 Beats 家族其中的一员,性能超越 logstash,部署简单,占用资源少,可以很方便的和 logstash,ES 对接. 从官方网站可以看出新一代 ELK 架构如下: 1.Beats Beats 平台集合了多种单一用途数据采集器.这些采集器安装后可用作轻量型代理,从成百上千或成千

ES 集中式日志分析平台 Elastic Stack(介绍)

一.ELK 介绍 ELK 构建在开源基础之上,让您能够安全可靠地获取任何来源.任何格式的数据,并且能够实时地对数据进行搜索.分析和可视化. 最近查看 ELK 官方网站,发现新一代的日志采集器 Filebeat,他是 Beats 家族其中的一员,性能超越 logstash,部署简单,占用资源少,可以很方便的和 logstash,ES 对接. 从官方网站可以看出新一代 ELK 架构如下: 1.Beats Beats 平台集合了多种单一用途数据采集器.这些采集器安装后可用作轻量型代理,从成百上千或成千

集中式日志分析平台 Elastic Stack(部署)

一.环境准备 1.架构选型 接下来我们进行初步的探视,利用测试环境体验下ELK Stack + Filebeat,测试环境我们就不进行 Kafka 的配置了,因为他的存在意义在于提高可靠性. 2.软件版本 Filebeat 6.4.0Logstash 6.4.0Elasticsearch 6.4.0Kibana 6.4.0JDK 1.8.0_181 3.服务器准备 IP 系统 角色 172.18.2.100 CentOS 7.4.1708 Logstash, ES, Kibana 172.18.

centos7搭建ELK Cluster集群日志分析平台(三)

续  centos7搭建ELK Cluster集群日志分析平台(一) 续  centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logstash 5.4 安装kibana步骤 1.下载安装Kibana  ~]#wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-x86_64.rpm 如果链接失效,官网下载:https://www.elastic.co/down

centos7搭建ELK Cluster集群日志分析平台(二)

续  centos7搭建ELK Cluster集群日志分析平台(一) 已经安装完Elasticsearch 5.4 集群. 安装Logstash步骤 1. 安装Java 8 官方说明:需要安装Java 8 ,不支持Java 9... //自行安装,略过 2. 安装Logstash 可以同elasticsearch一样建立repo文件通过yum安装,也可以去官网直接下载rpm包进行本地安装:   ~]# rpm -ivh logstash-5.4.0.rpm  //这里直接下载好进行本地安装 3.

centos7搭建ELK Cluster集群日志分析平台(四):简单测试

续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:client: 192.168.1.26 在测试机上安装并启动filebeat 1. 下载filebeat  ~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-linux-x86_64.tar.gz