「System Administrator Toolkit」たたは「How We Work」

システム管理者はどのように働き、日垞業務で䜕を䜿甚したすか、どのナヌティリティが私たちの生掻を楜にしたすか

これらの質問に簡単に答え、䜜業がどのように構成されおいるかを説明したす 。



そのため、原則ずしお、システム管理者は次のこずを行う必芁がありたすできるようになりたす。

゜フトりェアのむンストヌル/曎新/アンむンストヌル

゜フトりェアのセットアップ

蚈画䜜業

文曞化する

ITシステムのステヌタスを監芖する

ITシステムの蚺断ず保守

゜フトりェアずデヌタのバックアップ/アヌカむブ



このすべおのために、倚くの異なる゜フトりェアがありたす、私たちはすべおの最も必芁なものを説明しようずしたす。



環境環境


システム管理者の仕事の始たり-䟿利な環境の遞択。 これは広々ずした明るいオフィスや快適な怅子ではありたせんが、重芁ですが、オペレヌティングシステムの遞択です。 私の同僚はMac OS X、Windows、Ubuntuで働いおいたす。 ディストリビュヌションずさたざたなデスクトップシェルDebian、Kubuntu、Fedora Gnome / Cinnamonで倚くの詊行ず実隓を行った埌、Ubuntu 12.04Unityに萜ち着きたした。

慣れお、Unityに慣れたばかりで、今では論理的で非垞に䟿利なPCシェルのように思えたす。 管理者の䞻な芁件は、安定性ずシンプルさです。 私は誰ずも議論したくありたせんが、それはUbuntuがそれ自䜓を蚌明した方法です。



ドキュメンテヌションを蚈画するためのツヌルに぀いおは、おそらく詳しく説明したせん。 ドキュメンテヌションに぀いおは、ドックを共有するのに十分なメモ垳GeditずLibre OfficeずGoogle Docsがあるこずに泚意しおください。 最も䟿利なメモずドキュメントはすべおりィキに保存されおいたす。 時間の远跡ずタスク制埡には、Redmineを䜿甚したす。

もちろん、同僚やクラむアントずのコミュニケヌションには資金が必芁です。 通垞、これは電子メヌルずSkypeおよび電話です。

蚈画には、Googleカレンダヌを䜿甚したす。たずえば、日蚘など、実際に䜿甚する堎合、他のツヌルも同様に有効です。



䜕らかの方法で、ロヌカルで、たたはリモヌトサヌバヌで、コン゜ヌルで倚くの䜜業を行う必芁がありたす。 したがっお、* nix管理者の日垞操䜜で最も重芁なこずは、コマンドラむンナヌティリティです。



コマンドラむンナヌティリティ


ほずんどの堎合、テキスト構成、ログ、マニュアルなどを操䜜する必芁があるため、テキスト゚ディタヌや、テキストず行を操䜜するためのその他のツヌルから始めたしょう。

vi / vim-この゚ディタヌはほずんどすべおのサヌバヌUnix䞊ので芋぀けるこずができるため、管理者にずっお䞍可欠なツヌルです。少なくずもman vimでそれを正しく行う方法を読んでください。

nanoは、Debian / Ubuntuでデフォルトで利甚できる最も単玔な゚ディタヌです。

mcedit -mcずブルヌスクリヌンのファン向けで、最悪のオプションではなく、非垞にシンプルで䟿利です。

cat -concatinate-元々はファむルを結合するためのツヌルでしたが、ファむルの内容を衚瀺したり、ファむルに行を挿入したりするためによく䜿甚されたす。

tail-デフォルトでは、ファむルの最埌の10行を衚瀺し、ログの远跡に䜿甚できたす-fスむッチを䜿甚

wc-ファむル内の単語文字列ずバむト数をカりントしたす

head -tailはファむルの10行を出力したすが、名前からわかるように、ファむルの先頭から。

grepは、テキスト出力をフィルタリングするため、たたはファむル内の目的の行を芋぀けるための最も䞍可欠なツヌルです。

sed-ストリヌム゚ディタヌ-ルヌチンタスクの自動化、ファむル内の行の眮換構成の線集、行の削陀、マスクによるコンテンツの衚瀺などに非垞に圹立ちたす。

awk / gawkは非垞に匷力なナヌティリティでAWKは実際にはプログラミング蚀語党䜓です、ファむルの解析や行出力の操䜜などに圹立ちたす。

リストされおいるすべおのナヌティリティに関する情報は、manにありたす。 男ずいえば

man -manペヌゞぞのアクセス-これは、Unixの管理者が1日䜜業するこずはおそらくないこずです。 初心者の堎合は、コマンドラむンでman manず入力しお開始しおください。

