ELK 项目监控平台部署+使用详解之部署(二)

因为不同的版本号之间可能会有一定的差异,所以我这里为了保证大家能够下一步下一步的顺利执行。先确认一下版本号和部署的环境。

elasticsearch 5.5.1

logstash 5.5.1

kibana  5.5.1

这三个服务器统一部署在一台服务器。业务量大的可以考虑将elasticsearch分离开来做集群。

为了方便以下都以es来代表elasticsearc。

es + kibana 为了不熟方便选择使用docker

在linux 下安装docker 后执行:

docker pull docker.elastic.co/elasticsearch/elasticsearch:5.5.1

docker pull docker.elastic.co/kibana/kibana:5.5.1

logstash 使用源码安装:

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.1.tar.gz

cp logstash-5.6.1.tar.gz /usr/share/logstash.tar.gz

tar -zxvf  logstash.tar.gz

cd  logstash

./bin/logstash -e 'input { stdin {} } output { stdout {} }'

测试安装是否成功


现在尝试启动es和kibana:

elasticsearch启动:

docker run -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" --name my-elastic -d docker.elastic.co/elasticsearch/elasticsearch:5.5.1

kibana启动:

docker run -p 5601:5601 -e "ELASTICSEARCH_URL=http://localhost:9200" --name my-kibana --network host -d docker.elastic.co/kibana/kibana:5.5.1

这时如果一切执行的顺利的话应该就可以访问kibana了

访问地址为你部署的http://ip:5601 访问

当然这个时候是没有数据的,现在在项目服务器上部署采集数据的filebeat 和metricbeat

1.在项目服务器中下载这两个文件:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.1-linux-x86_64.tar.gz

wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-5.6.1-linux-x86_64.tar.gz

2.解压

tar -zxvf *.tar.gz

3.配置filebeat 以ngxin 日志为例

cd filebeat-5.6.1-linux-x86_64

vim nginx.yml

将以下文件内容复制进去

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/nginx/access.log
  document_type: nginx_access
  #后续对日志进行分组统计
  fields:
      level: debug
  #Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件作为一个事件依次发送
  tail_files: true

shipper:
    tags: ['nginx-access']

# 项目名称和项目服务的ip地址可自定义
tags: ["myserver", "101.110.56.78"]

output.logstash:
   # logstash服务器的ip地址
   hosts: ["11.142.42.77:5044"]



shipper 是logstash接收日志时做条件控制使用

output.logstash 配置logstash服务器的ip地址+端口号

启动filebeat

./filebeat -e -c ./nginx.yml -d "publish"

配置logstash

进入logstash安装目录

vim logstash.yml

input {

beats {

port => 5044

}

}

filter {

        if [type]  == "nginx_access"  {

          ruby {

                init => "@kname = ['remote_addr','remote_user','time_local','request','status','body_bytes_sent','http_referer','http_user_agent','http_x_forwarded_for']"

                code => "event.append(LogStash::Event.new(Hash[@kname.zip(event.get('message').split(' | '))]))"

          }

          if [request] {

               ruby {

                    init => "@kname = ['method','uri','verb']"

                    code => "event.append(LogStash::Event.new(Hash[@kname.zip(event.get('request').split(' '))]))"

          }

          if [uri] {

                ruby {

                    init => "@kname = ['url_path','url_args']"

                    code => "event.append(LogStash::Event.new(Hash[@kname.zip(event.get('request').split('?'))]))"

                }

                kv {

                    prefix => "url_"

                    source => "url_args"

                    field_split => "& "

                    remove_field => [ "url_args","uri","request" ]

                }

          }

          }

          mutate {

                convert => [ "body_bytes_sent" , "integer" ]

          }

          date {

                match => [ "time_local", "dd/MMM/yyyy:hh:mm:ss Z" ]

                locale => "en"

          }

        }

}

output {

      if [type] == "nginx_access" {

        stdout {

            codec => rubydebug

        }

        elasticsearch {

                      hosts => ["localhost:9200"]

                      index => "nginx_access_%{+YYYY.MM.dd}"

                      user => "elastic"

                      password => "changeme"

        }

        if [status] != "200"{

                exec {

                    command  =>  "sh /root/sh/alarm.sh %{tags[0]}发现了BUG,请尽快处理 服务器IP:%{tags[1]} request:%{request} 访问状态:%{status} 时间:%{time_local}"

        }

        }

      }

      else {

        stdout {

            codec => rubydebug

        }

        elasticsearch {

              hosts => ["localhost:9200"]

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

              user => "elastic"

              password => "changeme"

        }

      }

}



需要注意的是:

1.nginx.conf中需要配置一下nginx的格式便于logstash 做解析

log_format main "$remote_addr | $remote_user | $time_local | $request | $status | $body_bytes_sent | $http_referer | $http_user_agent | $http_x_forwarded_for";

access_log /var/log/nginx/access.log main;

2.需要安装logstash插件exec 才能执行脚本

3.脚本alarm.sh的内容为:


启动logstash:

./logstash -f ./logstash.yml

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容