找回密码
 注册
查看: 15|回复: 0

使用es监控RabbitMQ日志

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2024-11-6 15:56:40 | 显示全部楼层 |阅读模式
使用es监控RabbitMQ日志
0 H6 S; p, x& P5 k2 b4 B4 B  }: @3 _7 @, Q( ]

2 l2 N0 f2 N; X7 T2 Q0 @RabbitMQ是一个开源的消息代理服务器,能够为您的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全性。本文介绍如何通过Filebeat,将RabbitMQ的日志采集到阿里云Elasticsearch(简称ES)中,并对日志进行可视化分析与监控。
+ i! n  n( }  D8 W
$ @/ L; ^7 ^7 }) k  z2 L操作流程6 k4 y" R8 P$ D2 ~; ]) H+ r
准备工作
" [2 p& U/ ]* x, Z# X5 h+ N; ]- m: ]: h; r
完成环境准备,包括创建实例、安装RabbitMQ等。
2 p1 M% ]" i  y  I' g' i; e, _5 J+ x
步骤一:配置RabbitMQ
  z! X, \* N& q- I. D  T( G2 r
0 ^9 D* W  m# g; Q配置RabbitMQ的日志级别和文件名。
, ]. i# F# a3 f2 `6 @- c( |# H0 o% [% E7 p
步骤二:安装RabbitMQ示例应用
; Y, [$ \) t3 y* @( s1 N+ ?
9 z6 @& a$ n% K( p  g基于Spring Boot,使用RabbitMQ的JMS客户端生产日志数据到RabbitMQ中。
9 o7 g  e; R  U( r8 w5 P6 O9 d5 @+ u0 b  }* D  E5 m& N/ B
步骤三:创建并配置阿里云Filebeat
, E( g3 D* b! h" q& d: M/ t) Q  S, Z3 w; i7 I
配置Filebeat采集器,将RabbitMQ的日志数据发送到Logstash的8100端口。
$ }0 s/ N3 }; Y& g: N8 h  `, Y
8 E) T" ~$ f8 t+ W步骤四:配置阿里云Logstash管道
! }) K" L4 w4 n. l' D
" _, l* u0 k/ R# |/ f配置Logstash管道,使用基本的Grok模式从原始消息中分离出时间戳、日志级别和消息,然后发送到阿里云ES中。3 k5 ]* U6 y1 [: k) h

& {$ h- ^! x9 K4 K% o6 h4 q步骤五:通过Kibana查看日志数据
8 f. ~0 \) u1 B& Y1 T+ v1 x! Y. w# h0 d9 ?: G2 {; J
通过Kibana查看经Logstash处理后的数据。
1 y; ~/ X2 x6 ~& Y8 ?0 v$ v; l9 @# i- A. }2 p2 H
步骤六:通过Kibana过滤日志数据
6 r. u' ~( L- \3 }  y( k
; B& M7 F  h# d在Kibana控制台的Discover页面,通过Filter过滤出RabbitMQ相关的日志。
5 q7 c" M' ^; z& I9 C& J
* T, C+ J3 H! D% G$ @步骤七:配置Metricbeat采集RabbitMQ指标$ y4 |9 y8 G9 i4 ?/ Z) X) N. j
6 h9 N' f2 N( ~, \& e  T3 g' M2 S- F
通过Metricbeat采集RabbitMQ日志,并通过Kibana实现可视化指标监控。
' ?" m, n! T" t8 D* N3 z+ I$ K
! {. l7 K8 V5 D$ D) y/ ~准备工作; ?1 C# [  _4 r0 t4 ?7 L3 u
创建阿里云ES和Logstash实例,两者版本相同,并且在同一专有网络VPC(Virtual Private Cloud)下。. O! V7 e1 }+ I- N5 M9 B
2 F; K% h: ^+ b& K5 w8 Q  J
具体操作步骤请参见创建阿里云Elasticsearch实例、创建阿里云Logstash实例,本文以6.7版本为例。$ K& y- ^7 d. t  z6 V

2 d( s+ S+ w8 G" G: R; T开启阿里云ES实例的自动创建索引功能。7 C/ ?$ a5 Q, Y2 @$ A' ?7 z

% o* s0 z/ X- `) Y- M具体操作步骤请参见快速访问与配置。+ b( o) g3 i$ [) \

