- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
使用es监控RabbitMQ日志
7 g2 d$ d6 N; P8 _. v! f
% A3 b# |8 I; d! R- |) F" ~ ?
I: Q9 N% X( @5 M8 v' kRabbitMQ是一个开源的消息代理服务器,能够为您的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全性。本文介绍如何通过Filebeat,将RabbitMQ的日志采集到阿里云Elasticsearch(简称ES)中,并对日志进行可视化分析与监控。
9 ~; I. _5 c0 o/ D; ], o8 N7 }7 O" u+ F" |/ F: a' B# o! [* l
操作流程& b$ _% q, b2 D7 R, c; m
准备工作9 l: d# e* v& `) V4 s5 P# C3 z
! D2 q: M% C6 Y m# B& l完成环境准备,包括创建实例、安装RabbitMQ等。
# J! m) g3 A' O3 M2 R, ]. O
2 L" E9 r$ d; C9 K步骤一:配置RabbitMQ
! L p! B( S0 ~2 y& V
. |6 C" \$ ~# P配置RabbitMQ的日志级别和文件名。+ |" |- O0 W& w& T
8 B1 x: B ], E9 i5 v
步骤二:安装RabbitMQ示例应用* [" r( P7 x$ Z1 |! P
+ ?. Y3 S* H; }/ ?
基于Spring Boot,使用RabbitMQ的JMS客户端生产日志数据到RabbitMQ中。
( p5 M/ ?4 }7 Q) z N. h' o# ^: @( ?9 {& g6 w: p/ `
步骤三:创建并配置阿里云Filebeat
1 [# B- Q6 w! X7 ]) P6 M* p5 B4 d% K& g/ d( { R7 }8 ? G2 B
配置Filebeat采集器,将RabbitMQ的日志数据发送到Logstash的8100端口。4 ^1 d4 C1 P! U4 H
3 D# a. o' N3 u; E/ n! p; Y步骤四:配置阿里云Logstash管道
) |: a) j+ L5 x; _8 N, o0 N2 S+ h8 L( B& a% j+ t) k3 q
配置Logstash管道,使用基本的Grok模式从原始消息中分离出时间戳、日志级别和消息,然后发送到阿里云ES中。' H4 R2 E9 T( H" L5 X5 U3 S
+ q: u% {2 }* {7 S7 H7 L9 @: R步骤五:通过Kibana查看日志数据) g' c4 f$ n/ M5 N2 O4 b( ]
1 g% R" R; t4 l通过Kibana查看经Logstash处理后的数据。
) q- T6 t0 j+ A* C" C$ m# ?9 p& N1 _9 ]. A
步骤六:通过Kibana过滤日志数据
" b$ C8 p, T. G1 |6 A; ]! ~# w- r2 H8 q0 [3 q
在Kibana控制台的Discover页面,通过Filter过滤出RabbitMQ相关的日志。, k ^) t! Z- A- T
& E) r7 v& |# B) j |
步骤七:配置Metricbeat采集RabbitMQ指标/ r% k% A& {) [) d3 \. G9 T$ H
2 c' X" V8 |4 }# d) B5 x( l
通过Metricbeat采集RabbitMQ日志,并通过Kibana实现可视化指标监控。
8 t. E/ J; R' @4 ]# Q' A3 r
# o3 V. I* u! Q5 Z准备工作
$ l5 z: p1 J# T5 q0 k创建阿里云ES和Logstash实例,两者版本相同,并且在同一专有网络VPC(Virtual Private Cloud)下。
6 J$ M. Z3 X+ e) i' G9 N' E" k& s/ ^- O7 { ^
具体操作步骤请参见创建阿里云Elasticsearch实例、创建阿里云Logstash实例,本文以6.7版本为例。
" f" r8 P* A& ]6 z; }, l
1 }+ g% ]0 n8 Z L- E5 T* S开启阿里云ES实例的自动创建索引功能。4 E) \5 G7 ]% Y- @
5 w4 d6 W( P* e9 c* E
具体操作步骤请参见快速访问与配置。) D9 {6 g$ E$ |9 x6 D/ o8 o
" h4 Y- Q# H$ X# J- t创建阿里云ECS实例,要求与阿里云ES实例和Logstash实例处于同一VPC下。# `$ ], T) G, ?
9 g" T& I( s r" x# V; G具体操作步骤请参见自定义购买实例。% L1 N/ u5 y8 I0 r( \
, C/ x. |" p/ V0 [ P
重要
+ M( b" S* V T/ B5 } G' [该ECS实例用来安装Beats和RabbitMQ,由于Beats目前仅支持Alibaba Cloud Linux (Alinux)、RedHat和CentOS这三种操作系统,因此在创建时请选择其中一种操作系统。本文以CentOS为例。
4 s" x5 Y- T' h: O1 R% Z5 ^$ e7 q6 p; J
在目标ECS实例上安装云助手和Docker服务。
* j6 w% B" E2 Z4 T% u$ N1 N3 |5 A5 ^* _" N2 ~1 H
具体操作步骤请参见安装云助手Agent和部署并使用Docker(CentOS 8)。
+ a% U# ?! D' b% c1 m) k! J) I! Z( p% }3 t0 c
在目标ECS实例上安装RabbitMQ。5 N. s5 J, f! O" L. Y8 t) r5 f
. o' n+ e( r1 }! D( M, C+ Z" q
具体操作步骤请参见Downloading and Installing RabbitMQ。/ K. d. }: ~) H& v M- U8 G
" d: t) L0 a8 S/ t* t: d+ T2 S步骤一:配置RabbitMQ6 \5 V/ W) w( I* W6 u( G+ k6 r
配置RabbitMQ的日志记录级别和文件名,步骤如下:/ o/ Q$ j/ k: x- Y
- h* N" w& l& A- ^& A连接安装了RabbitMQ的ECS服务器。! R" b( Z/ ~1 E# e* T
+ O% {' l) }) l, Z0 | @
具体操作步骤请参见连接实例。6 ]' y0 ?" i# | g& t0 `9 W
# [! i/ D! A3 ?1 ~6 W2 _, j' A2 Q, ?
说明 b* l! h8 a6 k
本文档以普通用户权限为例。
+ u4 T0 Q- x G5 { p* `: j h$ [0 X2 M5 i$ y, b% l
执行以下命令,打开RabbitMQ的配置文件。# M' ^* U5 x# w
}4 l% ~9 }+ W6 _ - \+ \2 i) Z1 F/ a7 F9 {4 g7 p# h
sudo vim /etc/rabbitmq/rabbitmq.config
( \( w' B8 H5 i7 P- C/ w6 _修改RabbitMQ的配置文件。
5 T' J& D- j; T; t+ J% \/ U# o# M: g6 y0 `3 x' _- B9 |
; P* f- o9 Y% j6 B. Q6 K{
* Z! `8 h# `) Y; ?4 _) J) v lager, [
, ^0 P9 Z; u# z$ q& t ] ~; k %% All log messages go to the default "sink" configured with# J6 x* r9 J8 [3 W- i+ F; ]3 O' b
%% the `handlers` parameter. By default, it has a single6 U4 x; r$ H! J) X+ [ R3 z2 z, w" l
%% lager_file_backend handler writing messages to "$nodename.log"
* r; E) l: ~5 \! g8 f %% (ie. the value of $RABBIT_LOGS).5 w K; ` _4 G+ c
{handlers, [
% u) p t' P% w6 k. B3 d% E {lager_file_backend, [{file, "rabbit.log"},
# C" Y: [+ V% t4 P2 d9 U8 I {level, info},
5 a2 k& x4 @1 m {date, ""},: {) l& J% Q" s/ N$ m3 x
{size, 0}]}
- E8 l: b2 Y5 Y" b$ D) s* x: m ]},7 j& B. i% a7 E/ a2 C+ ]
{extra_sinks, [9 D9 a. L8 {1 d( D1 r; o, h8 C
- u* a9 x- f, ]( p I
{rabbit_channel_lager_event, [{handlers, [
: D# E8 l2 o- C {lager_forwarder_backend,
9 ~" x9 v- Z% k" Y- [" H( M [lager_event, info]}]}]},
( T3 H# b5 _8 t. r0 h {rabbit_conection_lager_event, [{handlers, [1 D, \0 V( k5 {: x- N/ `6 Y; K
{lager_forwarder_backend,. R: H* ?' a0 M, A
[lager_event, error]}]}]}, B$ h+ c" c4 x
+ w$ x2 t4 t) A$ V) ~- J. c ]}
, q, H2 I/ I) o6 Q5 x* c2 ~修改后,RabbitMQ的日志文件名变为rabbit.log。" o) O+ Z% Z. f/ L$ _
- W2 P7 x1 R6 y1 e% p3 ]' l* F3 X
说明
B+ O, a0 r# w2 ?3 z日志级别(level)默认为info,您也可以将其设置为error,即记录出错日志。本文以info日志为例。
; G2 J" o/ U1 z( @
. \" R& b4 |$ K修改配置文件后,需要启动RabbitMQ才能生效。$ g1 ^+ F. S9 Y1 @, B( K* W
& J/ t6 t( v# p( W
启动RabbitMQ服务。
6 R/ e' C: v5 t, K% T0 j4 c# o# ~/ U6 c9 G
进入RabbitMQ安装目录的bin文件夹下,启动服务。
) ~% p* e2 ~' h* W( Q3 X* j4 B; D) q% {, ?) S
* ~; J$ [: Z& J9 L( Vsudo cd /usr/lib/rabbitmq/bin0 Z; v, ^- @( W N* I1 O
sudo rabbitmq-server start
y w% t6 v$ u; ?! m8 G2 @启动成功后,可在/var/log/rabbitmq下看到rabbit.log文件。3 g6 O5 c# q! B( S! |' c( @
3 q5 ]$ o* q+ I" J& H; Q
步骤二:安装RabbitMQ示例应用
+ R. p" M& g; x* |4 R本节基于Spring Boot,使用RabbitMQ的JMS客户端进行演示。具体操作步骤如下:( N' e, _" p& `6 @9 M7 Y6 n; [9 H6 G
/ o' z! I: H5 A \重要
" Z8 D: \$ K5 P1 w' B, z# t由于示例需要编译应用,因此您必须先安装Java 8。
% @# O2 q# V0 |) |3 U
' z/ P( \( j+ }在ECS中,执行以下命令克隆示例。
+ s m! M+ l# q1 u* c3 g6 U$ V9 f; [, ^+ q( F# g8 k
/ ?% i, }" Y1 J0 {; W( ^+ e
sudo git clone https://github.com/rabbitmq/rabb ... ng-boot-trader-demo
* }7 J. b7 p6 t进入该应用所在根目录。+ ]: n1 n! S( X) p4 O% z7 X
7 r/ G2 `/ ]" y) _( i7 u' O
7 x5 Q& ?5 x( w6 p4 d5 V: |
cd rabbitmq-jms-client-spring-boot-trader-demo" W& s3 F4 V( {% Q
执行以下命令打包并运行应用。
$ F) U Q% }3 L# X( N' U7 s2 C; Q6 F* R6 Q; \; h: Q! n" \$ y
; N) a7 }) _8 N2 i
sudo mvn clean package
$ a5 ?. f7 @0 }! N a) f" h8 Isudo java -jar target/rabbit-jms-boot-demo-1.2.0-SNAPSHOT.jar2 R) X) w( V: s" ^2 j/ u
运行成功后,返回结果如下。5 E# r6 C3 W- y3 v1 A
6 W) @7 z7 A/ k6 i' Z! t
8 `" Z, s2 ]0 H* }. ____ _ __ _ _
# ~: u' j3 f0 d1 W+ B /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \4 ~ K9 _: b& H6 z& [
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
$ @( Q5 ]) h0 V5 h1 h7 f. F n \\/ ___)| |_)| | | | | || (_| | ) ) ) )+ z, A7 I v) m n+ @
' |____| .__|_| |_|_| |_\__, | / / / /# R' o+ G7 E: i u" S7 Y
=========|_|==============|___/=/_/_/_/
: O! x1 F2 ^5 i$ I2 l: l' v :: Spring Boot :: (v1.5.8.RELEASE)! I- ~; R/ K0 u: ~3 f D7 q
2020-05-11 10:16:46.089 INFO 28119 --- [main] com.rabbitmq.jms.sample.StockQuoter : Starting StockQuoterxxxxxx
- w* j$ r& K0 X: g5 L/ g3 r8 [2020-05-11 10:16:46.092 INFO 28119 --- [main] com.rabbitmq.jms.sample.StockQuoter : No active profile set,xxxxxx" S7 ~7 ?- o" v- v: v" S
2020-05-11 10:16:46.216 INFO 28119 --- [main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.xxxxxx9 f9 D9 q+ D- d4 \ G5 P# E
2020-05-11 10:16:47.224 INFO 28119 --- [main] com.rabbitmq.jms.sample.StockConsumer : connectionFactory => RMQConnectionFactoryxxxxxx5 L$ n( C0 {6 Z, d* O. D
2020-05-11 10:16:48.054 INFO 28119 --- [main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposurexxxxxx 1 t. Z Z' F$ z- u4 J
2020-05-11 10:16:48.062 INFO 28119 --- [main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0xxxxxx& n, m0 P% s: |4 b
......
. Q2 i @* P5 W进入log目录下查看RabbitMQ日志。
+ N: E4 \" B# r5 }4 L* O) J4 a* g" o
- _ O% ]* K. g6 }( G8 S9 j1 G; X! r" e
sudo cd /var/log/rabbitmq
- B) ?6 k8 b; hsudo ls4 k& l& X" j2 d. n
返回结果中的rabbit.log即为步骤一:配置RabbitMQ中配置的文件名。: Y% p; V2 q& o% i0 q0 Z$ P& P% Y
9 v; |* f; o2 n, h q& N6 H
步骤三:创建并配置阿里云Filebeat5 X3 O7 H" ]$ Y- f3 i! ]- t
配置Filebeat采集器,将RabbitMQ的日志信息发送到阿里云Logstash的8100端口。
! H7 q% x1 q- ]7 R+ w5 s
$ b* Q; b& q6 j4 u登录阿里云Elasticsearch控制台。" ?# h3 c7 `* D
在左侧导航栏,单击Beats数据采集中心。
. P! E( U6 b, }. R8 J- b1 i" E% w3 V, {% s' o) [
在创建采集器区域,选择Filebeat > ECS日志。
- O6 v& ?* K; k" `
7 V' K1 T# V' i& s0 h/ V7 V配置采集器。4 J1 p5 ^( G, C2 `1 k; E- I
& x5 M' J. V" I3 t( `6 m
更多信息,请参见采集ECS服务日志和采集器YML配置。本文使用的配置如下。filebeat配置
; }& S& ?. L9 [ B- _" ] z1 B
0 p1 }4 P3 Q8 ]/ G/ O$ t说明
7 A# v2 U" m( B8 Q% D2 C采集器Output需要指定目标阿里云Logstash的实例ID,在YML配置中不需要重新指定Output。
& k' I" P1 N! D# ~& G* G% p
5 y/ v) {2 x0 @7 M1 OFilebeat文件目录需要填写RabbitMQ日志所在的目录,同时需要在YML配置中开启log数据采集,并配置log路径。" r; O+ ~6 C5 s
! R' k5 _$ j# I& [- \本文使用的filebeat.yml中的filebeat.inputs配置如下。* p& q, [, S! e3 f5 F; R. ^# K
! f. C' E+ s( i5 B6 ]4 D" C
8 p( M+ I' E4 ~9 A6 C
filebeat.inputs:
5 }8 j2 K& d! I' B$ i5 F* {# Each - is an input. Most options can be set at the input level, so, {/ m4 M& p1 _' N+ k- X
# you can use different inputs for various configurations.
7 B, H* V1 @+ c, ~) e# Below are the input specific configurations.
7 H; `3 e+ [6 m- f& N7 u
) j+ E8 q4 [- _$ G: b- type: log: r* r8 p% F; v: {: ]' P
; {% n! h/ ]4 X' ~ # Change to true to enable this input configuration.& _4 E: q4 X! b- W6 U
enabled: true
8 e% f! R) a( p$ w* s fields:6 _) V. c$ J- Y% t! Y
log_type: rabbitmq-server
" z) ]$ a9 S' d" V5 q* p # Paths that should be crawled and fetched. Glob based paths.+ u/ v/ k6 ?0 T* ~' h
paths:8 H8 {, A: S. P8 r4 X5 T' K2 K( R
- /var/log/rabbitmq/*log6 G8 `3 ?; g: C- G$ P
fields_under_root: true
# m; M5 l' Q. |0 a; j, O7 @ encoding: utf-8
8 C* g2 w1 Y" c8 E( h5 F ignore_older: 3h
( L8 b# D' U' L3 x$ c: w+ m安装并启动采集器。
5 `& Z2 s' r/ |- C/ q6 h# A1 n4 b! c8 Z- P& x) U3 ?
具体操作,请参见采集ECS服务日志。安装时所选的ECS实例要与阿里云Logstash在同一VPC下。选择采集器安装的实例" y7 _+ o/ p* q5 t8 f1 ^# h
( |5 f3 a6 [0 }# R# J, M# i查看采集器安装情况。
0 h, B" J9 _: R; V/ Y: M$ X! p- X5 o" R( J9 c
采集器状态变为已生效1/1,且查看采集器安装情况后显示为心跳正常,说明采集器安装成功。查看采集器安装状态
! N }0 ?7 R8 \# q0 o& K9 D+ w0 z" o! [" [# ^; X
步骤四:配置阿里云Logstash管道5 ~5 ~6 p! L$ x2 y" V- p
配置阿里云Logstash管道,使用基本的Grok模式从原始消息中分离出时间戳、日志级别和消息,然后发送到阿里云ES实例的指定索引中。
# p$ O# S: V5 ^/ J& H$ i4 q, C- m; ^! ?% w) o% w
进入阿里云Elasticsearch控制台的Logstash页面。
: S0 N1 i9 M; J: D$ D进入目标实例。3 w5 t7 x; p b/ c7 \
在顶部菜单栏处,选择地域。
9 G# X) J2 b, |3 {; ~$ q& \- O在Logstash实例中单击目标实例ID。" J, ~% b: ?, ]: C. w ?
在左侧导航栏,单击管道管理。( |1 ]3 [9 Q: B& ?
& b* @* f8 `# a) p( k o6 q$ L单击创建管道。, U5 W& X \! j/ d. S, R
8 _6 p6 e4 c; ?6 Q; {6 t! A/ G
在创建管道任务页面,输入管道ID并配置管道。1 h! \0 e, C9 p7 s- U6 d' o# S0 O
% E+ D% f0 k0 v' ^
本文使用的管道配置如下。
2 n% j) x1 z1 n- r. A; C
% I9 v6 X) A) g3 `/ `
8 u' l1 Z! ^6 w/ M8 Finput {# @& K$ J$ Z) I: ]$ l
beats {. O" x$ G: L, L
port => 81009 k! F8 v, s5 y4 d( O9 N: m
}; O0 i; l3 l1 T9 ~5 n! k2 C9 o. E
}# S) L# w9 R# d/ `$ q
$ @5 j- Y, ]1 l* K) Zfilter {
8 I, q/ x! V4 M grok {
9 t3 l* o$ V6 ^$ E, \" m: w match => { "message" => ["%{TIMESTAMP_ISO8601:timestamp} \[%{LOGLEVEL:log_level}\] \<%{DATA:field_misc}\> %{GREEDYDATA:message}"] }2 |5 w; @: p* e0 L4 l
}
2 d, a9 z0 l. \! k}% P. {1 M5 w/ y1 ]* u9 b! E7 C2 U
; R: q {' N5 t2 H' t, j4 P# q
output {! E; ]+ D; n( J1 T1 T8 b4 W
elasticsearch {
6 B' Q' k& T# D/ _9 v hosts => "es-cn-4591jumei000u****.elasticsearch.aliyuncs.com:9200"! v7 b {. D% y2 ?9 a" ^ v# ^2 [
user => "elastic"
/ v D' |) _+ I3 ?% y% W! N$ | password => "your_password"1 Z; g" h5 ~7 S; Y3 e( }" n& z
index => "rabbitmqlog-%{+YYYY.MM.dd}"+ [+ b* P# f1 B/ q, J+ n
}
2 ?( Y3 L" o' u( G6 {# _, s}
3 G) N( A6 u/ S+ \1 j管道配置详情请参见Logstash配置文件说明。
2 \/ ~3 L/ g% v1 ~
/ b; X) g* Z* |. U: L% x0 f单击下一步,配置管道参数。. g3 r: I3 U* R$ C0 a
; s" o! M" ]* Q* L% o- Z0 N: K
管道参数配置0 z5 n" x& m: O% h& L/ `
% \ v! C# l( {' ?
+ a1 w0 R, G* [; P9 [8 c2 q' O: U( o
参数" F' i/ K. `# k+ N
1 c+ g6 a# G1 x% u0 z. d: Q2 h x6 L9 r
说明
2 P: E P2 }) i$ _* ]! A' Z4 }2 F1 |' I% |0 a3 |
管道工作线程
( c" X2 t+ B2 _2 w* R5 r. m
& Q$ F8 o+ P4 B" w( ^; _2 a( H+ |并行执行管道的Filter和Output的工作线程数量。当事件出现积压或CPU未饱和时,请考虑增大线程数,更好地使用CPU处理能力。默认值:实例的CPU核数。
* \* ]( G1 E5 u) l% O# A: ?9 Q" q6 G% d7 |; A6 R# h- ^- s. V/ b' h
管道批大小3 z1 I, a6 E) S' b, _( ^+ t
1 ~/ K8 U* \& v4 f单个工作线程在尝试执行Filter和Output前,可以从Input收集的最大事件数目。较大的管道批大小可能会带来较大的内存开销。您可以设置LS_HEAP_SIZE变量,来增大JVM堆大小,从而有效使用该值。默认值:125。4 v0 \5 W8 e- B, O- h
6 F3 L/ J1 [+ {& L管道批延迟
6 r- ?% N% Q) \. n/ B: t# Z+ V# S4 `& \# f9 I' h
创建管道事件批时,将过小的批分派给管道工作线程之前,要等候每个事件的时长,单位为毫秒。默认值:50ms。) M# p0 M/ \& _1 Y- F
4 p' ~: x0 b: ~
队列类型
. t3 D R9 S: ?3 @0 N3 w0 Z% U; [$ K$ Z8 Q: z( R5 L1 J. I
用于事件缓冲的内部排队模型。可选值:% ?! R) D, G5 V) y' s, H, h
1 x, s0 |7 E8 F: K. I t
MEMORY:默认值。基于内存的传统队列。
1 g1 D* R2 ^" t( S" g$ Y# g5 e% R4 ~' c! ^
PERSISTED:基于磁盘的ACKed队列(持久队列)。1 M. e6 V8 A7 l( {! c& Y) @
4 ]" a/ C: y3 z" r; h队列最大字节数
4 S( ~2 z: Q! W% w6 h3 f% f. d
/ L, S8 U/ Y4 u! j: Y9 i* Q9 a1 H请确保该值小于您的磁盘总容量。默认值:1024 MB。
) Z) \9 g N# `/ [
% ]% |" t& ~# C# s队列检查点写入数
9 c5 H( b; l/ R8 E; l9 r# n' M2 Q5 |2 g; x9 z
启用持久性队列时,在强制执行检查点之前已写入事件的最大数目。设置为0,表示无限制。默认值:1024。% ^2 B# o" C: r6 v w/ i; Y
. [0 } v/ i' I9 c
警告$ d" v% x* b+ j
配置完成后,需要保存并部署才能生效。保存并部署操作会触发实例重启,请在不影响业务的前提下,继续执行以下步骤。
3 B2 ~. f9 B; c Y m! q+ n8 P k2 `5 K% \, X1 Q! Q
单击保存或者保存并部署。0 M1 Y- T) ]+ Q: p
7 M6 H% W4 v2 h, Q' G+ u保存:将管道信息保存在Logstash里并触发实例变更,配置不会生效。保存后,系统会返回管道管理页面。可在管道列表区域,单击操作列下的立即部署,触发实例重启,使配置生效。
) S- `/ j; s- F9 Q) u# ]5 l3 h3 C
: j. k- Y& x1 B- `) y8 k保存并部署:保存并且部署后,会触发实例重启,使配置生效。' {( R/ K" D$ k" U( ?8 Z6 c
) `( s# J- l/ X! O# B4 Z+ N& p& N
步骤五:通过Kibana查看日志数据4 b3 e6 P) F0 o
登录目标阿里云ES的Kibana控制台。& }$ ]% z/ r: ~) Z8 K
% Q: ~6 [' D2 A- I b k
具体步骤请参见登录Kibana控制台。
: i- i) V1 Q6 G/ _4 g! T& ~) c9 q( ~/ d5 h' p6 y H5 k" N. a- i
在左侧导航栏,单击Dev Tools。2 l3 M# }% p! e+ N u. I" V
6 h- |2 |0 f7 l
在Console中执行以下命令,查看Logstash处理后的RabbitMQ日志数据。7 E) S" n. L! b# q
6 q1 r# P X0 f
' D( T3 n2 a3 IGET rabbitmqlog-*/_search
! ^4 u7 T* w- L0 E$ n" g7 k2 L{
2 b$ W b3 W$ N" S "query": {) s: N2 R D- ^' `+ F6 p( H
"match_all": {
0 f. B& T/ \$ [( Y }}
8 g. ]7 a6 a) M}& l; V( g1 ?& F
执行成功后,返回如下结果。返回结果. Q0 G) y! D; {2 R+ b6 \! _- h
% A7 `. h Z( g: W. L( \步骤六:通过Kibana过滤日志数据2 }; v# y2 A( e; S: o) B% k6 F4 ~& i7 \
登录目标阿里云ES实例的Kibana控制台。
, x I4 N. Z. M/ q* j; k" n$ S$ b5 G/ x- i
具体步骤请参见登录Kibana控制台。
; W% Q- I. W4 a* T$ G
* ], S( Z7 ^6 q创建一个索引模式。% G4 B& P' r2 j2 Z0 ~# ~9 q# N( L' c
% F6 M* Q# v+ s0 K. ]
在左侧导航栏,单击Management。
- _! D8 Y8 h: x
3 W+ z& ~4 B3 j+ P9 n4 R* g( W在Kibana区域,单击Index Patterns。, y3 J0 }2 e" X# I
0 J" N4 ~+ H) r; V
单击Create index pattern。# y2 M- s2 U1 }2 Y
- `0 M( K5 K# @$ j1 r# R: u" |+ W' Y输入Index pattern(本文使用rabbitmqlog-*),单击Next step。
1 ?: [* A( L# C! {1 X) M- }" l9 N
Index pattern4 `. Z2 f# v' f1 R
选择Time Filter field name(本文选择@timestamp),单击Create index pattern。
% S& V* f( @1 M w
2 }2 B5 k Y6 m. `* E+ b; eTime Filter field name, T# t- b9 X, ?- A9 T# O# I9 W
在左侧导航栏,单击Discover。
2 x t8 k* |0 I' n/ n4 G6 \4 L" E. q" O- k, d* b0 a
从页面左侧的下拉列表中,选择您已创建的索引模式(rabbitmqlog-*)。0 z, B- t8 ~: U0 v0 E$ R
& l. _; W) d0 P* I" W3 L! }
在页面右上角,选择一段时间,查看对应时间段内的RabbitMQ日志数据。
1 s! r7 h$ }' \
5 {2 y& F( n9 N查看日志数据
8 C0 o0 Y% F; `" `5 m, P单击Add a filter,设置过滤条件,查看符合条件的日志数据。
! H0 L% f- `4 s7 l
' Z; r' _" ^" `" SAdd a filter
. s5 t" y3 |- t5 F! T% n* B步骤七:配置Metricbeat采集RabbitMQ指标
. P& {7 c. M6 a b4 L/ f0 [$ F/ I您也可以通过Metricbeat采集RabbitMQ日志数据,并通过Kibana可视化监控RabbitMQ的各项指标。
3 f( T0 R$ p) K: c( N3 I5 M1 v# b- [* v7 T- }# \! N
登录目标阿里云ES的Kibana控制台。
/ n2 } ~1 j6 ^8 t: L" j8 m
( S( }# z7 `; a/ c7 A1 `# J0 D具体步骤请参见登录Kibana控制台。! o- B D3 q8 q: d% t \. Q
4 d1 R- u* U* y M! }" O4 I9 G
在页面左上角,单击Kibana。+ s3 N; X( G3 ~! ]. r+ S
6 z, v4 N' Y4 j" X7 E+ {: j在Add Data to Kibana区域,单击Add metric data。& l' X ~1 t, x4 H; q& ?! Y
* J& x3 E4 ~0 A
Add metric data
' L% r+ [9 _5 B+ h' B在Metrics页签,单击RabbitMQ metrics。
p8 e0 _, I0 H" @% z7 m. z3 F' F7 L
/ p* j* u8 P" E/ G: DRabbitMQ metrics
2 N r9 w7 x) P8 M/ b单击RPM,按照页面提示在ECS中安装并配置Metricbeat。* Q& h% _* j+ o: O8 Q
$ G% k# ? u. V- p" `" n, b3 D6 m4 L2 Y& x5 }
配置Metricbeat时,需要修改/etc/metricbeat/metricbeat.yml文件,设置Kibana和ES集群的连接信息,本文使用的配置如下。# ?3 r/ }7 \/ Q4 G! C2 F/ @+ N
) p2 N% g" J8 ? E
; r* {2 D7 B+ }: e4 V8 m, Q: ysetup.kibana:2 I, ^$ Q2 ^9 M+ X% P& d
* `1 \* c% `) o7 N: L9 q
# Kibana Host, W2 [" {! O2 |2 Y, J
# Scheme and port can be left out and will be set to the default (http and 5601)- q) B) S" F. o/ e
# In case you specify and additional path, the scheme is required: http://localhost:5601/path
0 @- _& B, S+ l2 i # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601) Z0 i1 M$ F4 l$ X# B5 C( J n+ Q
host: "https://es-cn-4591jumei000u****.kibana.elasticsearch.aliyuncs.com:5601"1 Q" @ l3 j, r4 ~8 f( W
output.elasticsearch:
3 }* C1 d0 p5 F! A5 {! K # Array of hosts to connect to.
8 E/ C7 C! l8 u; ~2 H c$ E hosts: ["es-cn-4591jumei000u****.elasticsearch.aliyuncs.com:9200"]
' b c% ~( g* ~1 q
# p- Z# m$ y- Z' | # Enabled ilm (beta) to use index lifecycle management instead daily indices.
) h& Z2 J$ C+ W& u #ilm.enabled: false
* u: a* ]/ H5 n/ U5 I
5 m6 }+ @7 v1 j. o y # Optional protocol and basic auth credentials. B% p B+ a& M) b9 }
#protocol: "https"5 \8 x( F5 z8 |
username: "elastic"
: u% w5 G, k) `1 x- O5 B password: "your_password") b7 H2 a5 i2 s/ H, ]# [ n
启动RabbitMQ模块及Metricbeat服务。" i- k" t, B4 x) f+ B/ R
5 U+ e0 O1 t0 \9 e# ~. P
启动RabbitMQ模块
2 b1 Y" Y, X2 ?0 O4 l$ _/ ^ y( D1 J( F+ j; v
( z) D$ g: q6 ?+ _0 ysudo metricbeat modules enable rabbitmq( E+ Q1 \0 Y* n5 N2 l+ W7 Z& M
启动Metricbeat服务并设置仪表盘! z% S6 X; ?/ i' }9 ^$ O, r
4 |/ ~; A3 F1 Y1 u( I9 b
6 M! o: w# w8 n* P. v4 w- q( Wsudo metricbeat setup
. |. O* S$ h/ Q4 A: K1 {/ f! L' f7 Hsudo service metricbeat start+ V) i4 K; f! O( C1 `
在RPM页签中,单击Check data。1 N) D. T. N) ^; D* V( g
) N4 p$ p' p( \- q; R2 tCheck data' ]! Y% G. J8 ?" @ s( K* F
单击RabbitMQ metrics dashboard,查看Dashboard监控大盘。
3 Y- f1 A* U G5 i. T; t1 k+ f2 o; `0 O0 H
|
|