リストは延々ず続きたすが、実際には倚くのナヌティリティがありたす。 しかし、今のずころ、これに぀いお詳しく芋お、小さな男を読んで、awk、wc、cat、およびgrepで䜕が圹立぀か芋おみたしょう。



ちょっずした緎習


これらのナヌティリティが実際に圹立぀のはなぜか、ログを解析する䟋を瀺しおみたす。



次の圢匏のApacheログファむルaccess.logがありたす。

1.2.3.4 - - [12/May/2014:03:08:55 +0400] "GET /shop/goods-list HTTP/1.1" 200 1691 "http://example.ru/shop/goods-list" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"







正垞に凊理されたリク゚ストの割合を蚈算する簡単なスクリプトを䜜成したす。

 #!/bin/bash SUM=`wc -l access.log` #      OK=`cat access.log | awk '{print $9}' | grep 200 | wc -l` #      "200" awk -v SUM="$SUM" -v OK="$OK" ' BEGIN { printf "Passed: %3.2f%%\n", OK / SUM * 100 exit }'
      
      



次のような結果がPassed: 93.62%



たす。 Passed: 93.62%







そしお、もっず䟿利な䟋



珟圚の1時間前に転送されたデヌタの量を蚈算したす

 cat access.log | grep `date +%H:%M -d "-1 hour"` | awk '{ total += $10 } END { print total/1024/1024 FS"MB" }'
      
      





転送されたデヌタの合蚈量を蚈算したす

 awk '{ total += $10 } END { print total/1024/1024 FS"MB" }' access.log
      
      





平均リク゚スト凊理時間を蚈算したす

 #!/bin/bash COUNT=`wc -l access.log` SUM=`cat access.log | awk '{ total += $16 } END { print total }' ` awk -v COUNT="$COUNT" -v SUM="$SUM" ' BEGIN { printf "Average req-time %3.2fs\n", SUM / COUNT exit }'
      
      







システム起動蚺断


サヌバヌのビゞヌ状態を理解するために、いく぀かのナヌティリティがありたす。たず、負荷平均むンゞケヌタヌによっお負荷を評䟡できたす。Habréでは、これはそれぞれ、1分、5分、15分間、リ゜ヌスの受信を埅機しおいるブロックプロセスの数で衚される平均システム負荷のむンゞケヌタヌであるず既に曞いおいたす。

珟圚のサヌバヌ負荷を評䟡し、どのプロセスがサヌバヌをより倚くロヌドしおいるかを確認するのに圹立぀最初のこず-topたたはhtop

top -Linuxプロセスの衚瀺-さらに、皌働時間、負荷平均、進行䞭のタスクずスレッドの数を衚瀺したす。

CPUパフォヌマンスパヌセンテヌゞ

-us-凊理の優先順䜍を倉曎せずにナヌザヌの実行に費やした時間マむナス、

-sy-システムカヌネルプロセスの実行に費やされた時間、

-ni-凊理の優先順䜍が倉曎されたナヌザヌ定矩のものniceに費やされた時間、

-wa-入力/出力のタむムアりトディスクサブシステム、

-hi-ハヌドりェア割り蟌みの凊理時間、

-si-゜フトりェア割り蟌みの凊理時間、

-st-別の仮想マシンでタスクを凊理するためにハむパヌバむザヌによっお「盗たれた」時間-仮想マシンVPS / VDSに関連し、ホストの誠実さを評䟡するのに圹立ちたす。このむンゞケヌタヌが倧きい堎合、プロバむダヌは露骚に売られおいたす。

たた、topは䞀般に消費されるメモリの量ずその理由プロセス、キャッシュ、バッファを瀺し、各プロセスが消費する量も瀺したす。

-VIRT-コヌド、デヌタ、共有ラむブラリ、スワップにダンプされたメモリペヌゞ、予玄されおいるが䜿甚されおいないメモリペヌゞなど、プロセスが䜿甚するメモリ量を衚瀺したす。

-RES-垞駐メモリサむズ-プロセスが䜿甚するRAMの珟圚の量スワップなし、

-SHR-共有メモリのサむズ-原則ずしお、このメモリすべおが垞駐しおいるわけではない、プロセスで䜿甚可胜なRAMの珟圚の量。 この数倀は、他のプロセスず共有できるメモリの量を衚瀺するだけです。

システムリ゜ヌスの䜿甚状況を瀺すむンゞケヌタを衚瀺するこずに加えお、topはプロセスを操䜜するためにも䜿甚され、シグナルを送信しおプロセスを終了したり、その優先床を倉曎したりするこずができたす。

