基于mq搭建elk

基于mq搭建elk

其实elk就是ES,Logstash,kibana,那ES的数据源由很多,本文主要讲下通过mq把数据扔到es然后通过kibana展示

官网地址:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-rabbitmq.html

Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地

安装

在官网下载之后解压
logstash-sample.conf

这里主要配置日志的输入和输出,下面是通过mq输入,输出到es的例子,放在bin文件夹下

input { 
rabbitmq {
exchange => "notificationExchage"
exchange_type => "topic"
key => "xwxlogstash"
host => "172.16.20.1"
port => 5672
user => "test"
password => "itsme999"
queue => "xwxlogstash"
auto_delete => false
vhost => "/dev"

}
}

output {
elasticsearch {
hosts => ["localhost:9200"]
index => "xwxlogstash_log_mq"
}
}

在bin下面执行cmd ---logstash -f logstash-sample.conf

遇到的问题:

 

  • 解压之后的文件夹路径不能带中文,不然会报错

 

logback-spring配置
上述logstash启动之后,进行logback-spring配置

 

 <appender name="RabbitMq" class="org.springframework.amqp.rabbit.logback.AmqpAppender">
<host>172.16.20.1</host>
<port>5672</port>
<username>test</username>
<password>itsme999</password>
<virtualHost>/dev</virtualHost>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<routingKeyPattern>xwxlogstash</routingKeyPattern>
<declareExchange>true</declareExchange>
<exchangeType>topic</exchangeType>
<exchangeName>notificationExchage</exchangeName>
<generateId>true</generateId>
<durable>false</durable>
<declareExchange>true</declareExchange>
<autoDelete>false</autoDelete>
<charset>UTF-8</charset>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
<![CDATA[%msg]]>
</pattern>
</layout>
</appender>

注意这里,如果mq是多环境的需要加<virtualHost>指定环境,不然启动项目会报错

kibana
下载解压kibana,然后直接运行bat文件
正常启动之后访问localhost:5601

检查kibana状态

http://localhost:5601/status#?_g=()

​​

用Elasticsearch连接到Kibana
在你开始用Kibana之前,你需要告诉Kibana你想探索哪个Elasticsearch索引。第一次访问Kibana是,系统会提示你定义一个索引模式以匹配一个或多个索引的名字。

  • 在management中添加es索引


Discover

 

Lucene查询语法

Kibana查询语言基于Lucene查询语法。

  • 为了执行一个文本搜索,可以简单的输入一个文本字符串,例如:千与千寻
  • 查询某个字段 xxx:xxx .列如:cost:39.7
  • 查询某个字段的范围 xxx:[111 TO 2222],注意TO必须大写,例如:cost:[39.7 TO 60]
  • 如果想做复杂的查询可以用AND ,OR 和NOT来查询.列如:cost:[39.7 TO 60] AND film_name:千


例子

  • 启动es
  • 启动es-head
  • 启动logstash
  • 启动配好logback的项目


 

 
posted @ 2019-08-24 14:11  xwx唐宋元明清  阅读(338)  评论(0编辑  收藏  举报