, P! W- j( f0 E4 z) j1 i7 {创建阿里云ECS实例,要求与阿里云ES实例和Logstash实例处于同一VPC下。
$ G9 q) g. t" J# E( p3 P/ ~' J4 G" a% S4 n- U: B) x& T, r
具体操作步骤请参见自定义购买实例。
, F0 \* Z# K0 k
% T. i3 \) u; d) @* n5 n) k重要8 ?2 D( J% o2 P* V) Z
该ECS实例用来安装Beats和RabbitMQ,由于Beats目前仅支持Alibaba Cloud Linux (Alinux)、RedHat和CentOS这三种操作系统,因此在创建时请选择其中一种操作系统。本文以CentOS为例。  d8 h  h& b# R) g6 K6 ?) ]

" B3 s# J: P9 v& J在目标ECS实例上安装云助手和Docker服务。' S' Y! ]0 P. L+ u2 W5 g3 J

, R; L8 m) z2 n, j. ]具体操作步骤请参见安装云助手Agent和部署并使用Docker(CentOS 8)。4 [9 r/ p* z; K3 f4 n0 O& F0 u2 _4 h
. y3 _0 c( G$ n# }
在目标ECS实例上安装RabbitMQ。+ U" `3 E# s! `- b

" U. h% ?6 G4 b$ `具体操作步骤请参见Downloading and Installing RabbitMQ。
9 X; E) ?+ }" V# Q/ }) G& T& f9 T) |# b
步骤一:配置RabbitMQ' {( R* i0 e3 Y" [* S. M$ {- n" j7 N
配置RabbitMQ的日志记录级别和文件名,步骤如下:& M" q8 \7 m. w. P* k8 t

9 T, m* r4 k1 o% p6 D2 k3 S连接安装了RabbitMQ的ECS服务器。
, ^9 \8 ^( W" Z8 |. n) [6 ?' L6 O+ _0 U" W& q
具体操作步骤请参见连接实例。
6 T! {. |1 n6 u  U/ ~( t" G/ g2 R6 j% F( Z: g( k# [) T
说明
/ d; J2 v# I# t  s5 i本文档以普通用户权限为例。  d# z" X, S' _' i( `3 i2 j- B" f

9 E. l, f0 p) R  y& {执行以下命令,打开RabbitMQ的配置文件。
; F' g  S1 K6 a" m) Z& h
' L# _/ s$ b5 D5 C- w; E 7 j; j) r) H  q
sudo vim /etc/rabbitmq/rabbitmq.config
4 W7 d; k. Y* N2 C! s( z% |$ \# {% l修改RabbitMQ的配置文件。
2 ~' w# z5 H  F0 U
* k+ d0 C- w) W( C3 O
7 a* E6 ~) M% [/ T. {{& K& J% S' P5 K2 w1 A1 \, |
  lager, [4 _" N+ p( k$ I* X+ p
  %% All log messages go to the default "sink" configured with
: B! g9 f" U! }- U5 t+ K. ^+ [' c2 X! V  %% the `handlers` parameter. By default, it has a single3 I6 d3 O* h0 @$ W% F) l
  %% lager_file_backend handler writing messages to "$nodename.log") w+ K7 f( |7 k
  %% (ie. the value of $RABBIT_LOGS).
/ u; a1 O5 G2 N# D   {handlers, [
0 k" k: E% A4 z# P7 e     {lager_file_backend, [{file, "rabbit.log"}," u$ ]' L  p6 Z+ z
                           {level, info},
0 p# b# D* E) T6 l                           {date, ""},
2 ~3 q1 [9 c7 y" N% I& E$ Y/ e                           {size, 0}]}7 M. z7 M* R( n7 V) i$ ?- `1 k% [
  ]},; i3 `. e9 m+ o: a  D
{extra_sinks, [+ u/ r; [$ K+ E: j. {' i0 H

' j: O4 E# r  Y     {rabbit_channel_lager_event, [{handlers, [. U! k9 n  E: l$ R* g, p
                                     {lager_forwarder_backend,
' Y4 Y6 \+ r8 l# O! i# u& L9 D                                      [lager_event, info]}]}]},
3 R8 Y2 M8 I. C2 L2 B. K+ E     {rabbit_conection_lager_event, [{handlers, [, `( D3 T2 j8 m9 g& a8 x
                                       {lager_forwarder_backend,- ?0 i4 l! [* w6 m$ i5 \3 {
                                        [lager_event, error]}]}]}, z/ h( C: ^1 N6 w; ]; O$ @4 c& ^5 D* x

; H8 M$ x9 z. d  ]}
- w; X1 u3 F, ~+ B  d修改后,RabbitMQ的日志文件名变为rabbit.log。
1 m$ r) y3 y- t' |  N1 d7 K6 D/ O' e! u8 P
说明
6 Q  |" Y% U+ Q日志级别(level)默认为info,您也可以将其设置为error,即记录出错日志。本文以info日志为例。/ A0 h" w5 D5 F. V* k) h6 F

