Skip to content

Commit

Permalink
Wx new1 (#426)
Browse files Browse the repository at this point in the history
* correct Mac download url

* Fix typo and lint

* change to ordered list for readability

* lint
  • Loading branch information
wuxiangzhou2010 authored and wonderflow committed Apr 13, 2018
1 parent e4ceead commit d9cc675
Showing 1 changed file with 50 additions and 74 deletions.
124 changes: 50 additions & 74 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,40 @@

# logkit [![Build Status](https://api.travis-ci.org/qiniu/logkit.svg)](http://travis-ci.org/qiniu/logkit)

![logkit LOGO](https://raw.githubusercontent.com/qiniu/logkit/master/resources/logo.png)

## 简介

logkit是[七牛Pandora](https://pandora-docs.qiniu.com)开发的一个通用的日志收集工具,可以将不同数据源的数据方便的发送到[Pandora](https://pandora-docs.qiniu.com)进行数据分析,除了基本的数据发送功能,logkit还有容错、并发、监控、删除等功能。
logkit是[七牛Pandora](https://pandora-docs.qiniu.com)开发的一个通用的日志收集工具,可以将不同数据源的数据方便地发送到[Pandora](https://pandora-docs.qiniu.com)进行分析,除了基本的数据发送功能,logkit还有容错、并发、监控、删除等功能。

### logkit 详细的文档可以参见[WIKI](https://github.com/qiniu/logkit/wiki)页面


## 优势

* GO 语言编写,性能优良,资源消耗低,跨平台支持。

* Web 支持,提供 页面 对数据收集、解析、发送过程可视化

* 插件式架构,扩展性强,使用灵活,易于复用。

* 定制化能力强,可以仅使用部分 logkit 包,以此定制专属收集工具。

* 配置简单,易于上手,可通过 页面 进行操作管理。

* 原生中文支持,没有汉化烦恼。

* 功能全面,涵盖了包括 grok 解析、metric 收集、字段变化 (transform) 在内的多种开源软件特点。

* 生态全面,数据发送到七牛的 Pandora 大数据平台支持包括时序数据库、日志检索以及压缩永久存储等多种数据落地方案。

* 数据收集安全稳定,拥有磁盘队列、内存队列、错误重试、压缩传输、限速限流等多种机制,数据发送不重不漏。

* 集群化,可以通过一个logkit 作为master 在 web 管理众多logkit,对整体集群进行管理。


## 支持的数据源

1. [File](https://github.com/qiniu/logkit/wiki/File-Reader): 读取文件中的日志数据,包括csv格式的文件,kafka-rest日志文件,nginx日志文件等,并支持以grok的方式解析日志。
1. [Elasticsearch](https://github.com/qiniu/logkit/wiki/ElasticSearch-Reader): 读取ElasticSearch中的数据。
1. [MongoDB](https://github.com/qiniu/logkit/wiki/MongoDB-Reader): 读取MongoDB中的数据。
1. [MySQL](https://github.com/qiniu/logkit/wiki/MySQL-Reader): 读取MySQL中的数据。
1. [MicroSoft SQL Server](https://github.com/qiniu/logkit/wiki/MicroSoft-SQL-Server-Reader): 读取Microsoft SQL Server中的数据。
1. [Postgre SQL](https://github.com/qiniu/logkit/wiki/PostgreSQL-Reader): 读取 PostgreSQL 中的数据。
1. [Kafka](https://github.com/qiniu/logkit/wiki/Kafka-Reader): 读取Kafka中的数据。
1. [Redis](https://github.com/qiniu/logkit/wiki/Redis-Reader): 读取Redis中的数据。
1. [Socket](https://github.com/qiniu/logkit/wiki/Socket-Reader): 读取tcp\udp\unixsocket协议中的数据。
1. [Http](https://github.com/qiniu/logkit/wiki/Http-Reader): 作为 http 服务端,接受 POST 请求发送过来的数据。
1. [Script](https://github.com/qiniu/logkit/wiki/Script-Reader): 支持执行脚本,并获得执行结果中的数据。
1. [Snmp](https://github.com/qiniu/logkit/wiki/Snmp-Reader): 主动抓取 Snmp 服务中的数据。

* [File](https://github.com/qiniu/logkit/wiki/File-Reader): 读取文件中的日志数据,包括csv格式的文件,kafka-rest日志文件,nginx日志文件等,并支持以grok的方式解析日志。
* [Elasticsearch](https://github.com/qiniu/logkit/wiki/ElasticSearch-Reader): 读取ElasticSearch中的数据。
* [MongoDB](https://github.com/qiniu/logkit/wiki/MongoDB-Reader): 读取MongoDB中的数据。
* [MySQL](https://github.com/qiniu/logkit/wiki/MySQL-Reader): 读取MySQL中的数据。
* [MicroSoft SQL Server](https://github.com/qiniu/logkit/wiki/MicroSoft-SQL-Server-Reader): 读取Microsoft SQL Server中的数据。
* [Postgre SQL](https://github.com/qiniu/logkit/wiki/PostgreSQL-Reader): 读取 PostgreSQL 中的数据。
* [Kafka](https://github.com/qiniu/logkit/wiki/Kafka-Reader): 读取Kafka中的数据。
* [Redis](https://github.com/qiniu/logkit/wiki/Redis-Reader): 读取Redis中的数据。
* [Socket](https://github.com/qiniu/logkit/wiki/Socket-Reader): 读取tcp\udp\unixsocket协议中的数据。
* [Http](https://github.com/qiniu/logkit/wiki/Http-Reader): 作为 http 服务端,接受 POST 请求发送过来的数据。
* [Script](https://github.com/qiniu/logkit/wiki/Script-Reader): 支持执行脚本,并获得执行结果中的数据。
* [Snmp](https://github.com/qiniu/logkit/wiki/Snmp-Reader): 主动抓取 Snmp 服务中的数据。

## 工作方式

Expand All @@ -57,7 +44,7 @@ logkit本身支持多种数据源,并且可以同时发送多个数据源的

## 参与项目(contributing)

我们非常欢迎您参与到项目中来,你可以通过以下途径参与到项目中来
我们非常欢迎您参与到项目中来,您可以通过以下途径参与到项目中来

* 修复或者[报告bug](https://github.com/qiniu/logkit/issues/new)
* [提issue](https://github.com/qiniu/logkit/issues/new)改善我们的[wiki文档](https://github.com/qiniu/logkit/wiki)
Expand All @@ -72,75 +59,66 @@ logkit本身支持多种数据源,并且可以同时发送多个数据源的

**历史版本**:请移步至[Releases](https://github.com/qiniu/logkit/releases)

**体验版**:master 分支每天5点会定时构建最新的logkit体验版(仅限linux 64位以及docker),需要使用的用户可以下载(注意,体验版不含前端的构建更新)。

**体验版**:master 分支每天早上5点会定时构建最新的logkit体验版(仅限Linux 64位以及Docker),需要使用的用户可以下载(注意,体验版不含前端的构建更新)。

[linux 64位版本下载](https://pandora-dl.qiniu.com/nightly/logkit_nightly.tar.gz)

[Docker image nightly]: `docker pull wonderflow/logkit:nightly`
* [Linux 64位每日版本下载](https://pandora-dl.qiniu.com/nightly/logkit_nightly.tar.gz)

* Docker image nightly: `docker pull wonderflow/logkit:nightly`

## 安装与使用

### 1. 下载&解压logkit工具

1. 下载&解压logkit工具

**Linux 版本**
* Linux 版本

```
``` sh
export LOGKIT_VERSION=<version number>
wget https://pandora-dl.qiniu.com/logkit_${LOGKIT_VERSION}.tar.gz && tar xvf logkit_${LOGKIT_VERSION}.tar.gz && rm logkit_${LOGKIT_VERSION}.tar.gz && cd _package_linux64/
```

**MacOS 版本**
* MacOS 版本

```
``` sh
export LOGKIT_VERSION=<version number>
wget https://pandora-dl.qiniu.com/logkit_${LOGKIT_VERSION}.tar.gz && tar xvf logkit_${LOGKIT_VERSION}.tar.gz && rm logkit_${LOGKIT_VERSION}.tar.gz && cd _package_mac/
wget https://pandora-dl.qiniu.com/logkit_mac_${LOGKIT_VERSION}.tar.gz && tar xvf logkit_mac_${LOGKIT_VERSION}.tar.gz && rm logkit_mac_${LOGKIT_VERSION}.tar.gz && cd _package_mac/
```

**Windows 版本**
* Windows 版本

请下载 `https://pandora-dl.qiniu.com/logkit_windows_<LOGKIT_VERSION>.zip` 并解压缩,进入目录

2. 修改logkit基本配置

```
打开 logkit.conf
```
### 2. 修改logkit基本配置

logkit.conf是logkit工具基础配置文件,主要用于指定logkit运行时需要的资源和各个runner配置文件的具体路径。

打开 `logkit.conf`, 典型的配置如下:

典型的配置如下:


```
``` json
{
"max_procs": 8,
"debug_level": 1,
"clean_self_log":true,
"bind_host":"localhost:3000",
"static_root_path":"./public",
"confs_path": ["confs*"]
"max_procs": 8,
"debug_level": 1,
"clean_self_log":true,
"bind_host":"localhost:3000",
"static_root_path":"./public",
"confs_path": ["confs*"]
}
```

初步使用,你只需要关注并根据实际需要修改其中三个选项
初步使用,您只需要关注并根据实际需要修改其中三个选项

1. `bind_host` logkit页面绑定的端口后,启动后可以根据这个页面配置logkit。
1. `bind_host` logkit页面绑定的端口号,启动后可以根据这个页面配置logkit。
1. `static_root_path` logkit页面的静态资源路径,**强烈建议写成绝对路径** 注意:老版本的移动到了 "public-old"文件夹。
1. `confs_path` 除了通过页面配置添加以外,logkit还支持直接监控文件夹添加runner。(如果你只通过页面添加logkit runner,那么无需修改此配置)
列表中的每一项都是一个runner的配置文件夹,如果每一项中文件夹下配置发生增加、减少或者变更,logkit会相应的增加、减少或者变更runner,配置文件夹中的每个配置文件都代表了一个runner。该指定了一个runner的配置文件夹,这个配置文件夹下面每个以.conf结尾的文件就代表了一个运行的runner,也就代表了一个logkit正在运行的推送数据的线程。
1. `confs_path` 除了通过页面配置添加以外,logkit还支持直接监控文件夹添加runner。(如果您只通过页面添加logkit runner,那么无需修改此配置)

列表中的每一项都是一个runner的配置文件夹,如果每一项中文件夹下配置发生增加、减少或者变更,logkit会相应的增加、减少或者变更runner,配置文件夹中的每个配置文件都代表了一个runner。该指定了一个runner的配置文件夹,这个配置文件夹下面每个以.conf结尾的文件就代表了一个运行的runner,也就代表了一个logkit正在运行的推送数据的线程。

3. 启动logkit工具
### 3. 启动logkit工具

```
``` sh
./logkit -f logkit.conf
```

4. 通过浏览器打开logkit配置页面
### 4. 通过浏览器打开logkit配置页面

浏览器访问的地址就是您在第2步中填写的 `bind_host` 选项地址

Expand All @@ -156,13 +134,13 @@ logkit.conf是logkit工具基础配置文件,主要用于指定logkit运行时

![尝试解析](https://raw.githubusercontent.com/qiniu/logkit/master/resources/logkitnewconfig3.png)

* 除了解析以外,您可以可以针对解析出来的某个字段内容做数据变换(Transform),可以像管道一样多个拼接。
* 除了解析以外,您可以针对解析出来的某个字段内容做数据变换(Transform),可以像管道一样多个拼接。

* 填写必要信息以配置数据发送

![发送](https://raw.githubusercontent.com/qiniu/logkit/master/resources/logkitnewconfig5.png)

* 最后在确认并添加页面点击生成配置文件,再点击添加Runner即可生效
* 最后在`确认并添加`页面点击生成配置文件,再点击添加Runner即可生效

![添加runner](https://raw.githubusercontent.com/qiniu/logkit/master/resources/logkitnewconfig4.png)

Expand All @@ -185,14 +163,14 @@ logkit.conf是logkit工具基础配置文件,主要用于指定logkit运行时

启动服务的命令中可以指定服务的启动配置

```
``` sh
go build -o logkit logkit.go
./logkit -f logkit.conf
```

## 使用logkit的docker镜像启动

```
``` sh
docker pull wonderflow/logkit:<version>
docker run -d -p 3000:3000 -v /local/logkit/dataconf:/app/confs -v /local/log/path:/logs/path logkit:<version>
```
Expand All @@ -205,15 +183,15 @@ docker run -d -p 3000:3000 -v /local/logkit/dataconf:/app/confs -v /local/log/pa

获取部署到Kubernetes的配置文件。

```
``` sh
curl -L -O https://raw.githubusercontent.com/qiniu/logkit/master/deploy/logkit_on_k8s.yaml
```

默认情况下,我们的配置文件会使用 `kube-system` 这个 Kubernetes 的 namespace ,所有的部署仅针对该 namespace 生效。如果你想要使用别的 namespace ,只需要修改配置文件的 namespace 部分,将之改为你的 namespace 名称。
默认情况下,我们的配置文件会使用 `kube-system` 这个 Kubernetes 的 namespace ,所有的部署仅针对该 namespace 生效。如果您想要使用别的 namespace ,只需要修改配置文件的 namespace 部分,将之改为您的 namespace 名称。

运行这份默认的配置文件之前,只需要修改2个基本参数:
```

``` yml
- name: QINIU_ACCESS_KEY
value: change_me_to_your_qiniu_access_key
- name: QINIU_SECRET_KEY
Expand All @@ -224,12 +202,10 @@ curl -L -O https://raw.githubusercontent.com/qiniu/logkit/master/deploy/logkit_o

执行 Kubernetes 命令,启动:

```
``` sh
kubectl create -f logkit_on_k8s.yaml
```

然后日志就会源源不断流向你的pandora账号啦
然后日志就会源源不断流向您的pandora账号啦

enjoy it!


0 comments on commit d9cc675

Please sign in to comment.