htop - topのよりカラフルなバヌゞョン-topず同じ機胜をすべお備えおいたすが、より䜿いやすいむンタヌフェむスプロセスのリストを垂盎および氎平の䞡方にスクロヌルできたすがあり、遞択したプロセスのlsof、straceおよびltraceを呌び出すこずもできたすそれらに぀いおは埌で詳しく説明したす詳现に説明したす。

ディスクI / Oサブシステムの負荷を評䟡するには、iotopナヌティリティを䜿甚できたす。

iotop-ディスク負荷を監芖するためのトップラむクなナヌティリティで、次のようなディスクI / Oの珟圚のむンゞケヌタずずもにプロセスのテヌブルを衚瀺したす。

-PRIO-プロセスの優先床、

-ディスク読み取り-ディスクバむト/秒から読み取り、

-ディスク曞き蟌み-ディスクぞの曞き蟌みバむト/秒、

-SWAPIN-プロセスがスワップに費やした時間パヌセンテヌゞ、

-IO-入出力の埅機にプロセスが費やした時間パヌセンテヌゞ。

さらに、ディスクサブシステムの読み取り/曞き蟌みビットレヌトの合蚈に関する情報が衚瀺されたす。

vmstat-プロセス、メモリ、入力/出力、プロセッサずディスクのアクティビティに関する抂芁情報を衚瀺したす。 iotopずは異なり、スヌパヌナヌザヌ特暩は必芁ありたせん。



プログラム障害の蚺断、トラブルシュヌティング

プログラムやデヌモンが期埅どおりに動䜜しない堎合や、䜕らかの理由でクラッシュする堎合がありたす。 すべおのログが衚瀺されるずきたたはログがないずき、すべおの蚭定がチェックされ、ドキュメントが再読されたすもちろんある堎合、システムトレヌスのナヌティリティはstaceを呌び出し、ltraceが助けになり、lsofは開いおいるファむルのリストを衚瀺したす

strace-ナヌティリティを䜿甚するず、実行䞭のプロセスたたは既に実行䞭のプロセスのシステムコヌルずシグナルをPIDによっおむンタヌセプトできたす。

出力はフィルタリングできたす。たずえば、openたたはselect呌び出しのみが出力されたす。 呌び出しが負でない倀を返した堎合、たずえば次の堎合はすべお正垞です。

open("/foo/bar", O_RDONLY) = -1 ENOENT (No such file or directory)



から、アプリケヌションが存圚しないファむルを開こうずしおいるこずがわかりたす。 たた、ファむルのアクセス蚱可が正しく蚭定されおいないこずもありたす。 たずえば、ハむパヌバむザヌは必芁な量のRAMを割り圓おるこずができないため、仮想マシンは起動したせん。 Straceは、このような状況で圹立ちたす。

このサヌビスたたはそのサヌビスがどのように機胜するか、どのシステムがそれを䜿甚するかを確認したいだけなら、staceがあなたの友人です。 たずえば、ApacheがNginxず根本的にどのように異なるかを調べたい堎合は、芋おください。

ltrace-ラむブラリ呌び出しをトレヌスするためのナヌティリティ-straceに非垞に䌌おいたすが、動的ラむブラリぞの呌び出しのみをむンタヌセプトしたす。

ldd-プログラムで蚭定するず、ラむブラリを䜿甚するプログラムが衚瀺されたす。 プログラムをchrootに転送する必芁がある堎合に䟿利です。

lsof-開いおいるファむルのリストを衚瀺ずずもに衚瀺したす。デフォルトでは、すべおを行で衚瀺したす。 PIDhtopで非垞に䟿利な出力による特定のプロセス、UIDによるナヌザヌ、たたは特定のファむルを䜿甚するプロセスなどをリストできたす。

堎合によっおは圹に立぀かもしれたせん。 説明ず䟋で非垞に詳现な男がいたす。



他に䌝えるこずは䜕ですか


次の蚘事では、機噚、ネットワヌク、監芖および自動化ツヌルを蚺断するためのナヌティリティに぀いお説明したす。

トピックは本圓に倧容量で興味深いので、コメントであなたの個人的な経隓から興味深い䟋を芋るこずができたす。



継続するには...



UPD sledopitから正垞に凊理されたリク゚ストの割合を蚈算するためのより適切なオプション

 awk '{sum+=1; if ($9==200) ok+=1} END {printf "Passed: %3.2f%%\n", ok / sum * 100}' access.log
      
      





そしお、 RumataEstoraのSUMの代わりにビルトむンNR倉数を䜿甚したさらにシンプルなオプション

 awk '$9 == 200 { s++ } END { print s / NR * 100; }' access.log
      
      






All Articles