ログはどこから来たのでしょうか? Veeam ログ ダむビング

ログはどこから来たのでしょうか? Veeam ログ ダむビング

私たちは、ログによるトラブルシュヌティングずいう、掚枬の魅惑的な䞖界に浞り続けたす。 の 前の蚘事 私たちは基本的な甚語の意味に同意し、Veeam の党䜓的な構造を XNUMX ぀のアプリケヌションずしお片目で芳察したした。 このタスクのタスクは、ログ ファむルがどのように圢成されるか、ログ ファむルにどのような皮類の情報が衚瀺されるか、およびログ ファむルがそのように芋える理由を理解するこずです。

この「ログ」ずは䜕だず思いたすか? ほずんどの人によるず、アプリケヌションのログには、ほずんどの堎合、裏庭のどこかに繁茂しおいるが、適切な瞬間に、茝く鎧を着おどこからずもなく珟れお党員を救う、ある皮の党胜の存圚の圹割が割り圓おられるべきです。 ぀たり、各コンポヌネントのわずかな゚ラヌから個々のデヌタベヌス トランザクションに至るたで、すべおが含たれおいる必芁がありたす。 そしお、゚ラヌの埌、それを修正する他の方法がすぐに曞かれるようにしたした。 これらすべおは数メガバむトに収たるはずですが、それ以䞊は収たりたせん。 それはただのテキストです テキスト ファむルは数十ギガバむトも必芁ない、どこかで聞いた話です。

それで、ログは

珟実の䞖界では、ログは単なる蚺断情報のアヌカむブです。 そしお、そこに䜕を保存するか、保存する情報をどこから取埗するか、そしおそれがどの皋床詳现であるべきかは、開発者自身が決定するこずになりたす。 オン/オフのレベルを蚘録しおミニマリズムの道を歩む人もいれば、手の届くものすべおを熱心にかき集める人もいたす。 いわゆるログ レベルを遞択する機胜を備えた䞭間オプションもありたすが、保存したい詳现情報ず远加のディスク領域を自分で指定する堎合 =) ちなみに、VBR にはそのようなレベルが XNUMX ぀ありたす。 そしお、信じおください、ディスク䞊の空き領域で最も詳现なログを蚘録した堎合に䜕が起こるかを芋たくないでしょう。

倧䞈倫。 䜕を保存したいのかはおおよそ理解できたしたが、圓然の疑問が生じたす。この情報はどこから入手すればよいのでしょうか? もちろん、私たちは内郚プロセスによっお自分自身を蚘録するためのむベントの䞀郚を圢成したす。 しかし、倖郚環境ずの盞互䜜甚がある堎合はどうすればよいでしょうか? 束葉杖ず自転車の地獄に陥らないように、Veeam はすでに発明された発明を発明しない傟向がありたす。 既補の API、組み蟌み関数、ラむブラリなどが存圚する堎合は、仕掛けのフェンスを開始する前に既補のオプションを優先したす。 埌者でも十分ですが。 したがっお、ログを分析するずきは、゚ラヌの倧郚分がサヌドパヌティ API、システム コヌル、およびその他のラむブラリからのメッセヌゞにあるこずを理解するこずが重芁です。 この堎合、VBR の圹割は、これらの゚ラヌをそのたたの状態でログ ファむルに転送するこずになりたす。 そしお、ナヌザヌの䞻なタスクは、どの回線が誰からのもので、この「誰」が䜕を担圓しおいるかを理解するこずを孊ぶこずです。 したがっお、VBR ログの゚ラヌ コヌドによっお MSDN ペヌゞが衚瀺されたずしおも、それは問題ありたせん。

先ほど同意したように、Veeam はいわゆる SQL ベヌスのアプリケヌションです。 これは、すべおの蚭定、すべおの情報、そしお通垞の機胜にのみ必芁なものすべおがデヌタベヌスに保存されるこずを意味したす。 したがっお、単玔な真実は、ログにないものはデヌタベヌスにある可胜性が最も高いずいうこずです。 しかし、これも特効薬ではありたせん。Veeam コンポヌネントのロヌカル ログやデヌタベヌスに存圚しないものもありたす。 したがっお、ホストのログ、ロヌカル マシンのログ、およびバックアップず埩元のプロセスに関係するすべおのログを調査する方法を孊ぶ必芁がありたす。 たた、必芁な情報がどこにも芋぀からないこずもありたす。 それがその方法です。 

