Skip to main content

ログ取得ツール

Category: コンピュータ

僕たちがAIに「昨日どうだった?」って聞くためにやったこと (2)

(1)の続き。

どこまで書いたんだ、えーと、ログを.parquetにするところまでか。まあそれでいいや。そこまででも、duckdbのmcpサーバを定義した上でAIにスキーマとかファイル名を調べてスキルを作ってよ、と言うだけで作ってくれる。それを呼び出せば何があったか概要を答えてくれるだけの力は、AIにはある。かなり余裕で。スキルを使ってみて、改善点を出してもらってパターンを追加してクエリを出しやすい.parquetに作り替えしながら、少しずつ育てていけばいい。

ログに関してはこれでいい。次はメトリクス情報だ。

このサーバは2002年からのものだから、骨格自体は骨董品だ。代替わりはあったし途中から自宅サーバではなくVPSになったりしたが、基本は変わってない。まあ今はコンテナ化されているしstatic site generatorを使うようにしたり、static site専門のWebサーバ(AI以前の時代に書いたやつ)なんかも自作して作り込まれている。まあ古参の自宅サーバ勢は自作のWebサーバを自分でメンテしながら使ってる人も多いんだよ。そういう四半世紀の歴史を持つのがこのサーバというわけだ。

僕たちがAIに「昨日どうだった?」って聞くためにやったこと (1)

このサーバにはいくつかの役割が与えられている。まあこのページの世の中への提供もその一つ。最近はAIの餌になるだけだが。そんな中で、ほとんど放置にも近かった管理系のタスク。これをどうにかしたかった。どういうイメージかというと、、、

claude codeを起動して、

最近調子どう?

って聞いたら

  • 最近の主要なログを確認
  • 最近のメトリクス情報を確認
  • どんなだったかサマリを作って返してくる

という世界を作りたかった。タイムレンジは適当にプロンプトで与える。去年の同じ時期と比べて今年はどうよ? でもいいわけだし。

どうすればいいのか。LLMがログとメトリクスにアクセスできればいい。

実際のところ、データソース…ログやメトリクス情報は完璧ではないにしろ、ある程度保存されるようにしてある。今まで見てなかっただけで。これにLLMからアクセスする手段を作る。つまりMCPサーバだ。

そうこうしているうちに私(わたなべ)はduckdbにMCPサーバがついていて、.parquetファイルにLLMがクエリを投げられるようにできるということを知った。ログを解析して、特定のパターンを持つログを特定のスキーマに入れた.parquetファイルを作っていけば、duckdbで効率的にクエリを投げてサクサク理解が進むというわけだ。これは理想の世界に近づける。というわけで、僕たち(sonnetとopus、あとお手伝いのわたなべ)は日々ログを.parquetに変換する部分のコードを書くことにしたのだった。

特別なポイント

2025年9月に買ったトラックボールだけど、購入してすぐに投入した単3のエネループの電池がさっきやっと切れた。自宅で毎日使っているのに、9ヶ月? 単3一本で。とんでもないな。化け物級だな。しかもエネループだよ。むしろ逆に「こいつ電池切れることあるんだ…」ってなったよ。無線なのに。

当然ながらだいぶ操作にも慣れて、これなしでは生きていけない可能性すら感じている。もうこれは、無人島や宇宙旅行に行く時も持ち物リストに入るよなあ。

古語も得意

さきごろは、claude codeといふものを用ゐたるおもむくままの作り物にて、古の言の葉を種としたる遊びものを作りておりはべりき。試みの関を前にひかえたる若人どもに、いとよきものとなりにけるかと思ひはべり。

失礼、ちょっと教養が…

LLMは古語の翻訳も余裕でいけますね。どういう原理だ。

バイブコーディングのパワーで少しずつミニゲームを作るようになった私は、週末にkogodrop を作っていました。これで古語の語彙を鍛えることができる。

やり取りの末に語彙のデータを作り、辞書を引いてレビュー。作ってもらったスクリプトでWikisourceから用例を集める。そして集まった例文から選抜した文をLLMで現代語に翻訳させて、最後に人間の目視によるチェックをかける。多少の修正は必要だったけど、精度は悪くない。しかし分量的に、このverificationがかなりきつかった。オレには読めないんじゃー! これだけで土日を潰したよ。

それでverifyした本人が全問正解できないというね。これは問題が悪いんじゃないかと思って、いろいろ調整した。まだまだ改善したい部分はあるが、とりあえず遊べるのでちょいちょい通勤電車で遊んだり。

監視の問題

このサーバは、メールの転送設定をして、置いておくサーバになってまして。全体的にはWebサーバ類もまとめて、1枚のdocker composeでサイトのほぼ全てが構築されている。

メールはpostfixのコンテナを立ててやってるんですが、最近イメージを更新したタイミングで落ちていることに気づかずに2週間くらい放置されていました。restart設定で起動→失敗のループが続いていた。

