【検証】マニュアルをAIに渡してEasyBlocks Syslogの設定をさせてみた

はじめに

新しく装置を導入したとき、最初にやるのが初期設定です。マニュアルを読みながら、やりたいことを設定項目に落としていく作業になります。

ここでひとつ気になったことがあります。

最近はなんでもAIを活用する時代になりましたが、公開しているマニュアルだけを渡したら、AIはどこまで設定できるのか。設定項目名を教えずに、やりたいことだけを伝えたらどうなるのか?

工場出荷状態の EasyBlocks Syslog(Ver.1.2.2)を1台用意し、IPアドレスだけ振った状態から Claude Code (モデル:Claude Opus)に設定させてみました。

渡したもの

要件はテキストファイルにまとめて渡しました。設定項目名は一切書いていません。

  • 社内のネットワーク機器から Syslog を受信できる状態にしてほしい
  • 管理画面にはローカルネットワークからだけアクセスできるようにしたい
  • 暗号化されていない通信は使わせたくない
  • ログは一定期間残したい
  • 最後に、装置のIPアドレスを変更してほしい

暗号化とログの保持については、装置の仕様上そのままでは満たせないと分かったうえで入れています。Syslog の受信は平文のプロトコルしかありませんし、ログの保持日数を指定する設定もありません。マニュアルを読めば分かることではありますが、気づかずに設定を進めてしまうかどうかを見たいと思いました。

マニュアルは docs.plathome.co.jp のトップURLだけを伝え、そこから自力で探してもらうことにしました。お客様が見ているものと同じ情報です。

なお、Claude Code はターミナルで動くツールなので、そのままではブラウザを触れません。今回はブラウザ操作用のスクリプトを自分で書き、それを実行する形で設定が進みました。

工場出荷状態の設定画面は、以下の通りです。

設定前のサービス > 基本設定。項目が1つしかありません。

サービスの基本設定には「syslog受信機能」の1項目しかありません。

これを有効にすると、パース設定や通知、バックアップ送信といった項目が現れる作りです。画面を眺めるだけでは何ができるのか分からないので、マニュアルを読む意味があります。

作業に入る前に、4つの質問が返ってきた

マニュアルを読み終えたあと、設定画面を触る前に以下の4つの質問が返ってきました。

  1. 許可するネットワーク範囲
  2. 受信に使うポート
  3. ログの保持
  4. 平文サービスの扱い

いずれも、マニュアルを読んでも決まらないことばかりでした。設定の手順についての質問はありませんでした。どのネットワークからのアクセスを許すか、どんな機器からログを受けるのか。

運用する側が決めることだけを聞いてきた形です。

そして最初のメッセージで、すでに仕様上の制約をひとつ見つけていました。

EasyBlocks Syslog は「Syslog の受信」を TLS で行えません。受信は UDP 514 / TCP 514 / TCP 601(IETF) の平文のみで、TLS (6514) が使えるのは他サーバへの中継(転送)と FTPS バックアップだけです

ただし、この指摘には誤りが含まれていました。

Ver.1.2.2 時点で、バックアップの送信先として用意されているのは AWS S3、Azure Blob Storage、FTP の3つです。FTPS はありません。公開マニュアルにも記載のない機能なので、どこから出てきたのかは分かりません。

TLSで受信できないこと自体は正しく、要件に関わる部分は合っています。ただ、根拠として添えられた説明をそのまま信じるわけにはいかない、ということでもあります。

「暗号化されていない通信は使わせたくない」は、そのままでは通らなかった

Syslog の受信は平文のプロトコルしか用意されていません。そのため、要件をそのまま適用すると、Syslog を受信すること自体ができなくなります。

AIはこの要件を管理系の通信、つまり Web UI と SSH、FTP に適用し、Syslog の受信は平文のまま(ネットワーク側で閉じた経路に限定する前提)で進める、という解釈を示してきました。そのうえで作業に入っています。

「ログを一定期間残したい」には、設定項目がない

この装置には、ログの保持日数を指定する設定がありません。ディスク使用率が80%を超えたときに、最も古いテーブルが自動的に削除される仕様です。何ヶ月分残るかは、ストレージ容量と受信するログの量で決まります。

この要件に対する返答がこちらです。

保持日数の設定が無いことを特定したうえで、どう運用するかを聞き返してきた。

設定項目が存在しないことを突き止めたうえで、既存の機能を組み合わせる案を出してきました。ストレージ容量監視は70%を超えるとアラートが出るので、これを有効にしておけば、80%の自動削除に至る前に気づけます。現在の使用量まで確認したうえでの提案でした。

長期保全が必要ならバックアップ送信を使う、という選択肢も添えられていました。

実施した設定

4つの質問に答えると、どの画面で何を変更するかを整理した計画が出てきました。