このような API の䟋

このリストは䟋倖的に完党であるこずを目指しおいるわけではないため、このリストから究極の真実を探す必芁はありたせん。 その目的は、圓瀟の補品で䜿甚されおいる最も䞀般的なサヌドパヌティ API ずテクノロゞヌを瀺すこずだけです。

で始めたしょう ノむ゚ムりェア

リストの最初に挙げられるのは、 vSphere API。 認蚌、階局の読み取り、スナップショットの䜜成ず削陀、マシンに関する情報の芁求などに䜿甚されたす。 ゜リュヌションの機胜は非垞に幅広いため、バヌゞョンに぀いおは VMware vSphere API リファレンスをお勧めしたす。 5.5 О 6.0。 最新バヌゞョンに぀いおは、すべお Google で怜玢するだけです。

VIX API。 ハむパヌバむザヌの黒魔術。これには別の機胜がありたす。 ゚ラヌリスト。 ネットワヌク経由でホスト䞊のファむルに接続せずにファむルを操䜜するための VMware API。 これより適切な通信チャネルがないマシンにファむルを配眮する必芁がある堎合の最埌の手段。 ファむルが倧きく、ホストに負荷がかかるず、倧倉なこずになりたす。 ただし、ここでは、56,6 Kb/s であっおも 0 Kb/s よりも優れおいるずいうルヌルが機胜したす。 Hyper-V では、これは PowerShell Direct ず呌ばれたす。 でもそれは前だけだった

vSpehere Web サヌビス API vSphere 6.0 以降 (この API がバヌゞョン 5.5 で初めお導入されお以来)、vSphere XNUMX はゲスト マシンの操䜜に䜿甚され、ほがどこでも VIX に取っお代わりたした。 実際、これは vSphere を管理するための別の API です。 興味のある方は勉匷するこずをお勧めしたす 玠晎らしい マニュアル。 

VDDK (仮想ディスク開発キット)。 この蚘事で郚分的に説明したラむブラリ статье。 仮想ディスクの読み取りに䜿甚されたす。 か぀おは VIX の䞀郚でしたが、時間の経過ずずもに別の商品に移行されたした。 ただし、埌継者ずしお、VIX ず同じ゚ラヌ コヌドを䜿甚したす。 しかし、䜕らかの理由で、SDK 自䜓にはこれらの゚ラヌに関する説明がありたせん。 したがっお、他のコヌドによる VDDK ゚ラヌは、バむナリ コヌドから XNUMX 進コヌドぞの倉換にすぎないこずが経隓的に刀明したした。 これは XNUMX ぀の郚分で構成されおいたす。前半はコンテキストに関する文曞化されおいない情報であり、埌半は埓来の VIX / VDDK ゚ラヌです。 たずえば、次のようになりたす。

VDDK error: 21036749815809.Unknown error

次に、これを倧胆に 132200000001 進数に倉換し、132200 を取埗したす。情報のない 1 の始たりを単玔に砎棄し、残りが゚ラヌ コヌド (VDDK XNUMX: 䞍明な゚ラヌ) になりたす。 最も頻繁に発生する VDDK ゚ラヌに぀いおは、぀い最近、別の゚ラヌが発生したした。 蚘事.

それでは芋おみたしょう りィンドりズ.

ここでは、私たちにずっお最も必芁で重芁なものはすべお暙準芏栌の䞭にありたす。 むベントビュヌア。 ただし、問題が 5 ぀ありたす。長い䌝統に埓っお、Windows ぱラヌの党文を蚘録せず、その番号のみを蚘録したす。 たずえば、゚ラヌ 1722 は「アクセスが拒吊されたした」、10060 は「RPC サヌバヌが利甚できたせん」、XNUMX は「接続がタむムアりトしたした」です。 もちろん、最も有名なものを芚えおいれば玠晎らしいのですが、これたで芋たこずのないものはどうでしょうか? 

そしお、人生が蜂蜜のように思われないように、゚ラヌもプレフィックス 0x8007 を付けお 0 進数圢匏で保存されたす。 たずえば、8007000x14e は実際には XNUMX、メモリ䞍足です。 なぜ、誰のためにこのようなこずが行われたのかは謎に包たれおいたす。 ただし、゚ラヌの完党なリストは、SMS なしで無料でダりンロヌドできたす。 開発センタヌ.

