CloudFoundryからsyslog転送でログを外部へ飛ばす方法

投稿者: | 2018年11月5日

CloudFoundry(以下CFと略す)にデプロイしたアプリケーションのログをsyslog転送するにはsyslogサービスをバインドすることで簡単に設定することができます。
syslogサービスのバインドは下記のコマンドで簡単に行なえます。

$ cf create-user-provided-service サービス名 -l syslogサーバのURL
$ cf bind-service アプリケーション名 サービス名

試しに下記のgithubに上がっているlog4jを出力するデモアプリでsyslog転送を行なってみます。
https://github.com/callicoder/spring-boot-log4j-2-demo

ますはビルドしてjarファイルを作成します。

$ wget https://github.com/callicoder/spring-boot-log4j-2-demo/archive/master.zip
$ unzip master.zip
$ cd spring-boot-log4j-2-demo-master
$ mvn package

続いてcfをpushするための設定を行ないます。

$ vi manifest.yml
application:
- name: demo
  path: target/log4j2-demo-0.0.1-SNAPSHOT.jar

アプリケーションをデプロイします。

$ cf push -b https://github.com/cloudfoundry/java-buildpack.git

続いてsyslogのサービスを作成し、デプロイしたアプリケーションにバインドします。

$ cf create-user-provided-service syslog-service -l syslog://XXX.XXX.XXX.XXX:51000
$ cf bind-service demo syslog-service
$ cf restage demo

これでCFにデプロイしたアプリケーションがsyslog転送されます。
なお、今回はlogstashサーバにsyslog転送しそこからDatadogにログを連携するようにしました。

ちなみにCF→DatadogはDatadogのbuildpackを使用してログの転送ができますがあまりカスタマイズ(タグの追加等)ができないためlogstashを経由することにしました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA