Fluentdバッファ(2)-Gin実装とFluentd接続のテスト


こんにちは!
私はカルビ餃子が好きな開発者の任太彬です.
Fluentdバッファのテスト(1)-Ginを使用してWebサーバを作成し、Fluentdと組み合わせて使用します.
△最初のポスターを見なかったら、リンクで見てください.
まずginをインストールするには、次のコードを入力します.
go get -u github.com/gin-gonic/gin
インストールが完了したら、簡単にGetMappingを行いましょう.
package main

import (
	"github.com/gin-gonic/gin"
	"log"
	"net/http"
)

func getting(c *gin.Context) {
	log.Println("testtest")
	c.String(http.StatusOK, "hello world")
}

func main() {
	//gin 선언하기
	router := gin.Default()
    //Get Mapping
	router.GET("/", getting)
	//서버 실행
    router.Run()
}
上記のコードを実行してlocalhost:8080にアクセスすると、helloworldが表示されます.
ginを使用したWebサーバを実現し、次に一貫した操作を行います.
まずモジュールをインストールし、Fluentdにログを送信します.
go get github.com/fluent/fluent-logger-golang/fluent
上記コマンドでインストール可能:)
ginで作成したコードに追加します.
package main

import (
	"github.com/fluent/fluent-logger-golang/fluent"
	"github.com/gin-gonic/gin"
	"net/http"
)

var logError error
var logger *fluent.Fluent

func init() {
	logger, logError = fluent.New(fluent.Config{FluentNetwork: "tcp"})
	if logError != nil {
		panic(logError.Error())
	}
}

func getting(c *gin.Context) {
	tag := "myapp.log"
	var data = map[string]string{
		"foo":  "bar",
		"hoge": "hoge",
	}
	logger.Post(tag, data)
	c.String(http.StatusOK, "hello world")
}

func main() {
	//gin 선언하기
	router := gin.Default()
	//Get Mapping
	router.GET("/", getting)
	//서버 실행
	router.Run()
}
ginがやるべき部分はもう全部やった
コードについて簡単に説明します.loggerとlogErrorを完全な変数として宣言し、init関数を使用してサーバの実行前にfluentd log設定を行います.
FluentNetworkdオプションで「tcp」を設定し、Fluentdの入力pluginの1つであるforwardを使用します.次にtag値とdataを作成してfluentdに値を送信します.
次に、このロケーションの最後の部分Fluentdのdockerイメージを作成します.
全部で2種類あります.
Dockerfileはfluentdを実行するためのconfファイルとDockerイメージを作成します.
まず、fluentdを実行するためにconfファイルを作成します.
試験があるconfというファイルを作成します.
# vi test.conf
<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>
<match *.log>
  @type stdout
</match>
test.confファイルのコードを簡単に説明します.forwardというinput pluginを使用してデータを受信し、stdoutというplugin出力値を使用できます.
FROM tae2089/ubuntu:1.1
WORKDIR /home/ubuntu
USER ubuntu
COPY test.conf /home/ubuntu
RUN sudo apt-get update -y
RUN sudo apt-get install -y git vim patch make bzip2 autoconf automake libtool bison curl ruby-full
RUN sudo gem install bundler
RUN sudo gem install fluentd
上記の内容を使用してDockerfileを作成すればよい.ここでテストconfファイルとDockerfileの場所は同じ線上にある必要があります.
docker build . -t fluentd_test
docker run -it -d --rm --name fluentd_gin -p 24224:24224 fluentd_test:latest
docker exec -it agitated_elgamal sh -c "fluentd -c test.conf"
上記のコマンドを順番に実行するとfluentdが実行されます.最後に確認する必要があるのは入力した値です.postmanを使用するか、ブラウザにlocalhost:8080を直接入力してアクセスできます.
あなたがよく実行していると思っていればいいです.

これがGin Webサーバの実装と一貫性です~~
次のプレゼンテーションでは、FluentdとFluentdの連動とバッファテストの最初のケースを行います.