# g1 L" @- ~4 a, U修改配置文件后,需要启动RabbitMQ才能生效。
) @% [! r% L! ~$ e* ?7 Q/ F  |$ v3 Z$ R  k0 C
启动RabbitMQ服务。  K3 E) c! U: z7 M% `6 U, j% D: Z

* B: N, x8 r8 G9 |6 _4 I7 O6 V& o进入RabbitMQ安装目录的bin文件夹下,启动服务。& n7 w4 B4 N4 C0 K2 r
4 H& @! b: R- C- A
$ W# F0 n4 c# D; S* y, x
sudo cd /usr/lib/rabbitmq/bin
9 p# i' q$ m6 `5 ]5 p1 D& Z3 M/ ?sudo rabbitmq-server start! T! \' f% U# X% \4 P' O) _
启动成功后,可在/var/log/rabbitmq下看到rabbit.log文件。
/ ^( {& S# z0 ~6 h/ F$ Y& J
* r) x7 J" ~* _5 W3 d! _步骤二:安装RabbitMQ示例应用7 z) P; a7 F" T# ^  A- ]
本节基于Spring Boot,使用RabbitMQ的JMS客户端进行演示。具体操作步骤如下:, e% V+ ?2 U2 \' }. _; s
' }- l3 a1 [6 j' u/ t
重要% c5 f, T7 j# Z7 a* p
由于示例需要编译应用,因此您必须先安装Java 8。+ j- q/ ~( K2 ]; }% o
$ j( r: y) g5 V2 L* S" @4 O
在ECS中,执行以下命令克隆示例。
* I- m% |5 f% J: G5 y; O" |
/ R& u% X6 |" \+ R. m & h# j: c( @  U" `" h% B
sudo git clone https://github.com/rabbitmq/rabb ... ng-boot-trader-demo# D- Z, U# [; d* t( g
进入该应用所在根目录。
, j7 i$ n- l1 f4 A! ~/ y2 c- Q  ]/ K2 e7 P; S8 ]" V

( P6 I2 H9 P: \  ^cd rabbitmq-jms-client-spring-boot-trader-demo9 u" d5 }+ Y8 f4 s
执行以下命令打包并运行应用。. U4 k0 Y  Q+ X4 v

( K1 E4 C2 _: M, {
2 e8 @6 ~( ?: f6 Asudo mvn clean package4 ]5 B- y( D( W  G+ ]5 Y% z
sudo java -jar target/rabbit-jms-boot-demo-1.2.0-SNAPSHOT.jar) z  ]1 T. V# Y& \4 E2 a# V
运行成功后,返回结果如下。2 I6 U: i' ^: M0 q5 s: ]: _% a

  p7 ~. v+ K- `$ r! p3 i