サービスの基本設定でSyslog受信を有効にし、システムの2つの画面でアクセス制御をかけ、最後にネットワークのIPアドレスを変更する。

この順番で作業が進みます。実際に設定された結果がこちらです。

[ システム>その他 ] HTTP を拒否し、アクセス許可ネットワークを限定した状態。

HTTP を拒否して HTTPS のみ許可、アクセス許可ネットワークとSSHアクセス制限に同じネットワークを指定しています。監視も2つとも有効になっています。

[ システム > フィルタ開放 ] Web UI(HTTP) だけが全インターフェース閉鎖になっている。

平文のHTTPは二重で塞がれています。「その他」の Web UI アクセス制御で拒否したうえで、「フィルタ開放」でもポートを閉鎖する形です。作業ログにも、二重で塞いでいると書かれていました。

設定後は、実際にテスト用のSyslogを送って受信を確認していました。IPアドレスを変更して再起動したあと、新しいIP宛でもう一度送り直しています。

AIが送信したテストログ。IP変更の前後で2回、受信を確認している。

「確認できていない」と書いてきた箇所

作業ログの申し送りに、こう書かれていました。

IP/ネットワーク制限の「効く側」(指定したネットワーク以外からは弾かれること)は、作業元が同一セグメントのため未検証。別セグメントから疎通確認するのが望ましい

設定はしたけれど、本当に弾かれるかどうかは確かめていない、という自己申告です。作業しているPCが許可したネットワークの中にいるので、外から試すことができませんでした。

そこで、別のセグメントにあるPCから管理画面にアクセスしてみました。

許可していないセグメントからのアクセス。403 Forbidden が返る。

403 Forbidden が返りました。接続がタイムアウトしたのではなく、装置まで届いたうえで拒否されています。設定が意図どおり効いていることを、弾かれる側からも確認できました。

運用方針の3つは、どれもそのままでは収まらなかった

結果を並べると、こうなります。

要件 結果
ローカルネットワークからのみアクセス 設定できた。ただし効いていることはAIの環境では確認できなかった
暗号化されていない通信を使わせない 受信は仕様上、平文のみ。管理系の通信だけに適用
ログを一定期間残したい 設定項目が存在しない。別の機能を組み合わせて代替

やりたいことを伝えれば、そのとおりの設定項目があるとは限りません。装置ができることとの間には、たいていズレがあります。そのズレをどう埋めるかを決めるのが、設計と呼ばれる部分です。

今回、AIはそのズレを見つけて、言葉にして、代替案を添えて返してきました。決めることはしていません。

AIができたことと、人がやったこと

AIができたのは、マニュアルと要件を突き合わせて、合わないところを見つけて言語化することでした。仕込んだ2つは、どちらも設定を触る前に指摘されています。

それよりも意外だったのは、要件に書いていないことが作業ログの申し送りに挙がっていたことです。NTPサーバが未設定で上流と同期していないから、このままでは時刻がずれていくという指摘でした。Syslogサーバとしてタイムスタンプの信頼性に関わるから設定したいが、社内NTPサーバのアドレスが分からないので推測では設定しなかった、と書かれていました。こちらは私も意識していませんでした。

一方で、人がやったことが3つあります。

1つ目は、書いてきたことが事実かどうかを確かめること。FTPS の件は、製品の仕様を知っていなければ見過ごしていました。2つ目は、見つかったズレをどう埋めるかを決めること。3つ目は、設定した結果が本当に効いているかを確かめることです。

403 の確認は、AIが「やるべきだができなかった」と書いた箇所でした。やることは分かっていたけれど、環境が足りなかった。ここは人が手を動かすしかありません。

おわりに

今回AIに渡した要件は、人に作業を頼むときに書く指示書とほとんど同じ形でした。だから返ってきた質問も、人が聞いてくることと大きくは変わりません。

AIが拾ってきた制約は、おおむね公開マニュアルに書いてあることでした。ただ、人はマニュアルを頭から読みません。やりたいことに関係しそうな章を開いて、設定項目を探します。だから「設定項目がないこと」には気づきにくい。

そしてもうひとつ、要件を渡した時点で何が決まっていないかが見えていませんでした。ローカルネットワークの範囲も、どんな機器からログを受けるかも、こちらが決めるべきことです。

AIに聞かれて初めて、決めていなかったことに気づきました。

相手が人でもAIでも、作業を頼む前に決めておくことは変わりません。今回はそれが質問という形で返ってきたので、何を決めていなかったかが目に見えました。

AIに何を任せ、何を自分で決めるか。その線引きは、今回のような検証を重ねながら見極めていきたいと思います。今後もEasyBlocksシリーズとAIを組み合わせた検証があれば、引き続き記事でご紹介していきます。

タイトルとURLをコピーしました