热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

一、环境准备本次我们采用yum官方仓库进行安装,之前采用rpm包安装的文档大家请看https:blog.51cto.comwzlinux2175836。1、软件版本F
一、环境准备

本次我们采用 yum 官方仓库进行安装,之前采用 rpm 包安装的文档大家请看 https://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.200CentOS 7.5 MinimalElasticsearch + Kibana
172.18.8.201CentOS 7.5 MinimalLogstash
172.18.8.202CentOS 7.5 MinimalFilebeat + Nginx

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

ELK + 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

添加ELK官方仓库。

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

cat >> /etc/yum.repos.d/elasticsearch.repo <[elasticsearch-6.x]
name&#61;Elasticsearch repository for 6.x packages
baseurl&#61;https://artifacts.elastic.co/packages/6.x/yum
gpgcheck&#61;1
gpgkey&#61;https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled&#61;1
autorefresh&#61;1
type&#61;rpm-md
EOF
二、ES &#43; Kibana 安装(172.18.8.200)

1、Elasticsearch 安装配置

安装JDK。

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

软件Elasticsearch安装。

yum install elasticsearch -y

修改配置文件/etc/elasticsearch/elasticsearch.yml&#xff0c;修改为如下内容&#xff1a;

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

启动服务。

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

检查启动状态。

[root&#64;es ~]# 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"
}

看到这个结果&#xff0c;证明我们安装已经完成。

详细安装步骤&#xff0c;请参见官方文档。

2、Kibana 安装配置

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

yum install kibana -y

编辑配置文件/etc/kibana/kibana.yml&#xff0c;修改如下内容&#xff1a;

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&#xff0c;画面正常显示即我们安装完成。

具体配置&#xff0c;请参见官方文档。

三、Logstash 安装配置(172.18.8.201)

1、Logstash 安装配置

安装JDK。

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

软件Logstash安装。

yum install logstash -y

2、配置nginx日志过滤

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

ELK &#43; Filebeat &#43; Nginx 集中式日志分析平台(一)

创建配置文件/etc/logstash/conf.d/logstash.conf&#xff0c;增加如下内容&#xff1a;

input {beats {port &#61;> 5044}
}filter {if [fields][type] &#61;&#61; "nginx_access" {grok {match &#61;> { "message" &#61;> "%{NGINXACCESS}" }}}if [fields][type] &#61;&#61; "apache_access" {grok {match &#61;> { "message" &#61;> "%{COMBINEDAPACHELOG}" }}} mutate { remove_field &#61;>["message"]remove_field &#61;>["host"]remove_field &#61;>["input"]remove_field &#61;>["prospector"]remove_field &#61;>["beat"]}geoip {source &#61;> "clientip"}date {match &#61;> [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]}
}output {if [fields][type] &#61;&#61; "nginx_access" {elasticsearch {hosts &#61;> "172.18.8.200:9200"index &#61;> "%{[fields][type]}-%{&#43;YYYY.MM.dd}"}}if [fields][type] &#61;&#61; "apache_access" {elasticsearch {hosts &#61;> "172.18.8.200:9200"index &#61;> "%{[fields][type]}-%{&#43;YYYY.MM.dd}"}}
}

  • grok是我们对输出的数据进行切分格式化。
  • mutate对我们格式化输出的数据&#xff0c;删除掉一些没用的信息。
  • geoip是获取IP的地理信息&#xff0c;以便于后面作地图展示。
  • date是对时间的一种格式化输出。
    关于过滤插件还有很多&#xff0c;大家可以参照官方文档或者查看我的博文介绍。

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

# Nginx logs
NGUSERNAME [a-zA-Z\.\&#64;\-\&#43;_%]&#43;
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}

我安装的软件来看&#xff0c;路径是这样的&#xff1a;/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns。

3、启动检测

启动程序。

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

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

[root&#64;logstash ~]# 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软件包&#xff0c;所以我们首先添加epel源。

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

软件Filebeat Nginx安装。

yum install filebeat nginx -y

编辑文件/etc/filebeat/filebeat.yml&#xff0c;修改为如下内容&#xff1a;

filebeat.inputs:
- type: logenabled: truepaths:- /var/log/nginx/access.logfields:type: nginx_access
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.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: ~

请注意我们上面添加的type: nginx_access&#xff0c;是我们根据不同日志进行过滤的筛选条件。
启动程序。

systemctl enable filebeat.service
systemctl start filebeat.service
systemctl enable nginx.service
systemctl start nginx.service
五、验证

一切配置好之后&#xff0c;我们访问 nginx 服务&#xff0c;查看日志的收集情况&#xff0c;因为我这边开了调试模式stdout { codec &#61;> rubydebug }&#xff0c;可以在 logstash 的服务器终端查看到格式化之后的日志格式如下&#xff1a;

{"&#64;version" &#61;> "1","source" &#61;> "/var/log/nginx/access.log","response" &#61;> "404","geoip" &#61;> {},"timestamp" &#61;> "13/Dec/2018:10:16:21 &#43;0800","ident" &#61;> "-","auth" &#61;> "-","verb" &#61;> "GET","fields" &#61;> {"type" &#61;> "nginx_access"},"request" &#61;> "/favicon.ico","tags" &#61;> [[0] "beats_input_codec_plain_applied",[1] "_geoip_lookup_failure"],"httpversion" &#61;> "1.1","bytes" &#61;> "3650","agent" &#61;> "\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36\"","offset" &#61;> 10265,"clientip" &#61;> "172.18.8.4","&#64;timestamp" &#61;> 2018-12-13T02:16:21.000Z
}

然后我们登录 Kibana&#xff0c;添加索引&#xff0c;插件数据。

ELK &#43; Filebeat &#43; Nginx 集中式日志分析平台(一)

ELK &#43; Filebeat &#43; Nginx 集中式日志分析平台(一)

转:https://blog.51cto.com/wzlinux/2327253



推荐阅读
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Firefox火狐浏览器关闭到http://detectportal.firefox.com的流量问题解决办法
    本文介绍了使用Firefox火狐浏览器时出现关闭到http://detectportal.firefox.com的流量问题,并提供了解决办法。问题的本质是因为火狐默认开启了Captive portal技术,当连接需要认证的WiFi时,火狐会跳出认证界面。通过修改about:config中的network.captive-portal-service.en的值为false,可以解决该问题。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
author-avatar
手机用户2502872597
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有