9 b6 u: A4 @: \. ?.   ____          _            __ _ _( L) \" d1 z. z+ x  T0 U
/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
- [* m5 a# z# V* S' @( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
1 u7 B9 E( m* K- G1 M \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
( I. C8 R  e4 v1 y/ z* \6 ?  '  |____| .__|_| |_|_| |_\__, | / / / /
+ w4 b" b- Y  N+ X- b1 l: T =========|_|==============|___/=/_/_/_/1 ]1 r5 K1 O& y# W
:: Spring Boot ::        (v1.5.8.RELEASE)- f# `" m- U9 w( d- d9 I
2020-05-11 10:16:46.089  INFO 28119 --- [main] com.rabbitmq.jms.sample.StockQuoter      : Starting StockQuoterxxxxxx9 d$ X1 K$ r4 ]
2020-05-11 10:16:46.092  INFO 28119 --- [main] com.rabbitmq.jms.sample.StockQuoter      : No active profile set,xxxxxx
/ d" {% a+ w1 Q) y4 y2 k  ~& w  |2020-05-11 10:16:46.216  INFO 28119 --- [main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.xxxxxx2 E, p. t1 H# y" Q6 `7 _4 V
2020-05-11 10:16:47.224  INFO 28119 --- [main] com.rabbitmq.jms.sample.StockConsumer    : connectionFactory => RMQConnectionFactoryxxxxxx
+ w! |& e7 I% j4 c2020-05-11 10:16:48.054  INFO 28119 --- [main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposurexxxxxx 6 T7 A" |9 _& `" I; O4 W! S
2020-05-11 10:16:48.062  INFO 28119 --- [main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 0xxxxxx' |% g4 h) `9 H+ K4 v
......2 _; s3 B  l7 c8 e7 O& u8 [% l* \
进入log目录下查看RabbitMQ日志。# |; X% ?- U- z, x) H

2 n7 o% V' l) |) @- ` $ S" s" j7 F. y/ m5 y4 l: _
sudo cd /var/log/rabbitmq
7 Y* G" W1 G: a6 J% I9 rsudo ls
- E8 Y) ~3 W  }8 m# u0 q返回结果中的rabbit.log即为步骤一:配置RabbitMQ中配置的文件名。
4 k1 {. Z* s- t/ Z  f+ B. J1 c* @- b- g+ t: N
步骤三:创建并配置阿里云Filebeat4 [- a2 o3 |3 I9 B7 K
配置Filebeat采集器,将RabbitMQ的日志信息发送到阿里云Logstash的8100端口。0 o4 X4 s3 G9 i5 {6 a2 E
1 G  w+ E1 y& }2 i( M  [( P1 a
登录阿里云Elasticsearch控制台。# Y+ g5 w9 n, g. F$ ~
在左侧导航栏,单击Beats数据采集中心。
% e# B/ N. _0 e/ w4 q. C$ r- Z) A% ~1 _4 w2 \8 t" N7 b
在创建采集器区域,选择Filebeat > ECS日志。
& z' ^  W8 p, Y( w+ q
$ y7 k0 q9 n3 R, k0 E配置采集器。4 Z* @  v! h  J% J! N. m$ G% `

. F: E+ t' ~" T* U+ r0 Q更多信息,请参见采集ECS服务日志和采集器YML配置。本文使用的配置如下。filebeat配置* ?( }! d/ v/ {1 o! N- [8 Q8 q
8 A# E) V8 r4 W. L$ `4 u' X" t! ^
说明
7 U) ^9 {9 s  H! d采集器Output需要指定目标阿里云Logstash的实例ID,在YML配置中不需要重新指定Output。
/ w) Q8 z$ q0 r$ r4 d! y; `" g  L7 V
; o& {5 K5 O. j9 |Filebeat文件目录需要填写RabbitMQ日志所在的目录,同时需要在YML配置中开启log数据采集,并配置log路径。! G- w4 q1 l* o8 H% M0 W

* T/ o; {5 ?9 d0 N本文使用的filebeat.yml中的filebeat.inputs配置如下。3 Y+ }" f$ U7 a# W  K2 u+ b
2 U( |7 `9 Z6 V! T7 j4 m& ~
% Y5 T( H+ `: Z6 z) K
filebeat.inputs:' V# B4 \5 e/ l+ M; r
# Each - is an input. Most options can be set at the input level, so
. Y, R( s8 d- z. U# you can use different inputs for various configurations.$ I( v8 U( L6 {
# Below are the input specific configurations.
5 g& Z) d5 Z; y  W/ `
; @- }% G  ~! G- type: log9 i; X, Y/ z4 g0 l; h) [  Y
) j* v! R: T) a4 _% ~+ P
  # Change to true to enable this input configuration.% Z1 M% L+ ~8 L  G
  enabled: true
/ _' m* N% V! M1 x5 N* I7 j  fields:
/ e# p5 G  e/ e1 E4 E! D& Z    log_type: rabbitmq-server
$ L4 C/ g: g) \9 R  # Paths that should be crawled and fetched. Glob based paths.: o# L: }! o3 q5 Y
  paths:( _1 p1 a0 l8 \; b
    - /var/log/rabbitmq/*log2 z; e- j: [9 Y; C1 l: {7 z
  fields_under_root: true
1 k& X% S: C2 V$ G0 J* N  encoding: utf-8, ?/ ^  q% N: l% W; u6 g
  ignore_older: 3h" F$ @7 H; ~/ V3 @( Y" I
安装并启动采集器。, M  A' F8 N+ X) {

2 {) e( M& z! G+ `5 ?- U具体操作,请参见采集ECS服务日志。安装时所选的ECS实例要与阿里云Logstash在同一VPC下。选择采集器安装的实例4 H# X  S/ y# O1 k" z7 }: ^% m
: O) E; n, Y. M6 g& U: t3 j  n
查看采集器安装情况。3 u+ J9 V4 V. x( f- ~0 Y* e! |
" ~9 p% W7 d+ Y2 H9 \$ D
采集器状态变为已生效1/1,且查看采集器安装情况后显示为心跳正常,说明采集器安装成功。查看采集器安装状态
" c# S# M3 J4 E0 \
! j  g  {) |: z! ^步骤四:配置阿里云Logstash管道
8 }- E1 l4 ]! W$ m- l( O: _: W# x0 @配置阿里云Logstash管道,使用基本的Grok模式从原始消息中分离出时间戳、日志级别和消息,然后发送到阿里云ES实例的指定索引中。
( m9 E8 d5 B  I- s- H9 t2 g6 v, i9 j5 H$ N* Q
进入阿里云Elasticsearch控制台的Logstash页面。( u- x, ]' o) z
进入目标实例。! I7 J7 e0 L9 Z* \$ @0 k
在顶部菜单栏处,选择地域。; J# G( b$ S4 o& R$ S
在Logstash实例中单击目标实例ID。
- ?) b7 G) S5 t" M在左侧导航栏,单击管道管理。
2 S. s( h/ l+ ^
% S! z3 m: W% z( k7 g" w6 x6 S, l. E单击创建管道。
9 u. O, C" C3 A3 X- m( D  }+ t1 G2 |; b( P- A4 G3 S
在创建管道任务页面,输入管道ID并配置管道。
& P  W/ C7 L3 _8 u4 b+ j6 M
8 c7 b  x" v8 u! y7 b  o1 z本文使用的管道配置如下。2 S9 ?( p" d! {
/ d4 y% X+ h2 W  X' u
. O1 `' d! |: [* c5 o, G& |0 Y$ O
input {
4 _' A5 F1 {  b9 J  beats {: O) s* A- Z7 X  l; @9 P
    port => 8100
9 h  B) ~5 r, c2 F3 a/ L  }9 ^, _8 r) {. N, _: f
}/ Z1 d& K4 e0 ^" Y1 P/ t
( _+ T2 {7 j9 m9 o3 i0 R
filter {
+ ~. T; F7 n& c; H0 B' H/ z( d0 U: h; ?  grok {
7 k% X* C0 O% ~" e0 o8 g( p    match => { "message" => ["%{TIMESTAMP_ISO8601:timestamp} \[%{LOGLEVEL:log_level}\] \<%{DATA:field_misc}\> %{GREEDYDATA:message}"] }3 X+ O( N+ W' N8 R3 J( {2 g
  }
3 K- N- P/ a6 M) ^, j  Y8 R}/ d. u; h8 @5 x! Q' n
9 E( ?4 t9 h' m/ X- U/ R4 p! O
output {
' ^8 A5 @* S  G- o6 I3 W4 A( J   elasticsearch {
* o) N$ f- y/ y* ~3 w      hosts => "es-cn-4591jumei000u****.elasticsearch.aliyuncs.com:9200"
" g# o; d2 e* i      user => "elastic"
5 w4 A# v) b, N& P/ E3 w" e      password => "your_password"
% {. w* d% W. @      index => "rabbitmqlog-%{+YYYY.MM.dd}"9 W5 b4 F# W& p: R3 K
  }# k, e# `3 n' c/ J
}/ f' C' n2 V5 H% y
管道配置详情请参见Logstash配置文件说明。  h% a4 X3 B9 H# @( i
0 h+ [7 S0 h; k) `
单击下一步,配置管道参数。
5 D3 H* P6 h) }$ ?: O! r1 k1 i5 D
: L& C8 q9 c+ ~7 Q0 T管道参数配置4 T6 Q: @: z5 {; G! h( B: o

; Z- V) V+ w% Q. f3 L/ `
2 ~: s3 S7 }, S参数
0 J) O+ [$ |* u$ ?+ i$ G/ s, h% o& ?, g
说明
- S5 p  T, T4 h, j; l; n1 {& ^) f, u: d: k1 B3 |6 r
管道工作线程
4 \1 S6 c2 N& Y" H* K- F9 N( N6 {
并行执行管道的Filter和Output的工作线程数量。当事件出现积压或CPU未饱和时,请考虑增大线程数,更好地使用CPU处理能力。默认值:实例的CPU核数。# g/ v2 H% ^9 R! s- X
  ~/ s9 E9 z( c8 A7 N
管道批大小
8 |4 I" w- K# Z- ]& a/ K( d  H1 J$ D0 V6 G% x# G! P" S
单个工作线程在尝试执行Filter和Output前,可以从Input收集的最大事件数目。较大的管道批大小可能会带来较大的内存开销。您可以设置LS_HEAP_SIZE变量,来增大JVM堆大小,从而有效使用该值。默认值:125。$ S$ o) [0 P: v) v

( ^: O& h" m8 ?, }管道批延迟0 U2 j$ y3 n7 e

/ t: p/ t$ q: ?1 d" w/ }创建管道事件批时,将过小的批分派给管道工作线程之前,要等候每个事件的时长,单位为毫秒。默认值:50ms。
, t2 U4 I/ P& ?0 D& \% w1 N: ^7 L7 L! W* d
队列类型0 C; S( L5 D6 V& o# `
# {1 F. d" F3 v
用于事件缓冲的内部排队模型。可选值:
0 m1 p3 ]2 y1 S3 ?+ L4 Z- E. Q/ x$ Z1 b# r7 O& a  w
MEMORY:默认值。基于内存的传统队列。
- x1 H$ h' \, X9 J+ r) c' Q: H7 R
PERSISTED:基于磁盘的ACKed队列(持久队列)。: r0 D5 o, A7 g$ M2 i

- L2 X3 J& k. i1 ^队列最大字节数0 Q5 w% Y3 b7 Z
, [4 q% ]# d: D
请确保该值小于您的磁盘总容量。默认值:1024 MB。5 G& v$ R8 _$ d% D8 }0 `+ \6 B

; g* N+ a5 w7 M3 N队列检查点写入数
! k4 a, R6 b: I- F( j: y
7 p% W1 \# C/ K* S( }" s启用持久性队列时,在强制执行检查点之前已写入事件的最大数目。设置为0,表示无限制。默认值:1024。
& Y& \6 Z" d* c' @  d. D& u- r6 D& U3 ^8 O0 ^+ O5 W
警告; b1 U) B5 d4 v; r0 _) \. G: t
配置完成后,需要保存并部署才能生效。保存并部署操作会触发实例重启,请在不影响业务的前提下,继续执行以下步骤。2 a' k0 w4 @7 c7 c& U

+ p$ y) x7 W- F单击保存或者保存并部署。
  M0 g$ s1 h3 I" j9 ~% u: g! @* k9 w( o2 O2 G8 c$ v! x* R
保存:将管道信息保存在Logstash里并触发实例变更,配置不会生效。保存后,系统会返回管道管理页面。可在管道列表区域,单击操作列下的立即部署,触发实例重启,使配置生效。4 v' O) U% H0 U* p/ ~. B9 x, S
! K% V* J$ w4 [+ n) W
保存并部署:保存并且部署后,会触发实例重启,使配置生效。
7 e) o/ w1 E! |' T* _5 }! Y  O* a6 t* F  w. v! R( R* E9 R, \; W
步骤五:通过Kibana查看日志数据5 N' J8 @2 o% O+ }9 T
登录目标阿里云ES的Kibana控制台。
& ?+ y+ B" _4 O) X! O: F: [! m2 L1 E; X; R8 A' |: f
具体步骤请参见登录Kibana控制台。8 p4 F. G2 ]: J6 R" g
: m+ i" Q8 f: C% o# C! y' I# }
在左侧导航栏,单击Dev Tools。
; q8 P3 G: ?, V) @4 G+ Q) B, J- b6 _# Y0 l
在Console中执行以下命令,查看Logstash处理后的RabbitMQ日志数据。
7 i% Y8 |: g/ l& P) e6 E
( P; P0 P6 V) A: r
. H6 ^2 Y" `  s8 _GET rabbitmqlog-*/_search
# i" e; j5 w, Y" \( n" g  W/ d{6 M8 W; T- u: k- `5 Q: `
  "query": {+ T+ I& g8 Q, w! G% j$ K0 H) P
    "match_all": {
# Q8 L8 R3 L4 N2 [1 O: p' f( F  ]   }}2 A5 m: `+ P2 m% P$ Y
}+ j  {" S3 s9 Q+ M& _$ J
执行成功后,返回如下结果。返回结果
" Q9 _9 f9 @1 ]) i! G; A& p! f# a" ^
步骤六:通过Kibana过滤日志数据
: W- ], r) m# `; x  h登录目标阿里云ES实例的Kibana控制台。
5 U- C; r% p" M' d8 Q: h: g$ p( g
; t7 ~4 t1 b: O( @" ?# M% a具体步骤请参见登录Kibana控制台。* z/ a9 L' Q9 e% f7 ]
) {, q+ C4 z7 Y! G3 B# p1 G
创建一个索引模式。  ~1 e5 ~- ~/ C" A: |# U& h
% A7 v5 r, J$ ^) ]- @& @& \
在左侧导航栏,单击Management。
: I9 _; q2 ?& D4 i8 R$ H* j/ ^
( k3 o! F2 ~0 p. z1 [在Kibana区域,单击Index Patterns。
: w& T! A$ b# U# [  L9 j9 v- y6 n, z1 q
/ }7 P$ E1 \2 b6 p0 i. c' ~4 w单击Create index pattern。
0 V& `) A. H# n2 _
) Q: X6 f  R3 Z6 a( t输入Index pattern(本文使用rabbitmqlog-*),单击Next step。
7 Y4 n: g/ H, A3 _+ J" ^' q& Z% r% J- |0 l: ~
Index pattern
* ?/ C: m. `  T选择Time Filter field name(本文选择@timestamp),单击Create index pattern。
+ w9 S1 E8 }9 ^6 O& H; x3 }) C* `0 i! B+ y9 c% f1 x
Time Filter field name
6 r& j7 b& V' }$ U* W" U5 u在左侧导航栏,单击Discover。; M& o; {# H4 h/ d. k
) p/ o$ x2 ^% V; ~# J
从页面左侧的下拉列表中,选择您已创建的索引模式(rabbitmqlog-*)。' A' h# i2 {! V
! d, n& r( I5 O) {7 i8 j( y/ V
在页面右上角,选择一段时间,查看对应时间段内的RabbitMQ日志数据。, \: u% A$ o9 O2 q

5 T. `  {. R( T1 r查看日志数据7 r5 C5 f1 U4 P+ i
单击Add a filter,设置过滤条件,查看符合条件的日志数据。
- ^- y+ Y, ?+ Q' O3 S9 y1 ]# Q# W( j
Add a filter
9 h9 u! V! \: W步骤七:配置Metricbeat采集RabbitMQ指标
+ x9 Z4 j2 R, }4 _( l+ B! U您也可以通过Metricbeat采集RabbitMQ日志数据,并通过Kibana可视化监控RabbitMQ的各项指标。' c/ k7 P) w" D9 l  t0 e" _
; Y: b$ t0 w, f4 Q1 O5 H4 a. [
登录目标阿里云ES的Kibana控制台。: o& n  F! A: W7 v( H5 B

$ Q3 l( l! v/ t% @. p具体步骤请参见登录Kibana控制台。
2 t4 s8 r' r( I, H0 l
, r5 L: u7 _, Q在页面左上角,单击Kibana。
4 s0 }: ]' E. Q) U1 W% M) x( q% H7 N+ I% S) s$ Q+ y
在Add Data to Kibana区域,单击Add metric data。
& p( Q* V* o. U5 C, G
8 P3 N9 g1 J5 n* F0 W, x! ~Add metric data
3 H- ?6 k( U- Y在Metrics页签,单击RabbitMQ metrics。
1 w8 r, H7 @  r9 z8 t7 o6 e2 }8 G, B% R/ \1 B" B! C
RabbitMQ metrics
. S) ?) }) }8 ?! X, Y单击RPM,按照页面提示在ECS中安装并配置Metricbeat。
# b* a, q1 r# ^2 U1 v' c7 O/ H: P- ?" {! }- U4 K' p7 z4 K9 y
配置Metricbeat时,需要修改/etc/metricbeat/metricbeat.yml文件,设置Kibana和ES集群的连接信息,本文使用的配置如下。
2 ~+ V0 e0 s1 ^: o
. g; e" P: p) o% ~
$ Q0 j/ b7 g* ?+ i- L. u8 qsetup.kibana:6 Q" h9 E2 d8 B8 ?% U7 v

+ @* P! R5 d. x& M) D8 e  # Kibana Host
6 m' r0 }5 G5 F9 E: A  # Scheme and port can be left out and will be set to the default (http and 5601), [9 ]# }9 v9 s+ u
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path( Y9 z8 h$ J) x$ Q
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
/ D5 R* c) r+ T5 s   host: "https://es-cn-4591jumei000u****.kibana.elasticsearch.aliyuncs.com:5601"+ K* o" p$ b( G( s& E& f: {
output.elasticsearch:
; w% L. z4 R1 Q9 P- i% v' D8 c  # Array of hosts to connect to.
4 B& H0 c8 R$ C) p: D& i  hosts: ["es-cn-4591jumei000u****.elasticsearch.aliyuncs.com:9200"]
! I3 ]& ?( H& }. f
* W# A8 C$ \1 \% ]8 N  # Enabled ilm (beta) to use index lifecycle management instead daily indices.
9 B/ g1 |5 b& [& i" Y  #ilm.enabled: false
. R" @) J4 a  t" u; C8 I2 X) D& b4 g" P
  # Optional protocol and basic auth credentials.; V% v* a# N- f2 {/ k5 x1 A. ^
  #protocol: "https"+ n) H/ [& q# _
  username: "elastic"
" A; n, [" F" [1 j  password: "your_password"; B( h# ~1 w$ r
启动RabbitMQ模块及Metricbeat服务。
- `5 J) K* m1 r# r& t# b0 M& |( I0 O; M  D
启动RabbitMQ模块
& f: o  ^' x2 \$ n$ v. |3 M
4 x* L/ l; x3 C" g
7 G; n: c; l# v1 \$ tsudo metricbeat modules enable rabbitmq
7 t1 ]; N$ N% S5 z9 Q1 i启动Metricbeat服务并设置仪表盘! B& I0 |; N# x4 Y4 q  h. {4 k

4 @- j% x, ~' P
! }" l9 @" ~: m7 @; r5 T0 dsudo metricbeat setup1 o4 F2 i% A& i9 r' C
sudo service metricbeat start; U: ?6 p+ [! @. P! p0 @( K9 h
在RPM页签中,单击Check data。; s$ h9 C( V' K3 A/ k0 z, u# m: b
" _+ x4 w) b; j5 ~3 f' D3 Y5 S) [
Check data$ M+ L; E9 c) E, u* B9 R% _$ Z
单击RabbitMQ metrics dashboard,查看Dashboard监控大盘。
" i  o6 h/ ^$ B4 I- I) F, S. s' K9 t& N2 ]6 A! L- Y
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:41 , Processed in 0.016510 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表