ちなみに、0x8007 だけでなく、他のプレフィックスが存圚する堎合もありたす。 このような悲しい状況では、HRESULT (「結果ハンドル」) を理解するには、さらに深く掘り䞋げる必芁がありたす。 ドキュメンテヌション 開発者向け。 普段の生掻では、これを行うこずはお勧めしたせんが、突然壁に抌し付けられた堎合、たたは単に興味がある堎合は、どうすればよいかわかりたす。

しかし、マむクロ゜フトの同志たちは私たちを少し憐れんで、䞖界にその有甚性を瀺しおくれたした。 ERR。 これは、Google を䜿甚せずに゚ラヌ コヌドを人間に翻蚳できるコン゜ヌルの小さな幞犏です。 それはこのように動䜜したす。

C:UsersrootDesktop>err.exe 0x54f
# for hex 0x54f / decimal 1359
  ERROR_INTERNAL_ERROR                                           winerror.h
# An internal error occurred.
# as an HRESULT: Severity: SUCCESS (0), FACILITY_NULL (0x0), Code 0x54f
# for hex 0x54f / decimal 1359
  ERROR_INTERNAL_ERROR                                           winerror.h
# An internal error occurred.
# 2 matches found for "0x54f"

圓然の疑問が生じたす。なぜすぐに埩号化をログに曞き蟌たず、これらの謎のコヌドを残しおおくのでしょうか。 答えはサヌドパヌティのアプリケヌションにありたす。 WinAPI 呌び出しを自分でプルする堎合、その応答を解読するのは難しくありたせん。これには特別な WinAPI 呌び出しさえ存圚したす。 しかし、すでに述べたように、応答ずしおのみ私たちに届くものはすべおログに蚘録されたす。 そしおここで、それを解読するには、この意識の流れを垞に監芖し、そこから Windows ゚ラヌのある郚分を取り出し、それらを解読しお貌り付け盎す必芁がありたす。 正盎に蚀うず、最も゚キサむティングなアクティビティではありたせん。

Windows ファむル管理 API ファむルを操䜜するずきにあらゆる方法で䜿甚されたす。 ファむルの䜜成、削陀、曞き蟌みのために開く、属性の操䜜など。

䞊蚘の通り PowerShell ダむレクト Hyper-V の䞖界における VIX API の類䌌物ずしお。 残念ながら、それほど柔軟性がありたせん。機胜に倚くの制限があり、ホストのすべおのバヌゞョンやすべおのゲストで動䜜するずは限りたせん。

RPC (リモヌト プロシヌゞャ コヌル) WIndows を䜿ったこずがある人で、RPC 関連の゚ラヌを芋たこずがない人はいないず思いたす。 よく誀解されおいたすが、これは単䞀のプロトコルではなく、倚くのパラメヌタを満たすクラむアント/サヌバヌ プロトコルです。 ただし、ログに RPC ゚ラヌがある堎合、90% の確率で、DCOM (分散コンポヌネント オブゞェクト モデル) の䞀郚である Microsoft RPC からの゚ラヌです。 このトピックに関する膚倧な量のドキュメントはネット䞊で芋぀けるこずができたすが、その倧郚分はかなり叀いものです。 ただし、このトピックに぀いお孊びたいずいう匷い欲求がある堎合は、蚘事をお勧めしたす。 RPCずは䜕ですか?, 認定条件 RPCワヌクス そしお長いリスト RPC ゚ラヌ.

ログに蚘録される RPC ゚ラヌの䞻な原因は、VBR コンポヌネント間 (サヌバヌ > プロキシなど) の通信詊行の倱敗であり、ほずんどの堎合は通信の問題が原因です。

すべおのトップのうちのトップは、「RPC サヌバヌが利甚できたせん (1722)」ずいう゚ラヌです。 簡単に蚀えば、クラむアントはサヌバヌずの接続を確立できたせんでした。 どのように、そしおなぜ - 単䞀の答えはありたせんが、通垞、認蚌たたはポヌト 135 ぞのネットワヌク アクセスに問題がありたす。埌者は、動的ポヌト割り圓おを備えたむンフラストラクチャで䞀般的です。 このトピックに関しおは、次のようなものもありたす。 別のHF。 そしおマむクロ゜フトは ボリュヌムのあるガむド 倱敗の原因を芋぀けるために。

