kibana 部署、Logstash概述 、Logstash插件使用

kibana 部署、Logstash概述 、Logstash插件使用

1.1.1 什么是kibana

kibana是一款数据可视化的工具

1.1.2 kibana特点

1.灵活的分析和可视化平台
2.实时总结和流数据的图表
3. 为不同的用户显示直观的界面
4. 即时分享和嵌入的仪表板

1.安装kibana

~] # rpm –ivh kibana-4.5.2-1.x86_64.rpm

2. 修改配置文件

~] # vim /opt/kibana/config/kibana.yml

server.port: 5601
server.host: “0.0.0.0”
elasticsearch.url: “http://es1:9200”    //只需要改这一行就可以了,指定elasticsearch集群中任意一台机器地址就可以了
kibana.index: “.kibana”
kibana.defaultAppId: “discover”
elasticsearch.pingTimeout: 1500
elasticsearch.requestTimeout: 30000
elasticsearch.startupTimeout: 5000

3.启动服务

~] # systemctl start kibana

4.测试kibana服务

~]# ss -antulp | grep 5601

http://192.168.5.16:5601/              //浏览器访问kibana主页

1.3.1 使用 _bulk 批量导入数据

批量导入数据使用 POST 方式,数据格式为 json,url编码使用 data-binary

1.4 数据批量查询

1.4.1 数据批量查询使用 GET

curl -XGET http://192.168.5.12:9200/_mget?pretty -d ‘
{
  docs:[
    {“_index”: “oo”,
     “_type”: “xx”,
     “_id”: 99
    },
   {
    “_index”: “accounts”,
    “_type:”: “act”,
    “_id”: 2
   },
  {
  “_index”: “shakespeare”,
  “_type:”: “scene”,
  “_id”: 1
 }
 ]
}’

修改 kibana 的配置文件后启动 kibana,然后查看
ES 集群,如果出现 .kibana Index 表示 kibana 与
ES 集群连接成功

 logstash是一个数据采集、加工处理以及传输的工具

 | 数据源 | —>| INPUT | –>| FILTER | –> | OUTPUT | —> | ES 集群 | –>| KIBANA |

1. Logstash 依赖 java 环境,需要安装 java-1.8.0-openjdk,再安装logstash软件包

]# yum -y install java-1.8.0-openjdk

]# rpm -ivh logstash-2.3.4-1.noarch.rpm

2.Logstash默认没有配置文件,需要手动写一个logstash.conf

] # vim  /etc/logstash/logstash.conf

3.启动服务并验证

]#  logstash -f  logstash.conf

直接在启动终端输入就JSON数据{“name”:”zhang”,”sex”:”boy”}

就会输出rubydebug编码的数据

2.4.1 input file 插件

file {
    path => [“/tmp/a.log”]
    sincedb_path => “/var/log/logstash/sincedb.log”
    #sincedb_path => “/dev/null”
    start_position => “beginning”
    type => “logstash1_file_log”
    }

如果不是第一次接触sincedb.log文件,应该先删除sincedb.log。 start_position => “beginning”选项才会生效

2.4.2  TCP/UDP插件

~] # vim /etc/logstash/logstash.conf

tcp{
host => “0.0.0.0”
port => 8888
type => “tcplog”
}
udp{
host => “192.168.4.16”
port => 9999
type => “udplog”
}

]# echo “test udp log” >/dev/udp/192.168.5.17/6666

]# echo “test udp log” >/dev/udp/192.168.1.20/8888

2.4.3 syslog 插件

~] # vim /etc/logstash/logstash.conf

input {
  … …
  syslog {
    port => 514
    type => “syslog”
  }
}

1.客户机配置 @@(tcp)  @(udp)
local0.info                     @@192.168.1.20:514   //写要发送日志到服务器的地址
2.测试配置
logger -p local0.info -t “testlog” “hello world”

2.4.4 filter grok插件

1. filter grok插件的作用

1.1 解析各种非结构化的日志数据插件
1.2 grok 使用正则表达式把非结构化的数据结构化
1.3 在分组匹配,正则表达式需要根据具体数据结构编写
1.4 虽然编写困难,但适用性极广, 几乎可以应用于各类数据

2. 正则表达式分组匹配 (?

reg)

2.2 使用logstash的COMBINEDAPACHELOG模板匹配http日志信息,并给对应字段赋值

~] # /etc/logstash/logstash.conf

filter{
  grok{
    match => [“message”, “%{COMBINEDAPACHELOG}”]
  }
}

3.匹配后结果如下:

 

2.4.5 filebeats 插件

1.修改logstash beats 配置

~] # /etc/logstash/logstash.conf

Grok 教程

input{
  … …
  beats{
    port => 5044     //这个端口是用来接收客户端filebeat软件发送日志的
  }
}

2.filebeat软件可以帮我们把客户端的日志信息传给指定的logstash服务器,所以需要在客户端安装filebeat

~ ] #yum -y install filebeat

3.修改filebeat.yml配置文件

4.启动filebeat服务验证

~ ] #systemctl start filebeat

~ ] #  curl 0.0.0.0    //访问本机的http服务,就会有日志写入/var/log/httpd/access_log文件,日志文件里面的数据就会

传送给远程的logstash进行filter的grok插件进行处理,这个步骤就可以实现客户端的日志文件动态传给logstash

2.4.6 output elasticsearch 插件

1.修改logstash.conf配置文件

~] # /etc/logstash/logstash.conf

output{
  stdout{ codec => “rubydebug” }
  if [type] == “apachelog”{
  elasticsearch {                                              //logstash将处理之后的信息传给kibana
    hosts => [“192.168.1.11:9200”, “192.168.1.12:9200”]
    index => “weblog”
    flush_size => 2000
    idle_flush_time => 10
  }}
}

2.访问http://192.168.5.16:5601 kibana主页进行数据查看

附:logstash日志处理的主配置文件:logstash.conf

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/246251.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月15日 下午6:50
下一篇 2026年3月15日 下午6:51


相关推荐

关注全栈程序员社区公众号