この起動ループは手加減してやってくれるので、急激に負荷が上がったということもなく、害は少ない。少ないけど、多くのSPAMメールを受け取れなかったから、良くない状況ではあった。なんかおかしいと思ったんだよね。それを思うまでに2週間を要したのは恥ずかしい。

というわけで監視を入れようと思った。このサーバの通知はntfy.shを使っていて、syslogのパターンを見てunattended-updateでリブートが予定されている時に通知する、といった機能は入っている。コンテナの死活監視はどうするか。監視と通知のシステムを入れるのがいいんだけど、サーバ自体がスペック低いやつを使ってるから、簡易なものにしたい。

ポイント・オブ・ポインティング

前回は安物のトラックパッドがクソだという話をしたが、結局Logicoolのトラックボールを買ってみた。まあ有線のは安いものが多く、良さそうなものは無線のやつだけだったんだけど、一方で私はUSBの切替機で切り替えたい、という要求仕様があった。

調べたところ、Logicoolの場合はペアリング済みの無線のアダプタがついていて、Bluetoothじゃないが無線でUSBポートと接続できる。これで切り替えれば行けますよ、とかChatGPTが言うもんで、

「ポインティングデバイスがバラバラじゃねえか!」 「ちゃんとまとまてるよ」 「信じていいんだな!?」 「次は絶対勝つ!」

といったやりとりがあって、それで買ってみたってわけ。電池膨張の反省を生かして、単3乾電池で動くやつを有り余るエネループで運用する、という方針になった。だいたい余ってるよねエネループって。

USB接続のドングルはフタを開いた電池ボックスの脇に収納されていて、最初は付属してないのかと思って焦った。持ち歩きを考えると、この収納方法は良いソリューションだと思いますね。ちゃんと切り替えられる。素晴らしい。

というわけで今使っているが、トラックボール初心者にしてはあまり違和感なく使えている。モノがいいのかもしれないなあ。設定アプリからカスタマイズができて、Webページのズームのジェスチャも設定した。見にくいところを拡大するのによく使ってたんだよね。あとは、横スクロールが使いにくくなったくらいか。Shift押しながらホイール、で対応できる。他にも操作方法があるのやも。ボタンが静音なのがいいし、説明通りに手首を固定できるのはかなりのメリットだ。

Apple製品は優秀だよね

今までずっとMagic Trackpadを使っていましたが、電池がムッキムキに膨張してしまったので買い替えることに。

昔はたくさん持っていたマウスも今は1個だけになってしまっている。試しに繋いでみたら左クリックが効かないという…さすがにどうしようもなく壊れていて使い物にならなかった。もうマウスの時代じゃない、やはりトラックパッドだ、と。

それで、とりあえずもうちょっと小さくていいなと思ってApple製じゃない、安いやつにしてみた。案の定、いろいろと不便が多い。かなり満足度が下がったので、ポインティングデバイスはまた近々買い替えることになるだろう。あるいは人間側が慣れるのか。ちょっと慣れられるワケがないくらいの不便さを今は感じている。MBP内蔵のトラックパッドの方が数段快適だ。しかしそれを使うわけにもいかなくて、画面は閉じて外部ディスプレイと外部キーボードと外部ポインティングデバイスで使いたいんだ。切り替え機で切り替えながら使うし。

WordPressやめた

長らくWordPressで作ってきたこのブログ…まあ個人ブログというのも今や廃れてしまった文化ではあるんですが、今回hugoに乗り換えました。乗り換えるためのスクリプトやら何やらはだらだら作っていたりして、なかなか踏ん切りがつかずに今まで暮らしてきました。

2005年に、それまで使っていたシステム(マイナーなやつを色々カスタマイズしていた)をWordPressに移行しようとした時も、割とダラダラやって2008年までかかっていた。今回も2023年の元旦にはWPやめようと思っていたんですよ。で、サーバリプレイスの時もWPのままでやっちゃったのを後悔していて。

時間かけた割には完成度があまり高くないんだよな…まだ、何かと修正したい部分もありつつ、一旦移行したということで。

GenAIについて

大抵の人がそうであるように、私も生成AIでしばらく遊んでます。いろいろありますが、先月から手元のUIとしてopen-webuiってやつを使うようになり、問答を手元に保管するようになった。ついでに面白さを感じたものをコッソリ公開したりして。

その上で雑感ですが、一言で言えば、「今のうち」だな、と。

現状、みんなこぞって生成AIに役に立つことや真実を語らせようとしているので、おそらく近日中にそれは達成されると思う。だから、面白いことを言ってくれるのは今のうちだよな、という意味ですね。真実を語るようになった先に、デザインされた面白さを発揮するモデルだって出てくるだろうけど、今は「天然」なんですよ。

今はまだこいつが生成AIのモデルにすぎないという意識を持ちながら接している。それでも知性があるとしか思えない挙動はしてくるんだけど、それでも「まだ」なんだよな。嘘八百が得意で、感情の表現に乏しいアピールをしてくるやつ、と扱っている。つまり信頼することはないし、自分と対等以上とはみなしていないんだ。だから安心して問答できると言える。