メールアラートによるディスク自動クリーンアップ - サーバーログクイーン作業フロー

中級

これはDevOps分野の自動化ワークフローで、8個のノードを含みます。主にSet, Ssh, Code, EmailReadImapなどのノードを使用。 SSHとメールアラートを使ってNginx、Docker、そしてシステムログを自動のにクリーンアップ

前提条件
  • 特別な前提条件なし、インポートしてすぐに使用可能

カテゴリー

ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "4Y5VQwUUo7uqPPL1",
  "meta": {
    "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
    "templateCredsSetupCompleted": true
  },
  "name": "Auto Disk Cleanup via Email Alert – Server Log Purge Workflow",
  "tags": [],
  "nodes": [
    {
      "id": "8c1aac94-9e6a-4b14-a177-3a00644ea232",
      "name": "ディスクアラートメールの確認",
      "type": "n8n-nodes-base.emailReadImap",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {
          "customEmailConfig": "[\"UNSEEN\", [\"SUBJECT\", \"disk\"]]"
        }
      },
      "credentials": {
        "imap": {
          "id": "D3nLrSlP1dHWcIDE",
          "name": "IMAP account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "025c2c15-f693-4b53-8433-4d641526d11a",
      "name": "メールからのサーバーIP抽出",
      "type": "n8n-nodes-base.code",
      "position": [
        220,
        0
      ],
      "parameters": {
        "jsCode": "const subject = $input.first().json.subject;\n\nif (subject && (subject.toLowerCase().includes(\"disk-utilization\") || subject.toLowerCase().includes(\"disk utilization\"))) {\n  const ipMatch = subject.match(/(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}):9100/);\n  const server_ip = ipMatch ? ipMatch[1] : '';\n  return [{ json: { server_ip } }];\n} else {\n  // Stop workflow if subject doesn't match\n  return [];\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "723c7067-fe88-4b8b-b1ff-38c9eb662641",
      "name": "SSH変数の準備",
      "type": "n8n-nodes-base.set",
      "position": [
        440,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "49c16fb1-4b84-46a7-bb50-5e1fa7f59664",
              "name": "pwd",
              "type": "string",
              "value": "password"
            },
            {
              "id": "c16557bd-7ef6-4049-a634-a5b207a92fd6",
              "name": "server_user",
              "type": "string",
              "value": "user"
            },
            {
              "id": "fd8c4253-8ab2-4094-9a72-78ef782d89d3",
              "name": "server_ip",
              "type": "string",
              "value": "={{ $input.first().json.server_ip }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7ef2b2b6-5880-4fc1-93fa-b76c3c75effa",
      "name": "SSH経由でのログクリーンアップコマンド実行",
      "type": "n8n-nodes-base.ssh",
      "position": [
        660,
        0
      ],
      "parameters": {
        "command": "=echo '{{ $json.pwd }}' | sudo -S su - jenkins -c \"ssh {{ $json.server_user }}@{{ $json.server_ip }} 'sudo rm -rf /var/log/*.gz && sudo rm -rf /var/log/*.1 && sudo rm -rf /var/log/nginx/*.log && sudo rm -rf /var/log/apache2/*.log && sudo journalctl --vacuum-size=200M && sudo apt-get clean && sudo apt-get autoclean && docker builder prune -af && docker system df && sudo apt-get autoremove -y'\""
      },
      "credentials": {
        "sshPassword": {
          "id": "e5pmM8y0fJOZytlE",
          "name": "Jenkins Server SSH"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0935c618-237c-4630-9087-80b757a78a9c",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        -140
      ],
      "parameters": {
        "width": 160,
        "height": 300,
        "content": "Triggers when an alert email about disk usage is received.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d4efc5ab-9003-4d42-a49c-6ac4c376c9cb",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        180,
        -140
      ],
      "parameters": {
        "color": 3,
        "width": 170,
        "height": 300,
        "content": "Parses the email body to extract the target server's IP address.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "adf3341f-4319-40cc-bf97-8917a2bb5c44",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -140
      ],
      "parameters": {
        "color": 4,
        "width": 170,
        "height": 300,
        "content": "Manually set or map credentials, paths, or other config values.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4c933879-5907-4616-8902-42cfb2d73edc",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        620,
        -140
      ],
      "parameters": {
        "color": 6,
        "width": 170,
        "height": 300,
        "content": "Executes cleanup commands (Nginx, PM2, Docker, system logs).\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "fbb7d480-4bbd-4240-9e95-459b563adba4",
  "connections": {
    "723c7067-fe88-4b8b-b1ff-38c9eb662641": {
      "main": [
        [
          {
            "node": "7ef2b2b6-5880-4fc1-93fa-b76c3c75effa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8c1aac94-9e6a-4b14-a177-3a00644ea232": {
      "main": [
        [
          {
            "node": "025c2c15-f693-4b53-8433-4d641526d11a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "025c2c15-f693-4b53-8433-4d641526d11a": {
      "main": [
        [
          {
            "node": "723c7067-fe88-4b8b-b1ff-38c9eb662641",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - DevOps

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数8
カテゴリー1
ノードタイプ5
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
Oneclick AI Squad

Oneclick AI Squad

@oneclick-ai

The AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34