質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Q&A

1回答

1835閲覧

非定型データの検索方法について。検索の技術的なアイデア

guitar-guitar

総合スコア42

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

0グッド

0クリップ

投稿2017/01/17 04:11

皆様、何か良いアイデア、ヒントやツールがあれば教えてください。

システム運用の中で数々のエラー対応を実施すると思います。
数年稼働しているシステムであれば、過去のエラーはインシデント管理ツールなどに蓄積され、
新規にエラーが発生した場合は過去事例をツールから検索することが多々あると思います。

◆実現したいこと
エラーが発生した場合この検索を自動でできるようにしたいです。

実際は出力エラーからプロセス名などを人手で切り取り、過去事例をインシデント管理ツール上から検索しています。
自動化を考えたとき
ログ出力のフォーマットが機器やエラー内容によって異なるため、決まったフォーマットに加工できず、
単純にSQL検索するすべが思いつきません。

◆エラーサンプル
2017/01/02 03:13:50 XXXXXXXX 2017-01-02 03:10:38.476 Error AM_SSO_SERVICE: SSOTokenService::getSessionInfo(): Error 35 for sso token ID XXXXXXXX 2017/01/02 03:13:50 XXXXXXXX 2017-01-02 03:10:38.476 Error 10812:775b9db810 PolicyEngine: Exception encountered: InternalException. 2017/01/02 03:13:50 XXXXXXXX 2017-01-02 03:10:38.476 Error 10812:775b9db810 PolicyEngine:

↑たとえばこんなエラーが発生した場合、発生に日時などは検索に必要ないので、『SSOTokenService』などの文字列を人手でコピーして
インシデント管理ツールから検索しています。
いくつか『SSOTokenService』がヒットした中で、同じようなエラーを人手で判断しています。
(日時などのパラメータが違いますが、エラーの内容は一致)
インシデント管理ツール上には、エラーログがそのまま記録されています。(ツールのDBはSQL Serverを利用)
エラーごとにフォーマットが異なります。

新規でエラーが発生した場合に、過去事例から同じようなエラーを検索できるアイデアが浮かばず・・・。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ヒント1)
エラーサンプルでは、日時が "YYYY-MM-DD HH:MM:SS"の形式(A形式)か、"YYYY/MM/DD HH:MM:SS.mmm"の形式(B形式)で出されているように見えます。
日時の出力は、エラーメッセージの始まりや終わりである事が多いので、ログから個々のエラーに切り分ける際の目印になります。

また、このような書式の違いは、エラーが起きた機器の特定に役立ちます。

同じ機種の機器が複数稼働している場合で、個々の機器の時計が一致していない場合は、日時から個々の機器を特定できる事もあります。(ログに前後して記録されているのに、日付が15秒遅れのものが混在していれば、時間遅れの無い機器と、15秒遅れの機器が区別できる等)

ヒント2)
フォーマットが決まっていないという事なので、とりあえずエラーメッセージを集めます。 ある程度の数が集まったら、エラーメッセージ間の類似度(レーベンシュタイン距離などの指標を使う)を求めて、内容が似通っているエラーメッセージをグループ化してゆきます。 各グループのメッセージは共通している文字列を持つはずなので、それを検索キーに使える可能性があります。
エラーへの対処方法が類似しているか否かも、検討する必要があることに留意してください。

ヒント3)
メッセージがグループ化できると、そのメッセージが持つ共通したフォーマットが判って来るはずです。どこが変わらない部分で、どこがメッセージごとに異なる部分なのかといった知見が得られたら、「使われるフォーマットが判っている」という状況になる訳です。
そうすると、今度は判っているフォーマットの知識を使って、エラーや対処方法の整理が可能となりますし、それを検索する方法も判って来ると思います。


フォーマットが決まっていないといっても、しょせん機器が出力するデータですから、人が話す言葉ほどバリエーションも多くないですし、時々刻々変化していくものではないです。
そこで、エラーメッセージからフォーマットを見つけるとしたらという趣旨で回答させて頂きました。

投稿2017/01/17 06:00

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guitar-guitar

2017/01/17 12:51

とてもご親切にご回答いただきありがとうございます。 また貴重なご意見いただきありがとうございます。前向きに検討して見ます。 おっしゃる通りいくつかのフォーマットに分類できるとは思います。 ですが検索PGに受け渡す際に、そのフォーマットの数だけ加工するPGが必要になるということですよね。 やはりフォーマット加工せずに、いくつかのキーワードを抽出し、検索になげるといったこ事は難しいですかね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問