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