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

Master_ansible

背景 業務で必要なansibleをマスターしたい。 ansibleとは ansibleとは、Infrastructure as Codeを実現するための構成管理ツールである。 例えば、middlewareをデプロイする際に、ある程度の複雑さでのデプロイを可能にするツールである。 ansibleの特徴 可読性を意識した設定ファイル 柔軟性がないとも言える 豊富なモジュール群 これは柔軟性の高い(=可読性が低い)ことの裏返しだと思う 冪等性の担保 何度ファイルを実行しても、対象の結果は変わらない agentlessなツール ローカルホストで実行し、sshで各サーバにログインして設定をする。構成管理をしたいサーバに別途ソフトを導入する必要などはない。 用途が似たツールにterraformがある。それとの違いに関してはまた今度としよう。 ansibleのアーキテクチャ ansiblでは、コマンドを実行する「コントロールノード」と処理の対象となる「ターゲットノード」に分かれる。設定ファイルに書かれたモジュールをコントロールノード側でPythonのコードに変換し、sftpでターゲットノードに転送し、そこでPythonコードを実行する流れになっている。そのため、コントロールノード、ターゲットノードのどちらにもPythonがインストールされている必要がある。 ansibleの用語 インベントリ:ターゲットノードの一覧が書かれた設定ファイルである。ターゲットノードをグループ化することも可能である。 プレイブック:実行するモジュールが書かれた設定ファイルである。 モジュール:「ファイルの転送」や「サービスの起動、停止」などの処理の単位。Ansible側で用意されたモジュールを使って構成管理をする。(では、逆にansibleのモジュールにない設定を反映させたい場合にはどうするのか?ーー>自分でモジュールを開発することもできる) プラグイン:Ansibleの基本機能を拡張してくれる。モジュールはタスクとして実行されるが、プラグインは、Ansible コアを拡張してくれる感じです。 コレクション: ansibleのインストール方法 apt install ansible-core インストールを確認 ray@delta:~$ ansible-playbook --version ansible-playbook [core 2.12.0] config file = None configured module search path = ['/home/ray/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3/dist-packages/ansible ansible collection location = /home/ray/.ansible/collections:/usr/share/ansible/collections executable location = /usr/bin/ansible-playbook python version = 3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0] jinja version = 3.0.3 libyaml = True 設定ファイル ~/.ansible/ansible.cfg配下におくといいです。このファイルに以下の設定を書き込みましょう ...

August 4, 2024 · 1 min · 194 words · Me

KVM_server_and_ansible

何の記事か LinuxサーバでKVMを使った仮想マシン (VM)を立てられるようにし、 KIMCH を使い、webコンソールからVMを立てられるようにし、さらにansibleでVMにインフラのデプロイ、そしてネットワークなどをいじる記事 雑談 はい、完全に分離された自宅ネットワークでしたが、openVPNを使ったsite2site接続により、外からアクセスできるようになってしまった。これがマジで恐ろしい話や。 再びコンピュータを勉強する気力がわいてきたって話だ。頑張るぞい。 dkong上で動かそうと思う。自宅ネットワークでのdkongのipアドレスは 100.64.1.70や。VPNを使えばいつでもアクセスが可能になる。さらにインターネット上のhugo_serverのnginxでvpnをとおしてプロキシすることもできるので、実質インターネットに接しているdkongってわけだ。ネットワークえぐい。 インストール手順 基本的にはKIMCHここに書いてある通りに進めれば問題ない。 1. Wokのインストール Wokとは Wokのリポジトリをクローン git clone https://github.com/kimchi-project/wok.git wok依存ライブラリやランタイムなどをインストール sudo apt install -y python3-pip sudo -H pip3 install -r requirements-dev.txt sudo apt install -y gcc make autoconf automake git python3-pip python3-requests python3-mock gettext pkgconf xsltproc python3-dev pep8 pyflakes3 python3-yaml sudo apt install -y systemd logrotate python3-psutil python3-ldap python3-lxml python3-websockify python3-jsonschema openssl nginx python3-cherrypy3 python3-cheetah python3-pam python3-m2crypto gettext python3-openssl Wokをビルド and install sudo ./autogen.sh --system make wokを起動 sudo python3 src/wokd wokにブラウザでアクセス https://100.64.1.70:8001/login.html 初期パスワードを入力してログイン これ、ログインクレデンシャル、システムのとおんなじなのがすごい。びっくり! ...

July 6, 2024 · 1 min · 91 words · Me