Logstash+elasticsearch+elastic+nignx

注:本系统使用的是Logstash+elasticsearch+elastic+nignx 进行日志分析、展示

1环境版本:... 2

1.1主机:... 2

1.2前提:... 2

2 Logstash配置... 2

3 Kibana与elasticsearch的启动... 6

3.1 elasticsearch. 6

3.2 kibana. 7

4 Nginx的配置:... 7

 

1环境版本:

  • 操作系统:CentOS 7.2.1511
  • 内核:Linux Logs3.10.0-123.9.3.el7.x86_64
  • JDK: 1.8.0_74
  • logstash-2.2.2

下载地址(github):https://github.com/elastic/logstash/tree/2.2

功能:对输入日志进行收集、分析,并将其存储供以后使用(如,搜索)。

  • elasticsearch-2.2.0

功能:对logstash分析结果的输入提供进行自定义搜索

下载地址(github):https://github.com/elastic/elasticsearch/tree/2.2

  • kibana-4.4.1

功能:连接elasticsearch-2.2.0,提供web界面

下载地址(github):https://github.com/elastic/kibana/tree/4.4

  • nginx: 1.9.12

将 kibana 的端口转发到 80,并定义好访问用的域名。

1.1主机:

web1: 10.46.90.80(内网),xx.xx.xx.xx(外网)

logs: 10.46.90.147(内网),xx.xx.xx.xx(外网)

1.2前提:
  • Nfs

在logs搭建好nfs,共享 /opt/logs,挂载到 web1 的 /home/wwwlogs,web1 的 php 日志直接输出到 /home/wwwlogs/*/

logstash 、kibana 、elasticsearch都下载到 /opt/

  • JDK已经安装
  • 安装好nginx

2 Logstash配置

Logstash 可以git下载到本地直接使用,其配置是最主要的,它会对日志进行收集、分析,并将其存储供以后使用(如,搜索)。

logstash 的 shipper.conf 配置文件 grok 筛选都使用 ruby 正则表达式,在此推荐一个guby 正则表达式模拟器http://www.rubular.com/

新建配置文件并配置:

[[email protected] ~]# mkdir /opt/logstash/conf.d

[[email protected] ~]# vi /opt/logstash/conf.d/shipper.conf

input {

#stdin {

#}

#file {

#path  =>"/opt/logs/*/*_nginx.log"

#type => "access"

#codec => json

#}

file {

path  => "/opt/logs/php/admin.etcchebao.com/*.log"

#path  =>"/opt/logs/php/admin.etcchebao.com/admin.log"

type => "admin"

codec => multiline {

# Grok pattern names are valid!:)

pattern => "^\[\d{4}"           #开头匹配[+4个年份字符

#pattern =>"^%{TIMESTAMP_ISO8601} "

negate => true

what => previous

}

}

file {

path  => "/opt/logs/php/passport.etcchebao.com/*.log"

#path  =>"/opt/logs/php/passport.etcchebao.com/passport.log"

type => "passport"

codec => multiline {

# Grok pattern names are valid!:)

pattern => "^\[\d{4}"           #开头匹配[+4个年份字符

#pattern =>"^%{TIMESTAMP_ISO8601} "

negate => true

what => previous

}

}

file {

path  => "/opt/logs/php/push.etcchebao.com/*.log"

#path  =>"/opt/logs/php/push.etcchebao.com/push.log"

type => "push"

codec => multiline {

# Grok pattern names are valid!:)

pattern =>"^\[\d{4}"           #开头匹配[+4个年份字符

#pattern =>"^%{TIMESTAMP_ISO8601} "

negate => true

what => previous

}

}

file {

path  => "/opt/logs/php/seller.etcchebao.com/*.log"

#path  =>"/opt/logs/php/seller.etcchebao.com/seller.log"

type => "seller"

codec => multiline {

# Grok pattern names are valid!:)

pattern =>"^\[\d{4}"           #开头匹配[+4个年份字符

#pattern =>"^%{TIMESTAMP_ISO8601} "

negate => true

what => previous

}

}

