Mtailなどを使い、nginxを完璧に監視する

やりたいこと k8s上にechoサーバを分散させる プロキシサーバ (nginx) を立てて、そいつらに負荷分散できるようにする Mtailを使って、nginxのログを収集して、prometheus形式に変換、telegrafで取得しinflux Dbに送信 (このときにタグもつけたいかも) Cloudproberでnginxを監視したい。cloudprober -> prometheusに変換 -> telegrafで取得しinflux DBに送信(タグもつけたいかもしれない) 以上を全てansibleを使って実現したいという話だよね。厳しいかな。どうかな?? 正直k8sは必須ではない。時間がかかりそうであれば、先にgoとかで簡単なecho-serverを作って1を完了させてしまうのも全然あり。 今回の目的はあくまでnginxのモニタリングをガチガチにするってことだからね。でも、k8sの監視はちょっとしてみたいかもしれないね。 最初からprometheus形式でexportしてくれるみたいだからね。気になるところではあります。 ただ、k8sはその性質上、コンテナをデプロイするから、どこからコンテナを取ってくるかを決める必要がありますね。外部に漏らしたくない情報が入っているのであればprivateリポジトリを立てるしかない。そうでなければdocker hubでいいかな。

October 18, 2024 · 1 min · 20 words · Me

Telegraf + InfluxDBでシステムモニタリング

参考文献 Telegraf grafana prometheus 最終成果物 influx_dbのダッシュボード 背景 業務でnginxの運用に携わっているのだが、nginxのrpsやレスポンスステータスごとの返却数など、どうやってモニタリングしているのか気になっていた。telegrafを使っていたのはわかったんだけど、実際にどうやってデータを取って、それをどうやってデータサーバで保存して、可視化をしていたのか、非常に気になっていたのです。それが今日解決しました。Telegraf、grafana、そして、prometheus,結構使えそうです。この記事では、メトリクスを可視化するためのツールを揃えていこうと思います。 Telegrafの概要 Telegraf is an agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data. 他にもTelegrafこういう感じのTelegrafの説明もあります。僕はこっちの方が好きだった Telegraf, a server-based agent, collects and sends metrics and events from databases, systems, and IoT sensors. Written in Go, Telegraf compiles into a single binary with no external dependencies–requiring very minimal memory. らしいですね。 collecting and writingなので、データをどこからか取ってきて、どこかに送るというわけです。そうです、inputとoutputを決められるわけですね。それも膨大な数のInputとoutputがあります。正直これは驚きました。こんなにあるんかとね。すごいです。ちょっと使えそうなinputとoutputを何個かpickupしておきたいと思います。 input Apache Input Plugin BIND 9 Nameserver Statistics Input Plugin Ceph Storage Input Plugin CGroup Input Plugin Conntrack Input Plugin CouchDB Input Plugin CPU Input Plugin Disk Input Plugin DNS Query Input Plugin Docker Input Plugin Kernel Input Plugin Kubernetes Input Plugin Lustre Input Plugin MySQL Input Plugin Nginx Input Plugin って感じで本当になんでもある。これはえぐい。 16. nvidia-smi 17. postgres 18. proxmox 19. prometheus ...

August 1, 2024 · 7 min · 1380 words · Me