首页 关于 归档

elk初次使用

why

日志统一管理查看,更方便更安全。
(比如:省去跟运维申请服务器权限,提高安全;可视化查看日志,更直接了当等等)

简述

ELK(Elasticsearch + Logstash + Kibana)
日志管理系统的开源方案,是开源软件的集合。
Elasticsearch:搜索,提供分布式全文搜索引擎
Logstash: 日志收集,管理,存储
Kibana :日志的过滤web 展示

下载

elasticsearch-5.0.1
logstash-5.0.1
kibana-5.0.1-linux-x86_64
//具体地址省略,可以查看https://www.elastic.co/products

配置

#修改kibana-5.0.1-linux-x86_64/config/kibana.yml
内容如下:
server.port: 8080
#当然,你也可以选择只监听内网ip地址
server.host: "0.0.0.0"

#创建文件logstash-5.0.1/config/logstash-udp.conf
内容如下:
input {
   udp {
    port => 55551
    type => weblog
    codec => json
   }
   udp {
    port => 55552
    type => serverlog
    codec => json
   }
   udp {
    port => 55553
    type => applog
    codec => json
   }
   udp {
    port => 55554
    type => crontablog
    codec => json
   }
}
output {
   elasticsearch {hosts => "localhost" }
   stdout { codec=> rubydebug }
}

创建启动脚本

#新增start.sh启动脚本
内容如下:
#!/bin/bash
nohup /data/kibana-5.0.1-linux-x86_64/bin/kibana > /data/kibana.log 2>&1 &
nohup /data/elasticsearch-5.0.1/bin/elasticsearch > /data/es.log 2>&1 &
nohup /data/logstash-5.0.1/bin/logstash -f /data/logstash-5.0.1/config/logstash-udp.conf > /data/ls.log 2>&1 &

启动

➜ chmod +x start.sh 
➜ ./start.sh

查看

# 查看udp端口是否启动
➜ netstat -au
# 查看java进程
➜ ps aux | grep java

使用

//php使用例子
//发送udp包即可
//具体数据格式可以自定义字段及查看必要字段
$data = array(
'message' => 'sdfsdf',
'@type' => 'applog',
........
);
$socket = @socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
//端口复用
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR,1);
$content = json_encode($data, true);
@socket_sendto($socket, $content, strlen($content), 0, logstash-udp-IP地址, logstash-udp端口);

其他

参考手册 http://kibana.logstash.es/content/

Author: josephzeng

Date: <2016-12-13 Tue>

Generated by Emacs 24.5.1 (Org mode 8.2.10)

Last Updated 2016-12-13 Tue 23:24

Validate