file {

path  => "/opt/logs/php/m.etcchebao.com/*.log"

#path  =>"/opt/logs/php/m.etcchebao.com/m.log"

type => "m"

codec => multiline {

# Grok pattern names are valid!:)

pattern =>"^\[\d{4}"           #开头匹配[+4个年份字符

#pattern =>"^%{TIMESTAMP_ISO8601} "

negate => true

what => previous

}

}

file {

path  => "/opt/logs/php/pay.etcchebao.com/*.log"

#path  =>"/opt/logs/php/pay.etcchebao.com/pay.log"

type => "pay"

codec => multiline {

# Grok pattern names are valid!:)

pattern =>"^\[\d{4}"           #开头匹配[+4个年份字符

#pattern =>"^%{TIMESTAMP_ISO8601} "

negate => true

what => previous

}

}

}

filter {

#      if [type] == "access" {

#               grok {

#                       match => {"message" => "%{COMBINEDAPACHELOG}" }

#               }

#               date {

#                       match => ["timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]

#               }

#      }

grok {

match => [

#404错误

"message","\:(?<Error_class>\d{3}?)\]",

#Error错误

"message","\[(?<Error_class>\Error?)\]",

#500错误

"message","系统(?<Error_class>\d{3}?)错误\.*ERROR_NO:(?<err_no>[0-9]*$?).*ERROR_STR:(?<err_str>.*$?)\\.*ERROR_LINE:(?<err_line>[0-9]*$?).*ERROR_FILE:(?<err_file>\\.*$?)\\n"

]

}

}

#输出到redis

#output {

#   redis {

#       host => "127.0.0.1"

#       port => "6379"

#      type => "nginx-log"

#       data_type => "list"

#       key => "logstash"

#   }

#}

#输出到elasticsearch

output {

elasticsearch {

#hosts => ["127.0.0.1:9300"]

hosts => "127.0.0.1"

index => "logstash-%{type}-%{+YYYY.MM.dd}"

document_type => "%{type}"

#workers => 1

#flush_size => 20000

#idle_flush_time => 10

#template_overwrite => true

}

#  if [Error_class] != "404" {

#   exec {

#                       #command => "echo‘%{timestamp}:%{message}‘ | mail -s ‘Log_error: HttpException error‘[email protected]"

#                       command => "echo‘%{timestamp}:%{message}‘ | mail -s ‘Log_error: HttpException [HttpException]‘[email protected]"

#      }

#   }

}

output{

if[Error_class] != "404" {

exec {

#command =>"echo ‘%{timestamp}:%{message}‘ | mail -s ‘Log_error: HttpException error‘[email protected]"

command =>"echo ‘%{timestamp}:%{message}‘ | mail -s ‘Log_error: HttpException[HttpException]‘ [email protected]"

}

}

}

#屏幕输出-test

output {

stdout {

codec => rubydebug

}

}

Logstash的启动

[[email protected] ~]# nohup/opt/logstash/bin/logstash -f /opt/logstash/conf.d/shipper.conf > /dev/null2>&1 &

检查启动情况:

3 Kibana与elasticsearch 的启动

kibana 与 elasticsearch 都无需安装,只要下载到本地即可直接使用,最好先启动logstash。要注意的是,但默认不允许使用 root帐号启动,所以使用专门运行nginx的www用户启动。

3.1 elasticsearch

[[email protected] ~]$ nohup/opt/elasticsearch-2.2.0/bin/elasticsearch > /dev/null 2>&1 &

[[email protected] ~]$ ps -elf|grep elasticsearch

检查进程:

检查端口:

3.2 kibana

[[email protected] ~]$ nohup /opt/kibana/bin/kibana> /dev/null 2>&1 &

[[email protected] ~]$ ps -elf|grep kibana

检查进程:

检查端口:

4 Nginx的配置:

[[email protected] ~]$ vi/usr/local/nginx/conf/vhost/logs.etcchebao.cn.conf

server {

listen 80;

server_name logs.etcchebao.cn;

location/ {

auth_basic "secret";

auth_basic_user_file /usr/local/nginx/logs_etcchebao.passwd;

proxy_pass http://127.0.0.1:5601;

}

}

时间: 2024-10-13 10:07:34

Logstash+elasticsearch+elastic+nignx的相关文章

logstash+elasticsearch+kibana+redis 实战

写此文章和就是为了记录logstash+elasticsearch+kibana+redis搭建过程.所有程序都是运行在windows 平台下. 1. 下载 1.1 logstash, elasticsearch, kinana 从官方站点下载: https://www.elastic.co/ 1.2 redis 官方的没有windows平台的.可以从github上下载windows平台版: https://github.com/MSOpenTech/redis/releases 2. 启动各部

使用logstash+elasticsearch+kibana快速搭建日志平台

日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日志详情 监控系统的运行状况 统计分析,比如接口的调用次数.执行时间.成功率等 异常数据自动触发消息通知 基于日志的数据挖掘 很多团队在日志方面可能遇到的一些问题有: 开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力 日志数据分散在多个系统,难以查找 日志数据量大,查询速度慢 一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据 数据不够实时 常见的一些重量级的开源

Logstash+Elasticsearch+Kibana 联合使用搭建日志分析系统(Windows系统)

最近在做日志分析这块儿,要使用 Logstash+Elasticsearch+Kibana 实现日志的导入.过滤及可视化管理,官方文档写的不够详细,网上的文章大多要么是针对Linux系统的用法,要么就是抄袭别人的配置大都没法运行.费了很大劲才搞定了这仨东西,写一篇用法心得,废话不多说,进入主题. 首先,你的电脑上要装Java 的JDK环境,要使用  Logstash+Elasticsearch+Kibana,需要下载这三个软件和一些必要的插件,列表如下 : 1.Java JDK (最新版Logs

【转载】使用logstash+elasticsearch+kibana快速搭建日志平台

原文链接:http://www.cnblogs.com/buzzlight/p/logstash_elasticsearch_kibana_log.html 日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日志详情 监控系统的运行状况 统计分析,比如接口的调用次数.执行时间.成功率等 异常数据自动触发消息通知 基于日志的数据挖掘 很多团队在日志方面可能遇到的一些问题有: 开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力

elk 日志分析系统Logstash+ElasticSearch+Kibana4

elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示客户端 redis 缓存 安装包 logstash-1.4.2-1_2c0f5a1.noarch.rpm elasticsearch-1.4.4.noarch.rpm logstash-contrib-1.4.2-1_efd53ef.noarch.rpm kibana-4.0.1-linux-x64.tar

filebeat + logstash + elasticsearch + granfa

filebeat + logstash + elasticsearch + granfa https://www.cnblogs.com/wenchengxiaopenyou/p/9034213.html 一.背景 前端web服务器为nginx,采用filebeat + logstash + elasticsearch + granfa 进行数据采集与展示,对客户端ip进行地域统计,监控服务器响应时间等. 二.业务整体架构: nginx日志落地-->filebear-->logstash--&

logstash+elasticsearch +kibana 日志管理系统

Logstash是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索),您可以使用它.说到搜索,logstash带有一个web界面,搜索和展示所有日志.kibana 也是一个开源和免费的工具,他可以帮助您汇总.分析和搜索重要数据日志并提供友好的web界面.他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面. 目的就是为了运维.研发很方便的进行日志的查询.Kibana一个免费的web壳:Logstash集成各种收集日志插件,还

日志收集分析工具logstash + elasticsearch

Your logs are your data: logstash + elasticsearch by Andrey Redko on February 25th, 2013 | Filed in: Enterprise Java Tags: Elasticsearch, Logging, Logstash Topic of today's post stays a bit aside from day-to-day coding and development but nonetheless

Logstash+Elasticsearch+Kibana+Nginx set up our private log query system

Logstash+Elasticsearch+Kibana+S3+Nginx build our private log query system System structure How to setup Logstash-index (Logstash server) yum -y install java-1.7.0-openjdk Install and configure Elasticsearch ( Logstash 1.4.2 recommends Elasticsearch 1