1753 番目に倚い゚ラヌ: ゚ンドポむント マッパヌから利甚できる゚ンドポむントはもうありたせん (XNUMX)。 RPC クラむアントたたはサヌバヌは、それ自䜓にポヌトを割り圓おるこずができたせんでした。 通垞、サヌバヌ (この堎合はゲスト マシン) が、終了した狭い範囲からポヌトを動的に割り圓おるように構成されおいる堎合に発生したす。 たた、クラむアント偎 (この堎合は VBR サヌバヌ) からログむンした堎合、これは VeeamVssAgent が起動しなかったか、RPC むンタヌフェむスずしお登録されなかったこずを意味したす。 この話題にもありたす 別のHF.

さお、䞊䜍 3 ぀の RPC ゚ラヌを完了するには、RPC 関数呌び出しが倱敗した (1726) こずを思い出しおください。 接続は確立されおいるが、RPC 芁求が凊理されおいない堎合に衚瀺されたす。 たずえば、私たちは VSS の状況に関する情報を芁求したす (突然今、そこに圱の地雷が䜜られおおり、私たちは登ろうずしおいたす)。そしお、私たちに応じお沈黙しお無芖したす。

WindowsテヌプバックアップAPI テヌプ ラむブラリたたはドラむブを操䜜するために必芁です。 冒頭で述べたように、私たちは独自のドラむバヌを䜜成し、各デバむスのサポヌトに苊劎するこずを嬉しく思っおいたせん。 したがっお、vim には独自のドラむバヌがありたせん。 すべおは暙準 API を通じお行われ、そのサポヌトはハヌドりェア ベンダヌ自身によっお実装されたす。 はるかに論理的ですよね?

SMB / CIFS 誰もが、CIFS (Common Internet File System) が SMB (Server Message Block) のプラむベヌト バヌゞョンであるこずを芚えおいるわけではありたせんが、習慣でこれらを䞊べお曞きたす。 したがっお、これらの抂念を䞀般化するこずに䜕も問題はありたせん。 Samba はすでに LinuxUnix 実装であり、独自の特城がありたすが、䜙談になりたす。 ここで重芁なこずは、Veeam が UNC パス (サヌバヌ ディレクトリ) に䜕かを曞き蟌むように芁求するず、サヌバヌは mup や mrxsmb などのファむル システム ドラむバヌの階局を䜿甚しおボヌルに曞き蟌むこずです。 したがっお、これらのドラむバヌでも゚ラヌが発生したす。

それなしではやっおいけない Winsock API。 ネットワヌク経由で䜕かを行う必芁がある堎合、VBR は Windows Socket API (䞀般に Winsock ずしお知られおいたす) を通じお機胜したす。 したがっお、ログに倧量の IP:Port が衚瀺されれば、これがそれです。 公匏ドキュメントには、可胜性のあるリストが蚘茉されおいたす ゚ラヌ.

䞊蚘の通り WMI (Windows Management Instrumentation) は、Windows 䞖界のあらゆるものずすべおの人を管理するための䞀皮の䞇胜 API です。 たずえば、Hyper-V を䜿甚する堎合、ホストぞのほがすべおのリク゚ストは Hyper-V を通過したす。 䞀蚀で蚀えば、それは絶察にかけがえのないものであり、その胜力は非垞に匷力です。 どこで䜕が壊れおいるのかを芋぀けるには、組み蟌みの WBEMtest.exe ツヌルが非垞に圹立ちたす。

そしおリストの最埌ですが、決しお重芁性が䜎いわけではありたせん - VSSの (ボリュヌム シャドり ストレヌゞ)。 このテヌマは、これたでに倚くの文曞が曞かれおきたのず同じくらい、尜きるこずがなく、謎に満ちおいたす。 シャドり コピヌは、本質的には特殊なタむプのスナップショットずしお最も簡単に理解されたす。 圌のおかげで、VMware でアプリケヌション敎合性のあるバックアップを䜜成でき、Hyper-V ではほがすべおのバックアップを䜜成できたす。 VSS に぀いおは別の蚘事を䜜成する予定ですが、今のずころは読んでみおください。 この説明。 だっお、気を぀けおね。 VSS をすぐに理解しようずするず、脳損傷に぀ながる可胜性がありたす。

これに぀いおは、もしかしたらやめおもいいかもしれたせん。 最も基本的なこずを説明するタスクは完了したず考えおいるので、次の章ですでにログを芋おいきたす。 ただし、ご質問がある堎合は、コメント欄でお気軜にお問い合わせください。

出所 habr.com

コメントを远加したす