fluentd自身のログのカウントをdatadogに送る

ログを集めるのにfluentdをよく使っているのだが,fluentd自身も実はログを吐いており,それをfluentdでハンドリングできる.できるというか,何もケアしてやらないと

2020-06-17 03:41:01 +0000 [warn]: #0 no patterns matched tag="fluent.warn"

みたいなログが出ることになる.

もちろん受け取ったログのmatch節がなければこうなるのはわかるのだが,fluent自身のログでもこれがでるので,何かしらハンドリングしてやる必要がある.

ログの内容はS3とかに送ればいいとして,とりあえず件数だけモニタリングしてアラートを飛ばしたいなと思った.

続きを読む

DaemonSetで立ち上げたDatadogにカスタムメトリクスを送りつける

helmでDatadogを入れることが多いんだけど,これで立ち上がるDogStatsDにアプリケーションからカスタムメトリクスを送りたいことがある.

https://github.com/helm/charts/tree/73e2adc5d2250d02cb02ef4602b7eeda05e6aaf4/stable/datadog

現状のdatadogのchartでは,datadog/dogstatsd のdocker imageを立ち上げている場所はないが,datadog/agent は各所で起動してくれる.agentはdogstatsdを内包しているので,agentであっても,dogstatsd用のUDPポートがあいていればdogstatsdとして利用可能だ. このchart内の

https://github.com/helm/charts/blob/73e2adc5d2250d02cb02ef4602b7eeda05e6aaf4/stable/datadog/templates/container-agent.yaml

このtemplateでは, DD_DOGSTATSD_PORT が設定されており,dogstatsdが利用できる.このcluster-agent.yaml

https://github.com/helm/charts/blob/73e2adc5d2/stable/datadog/templates/daemonset.yaml#L63

ここで参照されているため,daemonsetで起動するDatadogのプロセスはdogstatsdとして利用可能だ.

つまり,DaemonSetで起動したDatadogのPodに,アプリケーションからUDPでメトリクスを送りつけることができれば良い.

続きを読む

kopsで構築したKubernetesクラスタでIRSAを使う

IAM Role for Service Account(IRSA)自体はEKS以外でも利用可能ということだったので,自前のkopsクラスタで構築してみた. ほぼ,こちらのお世話になっている.

blog.hatappi.me

ほぼ同じことをしているのだが,いかんせん複雑なので自分用の記録として残しておく.

続きを読む

ArgoCDをAWS EKS上で構築する

GitOpsがやりたくてArgoCDを導入しようと思ったんだけど,そもそもArgoCD自体はみんなどこで動かしてるんです?

もちろんin clusterでも動くので,デプロイ対象のアプリケーションが乗っているKubernetesクラスタに構築しようと思いました.

が,ArgoCDのチュートリアルを試すという意味では,みんなport-forwardを使う例が多くて(確かに圧倒的に楽なんだけど),本番で使うことを前提に構築している例があまり見当たらない. ので,AWS EKS上に,外部(といっても社内とか)からアクセスできるArgoCDを,helmを使って構築する例を書き残しておく.

続きを読む

AWS KMSで暗号化したSecretsをそのままapplyしたい!

KubernetesでGitOpsを実践しようと思うときに,Secretsをどうするかという問題は結構大きい.GitOpsをしていなかったとしても,Kubernetesyamlファイルをgitにコミットしようと思うとき,Secretsをどうするかというのは結構大きな問題ではないだろうか. PrivateRepositoryであれば,そこまで危なくはない.けれどパスワードとかクレデンシャルとかを,base64エンコードしただけの平文でコミットしたくはない.

となると何かしらの方法で暗号化してコミットしたくなる. どうせ普段AWSを触ることが多いのだし,AWS KMSでSecretsを暗号化したら良くない?それ自体はいろいろOSSがあるのだし.

そして, KMSで暗号化したSecretsをそのままapplyできたら良くない?

と思ったので作りました.

github.com

続きを読む