分布式ELK平台(下)

Kibana使用

一 批量导入数据
1 使用_bulk批量导入数据
1)批量导入数据使用POST方式,数据格式为json,url编码使用data-binary
2)导入含有index配置的json文件

[root@room9pc01 ~]# gzip -d logs.jsonl.gz 
[root@room9pc01 ~]# gzip -d shakespeare.json.gz 
[root@room9pc01 ~]# curl -X POST "http://192.168.1.11:9200/_bulk" --data-binary @logs.jsonl
[root@room9pc01 ~]# curl -X POST "http://192.168.1.11:9200/_bulk" --data-binary @shakespeare.json

3)导入没有index配置的json文件,需要在url里面制定index和type

[root@room9pc01 ~]# gzip -d accounts.json.gz 
[root@room9pc01 ~]# curl -X POST "http://192.168.1.11:9200/xixi/haha/_bulk"  --data-binary @accounts.json  

//索引是xixi,类型是haha,必须导入索引和类型,没有索引,要加上

二 数据批量查询

 [root@room9pc01 ~]#curl -XGET 'http://192.168.1.11:9200/_mget?pretty' -d
'{
 "docs":[
     {
        "_index":"shakespeare",
        "_type:":"act",
        "_id":0
},
{
        "_index":"shakespeare",
        "_type:":"line",
        "_id":0
},
{
        "_index":"xixi",
        "_type:":"haha",
        "_id":25
}
]
}'

三 Map映射
映射:创建索引的时候,可以预先定义字段的类型及相关属性
作用:使索引建立得更加细致和完善
分为:自动根据数据类型的动态映射和自定义字段的静态映射
四 Kibana部分

五 Kibana修改时间

六 Kibana数据展示

七 Kibana展示方式

Logstash

1)一个数据采集、加工处理以及传输的工具
2)特点:
所有类型的数据集中处理
不同模式和格式数据的正常化
自定义日志格式的迅速扩展
为自定义数据源轻松添加插件

一、Logstash 是java开发的,一个数据采集、加工处理以及传输的工具

二、安装Logstash
1 配置主机名

[root@logstash ~]# vim /etc/hosts
192.168.1.11 es1
192.168.1.12 es2
192.168.1.13 es3
192.168.1.14 es4
192.168.1.15 es5

192.168.1.25 logstash
192.168.1.120 web-apache

2 配置yum源

3 安装java-1.8.0-openjdk

4 安装logstash
[root@logstash ~]# yum -y install logstash-2.3.4-1.noarch.rpm

5 打开官方文档的网址
https://www.elastic.co/guide/en/logstash/current/index.html
在这里插入图片描述
################################################################
1 创建别名

[root@logstash ~]# vim /etc/bashrc
alias logstash="/opt/logstash/bin/logstash"
[root@logstash ~]# source /etc/bashrc

2 配置文件,添加插件
[root@logstash bin]# cd /opt/logstash/bin/
[root@logstash bin]# ./logstash-plugin list // 列出所有 插件

[root@logstash ~]# vim  /etc/logstash/logstash.conf
input{
 stdin{ codec => "json" }  //input调用标准输入模块stdin,输入json格式
}

filter{ } 

output{
  stdout{ codec => "rubydebug" } //output调用标准输出模块stdout,rubydebug是调式
}

3 启动

[root@logstash logstash]# logstash -f /etc/logstash/logstash.conf    
Settings: Default pipeline workers: 2
Pipeline main started  //启动后,会卡住不动。回车可输入信息,Ctrl+C结束程序退出。
{"A":1,"B":2,"C":3} //输入json格式
{
             "A" => 1,
             "B" => 2,
             "C" => 3,
      "@version" => "1",
    "@timestamp" => "2019-03-26T06:27:11.031Z",
          "host" => "logstash"
}

4配置文件/etc/logstash/logstash.conf ,查找官方文档
https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html
1)找到例子

input {
  file {
    id => "my_plugin_id"    //键值对格式
  }
}

并且添加到 :/etc/logstash/logstash.conf

2)找到Options,第三列是yes的必须配置,这里是yes 的只有path,其他为可选
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

[root@logstash bin]# vim /etc/logstash/logstash.conf
input{
  stdin{ codec => "json" }
  file{
    path => ["/tmp/a.log"]    //必须添加该模块
    sincedb_path => "/var/logstash/since.db"
    start_position => "beginning"
    type => "messige"
  }
}
filter{}

output{
  stdout{ codec => "rubydebug" }
}

[root@logstash ~]# mkdir -p /var/logstash/since.db  /tmp/a.log
[root@logstash ]# echo ${RANDOM} >> /tmp/a.log
[root@logstash bin]# logstash -f /etc/logstash/logstash.conf 

path :表示将/tmp/a.log读入,该Input类型是数组,所以加中括号
sincedb_path:记录上一次读取文件到了哪一行哪个字节,避免重读或漏读
start_position :当指针记录文件不存在的时候,logstash的默认行为是不读取任何内容,设置为beginning是全部读取一遍。
type标签:读取出来的日志默认是不知道类型的。可以自动打上标签,

3)添加tcp和udp
tcp :模式有server 和client
默认是server,host是只监听的端口

[root@logstash bin]# vim /etc/logstash/logstash.conf

在input 的file下增加
input{
stdin{ codec => “json” }
file{
path => ["/tmp/a.log"]
sincedb_path => “/var/logstash/since.db”
start_position => “beginning”
type => “messige”
}

 tcp{
   mode => "server"
   host => "0.0.0.0"
   port => 8888
   type => "tcplog"
 }
 udp{
  port => 8888
  type => "udplog"
 }

[root@logstash bin]# logstash -f /etc/logstash/logstash.conf 

在其他机器输入

[root@web-apache ~]# echo "hello " > /dev/tcp/192.168.1.25/8888

再查看可以看到以下信息
[root@logstash bin]# logstash -f /etc/logstash/logstash.conf
Settings: Default pipeline workers: 2
Pipeline main started
{
“message” => "hello ",
“@version” => “1”,
“@timestamp” => “2019-03-26T08:06:48.085Z”,
“host” => “192.168.1.120”,
“port” => 57482,
“type” => “tcplog”

4)在input 的file下增加

[root@logstash bin]# vim /etc/logstash/logstash.conf
 syslog {
   port => 514
 }

[root@logstash bin]# logstash -f /etc/logstash/logstash.conf 

在Web机上的系统日志,添加

[root@web-apache ~]# vim /etc/rsyslog.conf
local0.notice                                 @@192.168.1.25:514  //local0.notice 接收到的信息发送给该主机

[root@web-apache ~]# logger -p local0.notice -t TESTLOG AAA       //将AAA发送local0.notice 

再查看可以看到以下信息查看
[root@logstash bin]# logstash -f /etc/logstash/logstash.conf
Settings: Default pipeline workers: 2
Pipeline main started
{
“message” => “AAA\n”,
“@version” => “1”,
“@timestamp” => “2019-03-26T08:15:39.000Z”,
“host” => “192.168.1.120”,
“priority” => 133,
“timestamp” => “Mar 26 16:15:39”,
“logsource” => “web-apache”,
“program” => “TESTLOG”,
“severity” => 5,
“facility” => 16,
“facility_label” => “local0”,
“severity_label” => “Notice”
}

5)filter grok插件
解析非结构化的日志数据插件
grok使用正则表达式把非结构化的数据结构化

转义可以用小括号:)
%{宏名称:自己的名称}
宏的路径:

三、在web-apache主机上安装filebeat
1 安装filebeat
2 修改filebeat.yml
路径:修改为apache访问的日志路径
ES 注释掉,改为logstash(有例子,将注释去掉并修改)
去掉注释:document_log : apache_log
[root@web-apache yum.repos.d]# grep -Pv ‘^\s*(#|$)’ /etc/filebeat/filebeat.yml
filebeat:
prospectors:

-
  paths:
    - /var/log/httpd/access_log

input_type: log

document_type: apache_log

registry_file: /var/lib/filebeat/registry
output:

  logstash:
    hosts: ["192.168.1.25:5044"]

shipper:
logging:
files:
rotateeverybytes: 10485760 # = 10MB

3修改logstash.conf,添加
[root@logstash bin]# vim /etc/logstash/logstash.conf
input{
stdin{ codec => “json” }

  beats{
    port => 5044
  }

file{

output{
stdout{ codec => “rubydebug” }

  if [type] == "apache_log"{
  elasticsearch{
   hosts => ["192.168.1.11:9200","192.168.1.12:9200"]
   index => "apache_log"
   flush_size => 2000
   idle_flush_time => 10
       }
  }

}
4 打开另一终端查看5044是否成功启动

[root@logstash ~]#  netstat -antup | grep 5044

5 浏览器访问Elasticsearch,有apachelog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值