Linuxネットワークおよびシステム管理のためのツールキットと習慣[非公開]


20

私は、小規模オフィスのネットワークと、ほとんどがDebianとUbuntuを実行しているいくつかのワークステーションの管理を任されています。2つのサーバーがあります。1つはデータベースとプリントサーバー、もう1つはバックアップとファイルサーバーです。

Linuxである程度自分自身を助けるのに十分なことを知っているこの側面に比較的新しいので、この分野を学び、そうする間に効果的であるためにどのソフトウェアツールとタスク/習慣を使用/取得できるかを知りたいです。

何が最良であるかを知る必要はありません。初心者のシステム管理者が、適切なシステム管理に成長するための基礎として学び、使用するためのスターターパックとして使用できるものだけです。

私が必要とするのは、それらのいくつかの基本的なツールと、定期的に行う必要がある種類です。たとえば、どのログをチェックし、いつ、何を監視するか、開始する「正しい」場所の種類、そしてできることです必要な広告。


極端な主観的なトピック。「正しい」答えはどのように見えるでしょうか?
ビルヴァイス

回答:


16

1

ビジネスクリティカルなプロセスを監視する[たとえば、データベースが実行され、単純なクエリに応答する]、オペレーティングシステムの基本的なパラメーター[空きディスク領域、平均負荷]。たとえば、nagiosまたはzabbixを使用できます。

2

統計を収集して、いくつかのベースラインを確立します。将来、これはキャパシティプランニングに役立ちます。munin、zabbix、cactiなどを使用できます。

3

スケジュールされた自動バックアップを実行し、それらの一部をオフラインでオフサイトに保存します。それらが成功したかどうかを監視し、重要なデータを回復できるかどうかを時々手動で確認します。backupninjaを使用してそれらまたはZmandaを編成することもできますが、さらに便利なツールがあります。

4

資料。あなた自身のために。ドキュメントの不足が仕事の安全性を高めるとは思わないでください。それの欠如のために最初に苦しむのはあなたです、あなたはおそらく非常に早く物事を忘れるでしょう。

5

他のランダムなものから:

いくつかのスクリプト言語を学んでください-多分もう1つ知っていますか?perl / python / phpはタスクの自動化に使用でき、多くの場合、bashよりも複雑なタスクに適しています

あなたのツールを学んでください-それは無限のリストです... sshが最初に思い浮かぶでしょう。これそれをチェックしてください。


「それは無限のリストです...」-確かに。この質問をする前にグーグルで検索しましたが、圧倒されました。私はKISSを信じており、シンプルで簡単なベースから始めて、正しいことを学ぼうとしています。
スラッシュマイズ

1
ポイント1と4が最も重要であることを付け加えます。Puppetのような構成管理システムの使用をお勧めします。少なくとも、バージョン管理(git / svn)を使用する必要がありますが、Puppetはサービスを追加または再構築する必要がある場合、一度処理を行ってから繰り返し実行できるようにします。私はオーバーエンジニアリングも信じています。100台のマシンが必要なようにインフラストラクチャを構築する場合、10台のマシンを管理し、必要に応じてスケールアップする方が簡単です。
neoice

4
それは意見の問題だと思いますが、私はポイント3を最も重要だと思います。ええ、アカウンティングデータベースが半日ダウンするとダメですが、バックアップがない/不十分なためにすべての財務がなくなったときは本当にダメです。YMMV。
ジョーインターネット

@pQd-監視(nagios、opennmなど)とチケットシステムも追加します。驚くべきものである必要はありません。「todo」アイテムを保持する場所です。最終的には、必要なcaesを送信したり、他のチームのキューを開発したりする人々に拡張できます。
ウォーレン

Thomas Limoncelliによるシステム管理者のための時間管理を読んでください。電子メールを介して働くすべての人に読む必要があります。
ウォーレン

10

Limoncelliなどによるシステムおよびネットワーク管理の実践は、あなたが始めるべき場所です。テクノロジーは行き来します(必要に応じて簡単にグーグルで検索できます)が、その本の情報は時代を超越しています(そして貴重です)。


2
FrischによるEssential System Administrationも必要です。
ジェイソンアントマン

10

はじめにいくつかの基本的なツール

Google。真剣に。Googleはシステム管理者の夢です。インターネット上の膨大な量の情報を活用するためのより良い方法はありません。また、「初心者向けLinux」を検索するだけにとどまらないでください。達成しようとしている特定のタスクがある場合は、Googleがその特定のタスクを実行します。多くの場合、必要以上の情報が見つかります。初心者にとっては、多くの情報が別の言語のように見えますが、実践を通して学習することは、物事をすばやく理解するための良い方法です。

タブ補完。Linuxコマンドラインでは、すべてのコマンド、ディレクトリツリー、ディレクトリ名、およびファイル名のタブ補完が可能です。

マニュアルページ。すべてのコマンド、および多くのシステム構成ファイル(/ etc / fstab、/ etc resolv.confなど)にはマニュアルページがあります。「man command_name」または「man file_name」と入力するだけで、探しているものがあるかどうかを確認できます。ああ、「q」はマニュアルページを終了します。

SSH。Linuxシステムにアクセスする最良の方法の1つ。システムに物理的にアクセスできない場合は、おそらく最良の方法です。

画面。Screenは、1台の端末を多数の端末に変えたり、物事を邪魔にならないようにしたり、バックグラウンドに戻したり、実行中のままにしたりできるようにする素晴らしい小さなアプリケーションです。

ナノ。あなたはすでにこれを使用しているとあなたは言ったが、私はちょうど私の2セントを投げて、私が同意すると言うと思った。ViとVim、そしてそれらはすべて素晴らしいものですが、私が愛しているのはNanoのシンプルさです。Linuxの世界のメモ帳のようなものです。

Find and Grep。Findはファイルの検索最適で、Grepはファイルの検索最適です。どちらも非常に簡単な方法で使用でき、両方とも非常に複雑な方法で使用できますが、どちらも非常に便利です。

須藤。rootにならずに、rootのように振る舞えます。非常に便利。

さらに、次のセクションの文脈で言及する他のいくつかのツール...

定期的に行う必要のあること

システムを監視します。ディスク使用量の監視(dfは便利なコマンドであり、特定のディレクトリのduも)、実行中のプロセスとタスクの監視(psコマンドとtopコマンド経由)、システムにログインしているユーザーの監視(userとwhoコマンドはこれを教えてください)、ネットワークの使用状況を監視します(cactiのようなアプリはそのために適しています)。X Windows環境にアクセスできる場合、GKrellMが非常に便利なオールインワンシステム監視ツールであることが常にわかりました。

バックアップ。Tuxの愛のため、バックアップ。バックアップ構成ファイル、バックアップホームディレクトリ、バックアップアプリケーションデータ。バックアップ。たとえあなたがやっていることは、サーバーから別のボックスと外付けハードドライブ上のCIFS / NFS共有にデータを直接コピーするだけです。はい、各バックアップのコピーを2つ保持し、同じメディア/システムには決して保存しないでください。バックアップのバックアップと考えてください。

バックアップを確認してください。バックアップからシステムにデータを復元できることを定期的に確認してください。空/破損/不完全なバックアップは、1日が長いのと同じくらい役に立ちません。

ログファイルを使用します。Dmesg、/ var / log / messages、および/ var / log期間のほとんどすべてのもの。何かが正しく機能せず、その理由がわからない場合、ログには答えがないかもしれませんが、間違いなく見つけるのに役立ちます。また、/ var / log内のログとディレクトリには適切な名前が付けられているため、適切なログを見つけるのは難しくありません。すべてのログファイルを常に監視する必要はありませんが、それらを監視することで、システムを安全かつ安全に保つことができます。

システムを最新の状態に保ちます。構成ファイルの構文や依存関係が変更された場合、多くの頭痛の種になり、物事を壊す可能性があるため、ソフトウェアを更新せずに数か月間続けてはいけません。ディストリビューションごとに更新プログラム(apt-get、yumなど)が異なりますが、どちらを使用する場合でも、それを学習し、定期的に使用してください。

システムを安全に保ちます。iptables、PAM、hosts.allow / hosts.denyなどのようなものを使用して、システムへの望ましくないアクセスと使用を防ぎます。

学習を止めないでください。先ほど言ったこと(学習を通して)を続けるために、検討すべきことは仮想マシンです。VirtualBoxをダウンロードし(または、VMWareライセンスがさらに優れている場合)、自分自身をLinux仮想マシンにします。本当に必要なディストリビューションを選択できますが、明らかに、環境で使用しているディストリビューションを使用するのが最も理にかなっています。VMで遊んでください。サンドボックスのように使用します。ものを準備し、物事を壊し、調査し、学びます。サンドボックスVMの素晴らしい点は、何が起きても関係ないということです。完全にホースを使用する場合は、新しいホースを作成してください。または、セットアップ後に元のバックアップコピーを保持し、必要なときにいつでも再利用します。

このスレッドの他の投稿のいくつかが言及し、暗示しているように、これらのリストは実際にはほぼ無限である可能性がありますが、うまくいけば良いスタートを切ることができます。


例の「man」コマンドから構文を削除したため、少し調整しました。「command_name」と「file_name」を適切なコマンドまたはファイルに置き換えるだけです。
キングフィッシュ

時々、メモ帳で、ESC、:wqと入力していることがありますが、これはまれなケースではありません。なぜだろう...
ミルチャVutcovici

8

始めたばかりの場合、特にDebian(UbuntuはDebianのコアです)システムがあるため、Debian Referenceを強くお勧めします。これは、システム管理のほぼすべての側面の優れた概要であり、これらの小さなシステムのセットを維持するために知っておく必要があるほぼすべてをカバーするはずです。

また、pQdが作成したすべてのポイントに同意します。具体的には、ウィキを設定してすべてのプロセスと構成を文書化することをお勧めします。私の組織ではTracを使用していますが、どんなウィキエンジンでも使用する必要があります。小さなスクリプトやコマンドリストに役立つので、ソースコードを表示するのに良い方法があることを確認してください。


3

正直なところ、Linuxシステム管理は単に「ジャンプ」できる分野ではありません。

あなたがいる場合しなければならない、しかし、件名にいくつかの良い本があります。O'Reillyには2冊の本(Linux Network AdministrationとLinux System Administration)があり、それらを手始めにしています。

個人的には、私が数日間、さまざまなディストリビューションをいじったり、ソフトウェアをインストールしたり、Nagios / Cacti / Apache2 / SSH / NFSタイプのものを設定したり、おそらく何らかの種類のスクリプト言語を学んだりします(Perlを使用して、私自身ですが、多くの仲間の管理者はPythonの使用を好んでいます。しかし、あなたが何を学びたいかはあなた次第です。

そして、コマンドラインを確実に学んでください。松葉杖としてグラフィカルツールに頼らないでください。

viを学ぶ。基本的な編集を行うだけで十分であれば、それでも問題ありませんが、viを学ぶことが重要です。Vim/ Nano / Emacsのないシステムで動けなくなることがあるためです。そのような状況で、viを学習するのに1日か2日過ごしたことが幸せになります。

ヘルプが必要な場合は、お気軽にメールしてください(私のメールは[セキュリティ上の理由で削除されます])-ServerFault以外でサポートさせていただきます。


Perlを知っています。/ some / vi(挿入と保存と終了の方法-nanoを好む)を知っています。私の状況は幸いなことに「低圧力」の状況なので、システム管理者の第一人者になる必要はありません。それに成長することができます(そしてサーバー障害とあなた(信頼に感謝します)本当に行き詰まります(非常に役立つLUGにも属します)必要なのは、最初からいくつかの基本的なツールと、定期的に行う必要のある種類です。開始する必要があり、必要に応じて広告を掲載できる「正しい」場所のようなもの
slashmais

次に、Cacti、Nagios、Snort、およびPostfixのセットアップを検討することをお勧めします。これらはおそらく、システムの監視に最もよく使用する4つのツールです。これらを設定すると、ログファイルを手動で確認する時間を大幅に節約できます。手動でログをチェックする場合は、/ var / log /にあるものがおそらく適切です。指摘できる特定のファイルはありませんが、何かが適切に機能しない場合は、/ var / logをチェックすることをお
勧めし

昔々、私もナノ、スラッシュマイを好んでいました。常にファイルの編集を開始したら、viをさらに詳しく学習する必要があります。今ではそれを十分に取得することはできません...
カイルスミス

3

サーバーにアプリケーションをインストールすることに不安がない場合は、webminを使用すると、ほとんどのログと構成の「ワンストップ」ショップが提供されます。SSLを使用して高次のポートで実行するように設定すると、簡単に確認できます。


2

システム管理とネットワーク管理の最大の秘密を教えましょう。あなたは〜を用意する?わかりました、ここにあります:

基礎を学びます。詳しく説明させてください。

誰でも(またはほぼ)、このソフトウェアまたはその特定のソフトウェアが何をするか、およびそのツールでこのボタンを押してx、y、またはzを機能させる方法を学ぶことができます。それは特別なことではありません。

優れた sys / net管理者になりたい場合は、内部のことを学んでください。典型的なネットワーク接続のイベントのシーケンスは何ですか?フレームとパケットの違いは何ですか?Unixシステムでの負荷平均とはどういう意味ですか?マシンの典型的な起動プロセスは何ですか(最初から最後まで従えば、それだけで豊富な知識が得られます)。

基本を理解し、それらを非常によく理解すれば、優れた基盤の上に知識を置くことははるかに簡単です。しかし、トップから始めて、下に何が起こっているのかを知らずに特定のソフトウェアを学ぼうとすると、基本的には別のハイテク管理者になります。


2

まず、ログを見つけます。ほとんどのLinuxディストリビューションは/ var / log / messagesにログを記録しますが、/ var / log / syslogへのログがいくつか見られます。何かが間違っている場合、ログに関連情報が含まれている可能性があります。また、メールを扱う場合は、/ var / log / mailを忘れないでください。アプリケーションを再確認し、syslogの外で、それらのいずれかがとんでもないログに記録されていないか調べます。

viスキルを磨きます。Nanoは最近のすべてのクールな子供たちが使用しているものかもしれませんが、経験から、viはシステム上にあることが保証されている唯一のテキストエディタであることがわかりました。キーボードショートカットに慣れて、独自のトリガーの作成を開始すると、viはあなたにとって第二の自然のようになります。

manページを読んでから、各マシンで次のコマンドを実行し、結果をドキュメントにコピーします。

hostname
cat /etc/*release*
cat /etc/hosts
cat /etc/resolv.conf
cat /etc/nsswitch
df -h
ifconfig -a
free -m
crontab -l
ls /etc/cron.d
echo $SHELL

それがドキュメントの始まりとなります。これらのコマンドは環境を知らせ、後で問題を絞り込むのに役立ちます。

ログをGrepし、「エラー」または「失敗」を検索します。これにより、何が正常に機能していないかがわかります。ユーザーは、何が間違っているのかについて意見を述べ、彼らが言わなければならないことに耳を傾けます。彼らはシステムを理解していませんが、あなたとは異なる方法でそれを見ます。

問題が発生したら、次の順序で確認してください。

  1. ディスク容量(df -h):LinuxおよびLinux上で実行される一部のアプリは、ディスク容量が不足すると非常に奇妙な動作をします。ファイルシステムが100%満たされていることを確認して見つけるまで、無関係に見えるかもしれません。

  2. Top:Topを使用すると、使用可能なCPUサイクルをすべて使い果たしてしまっているプロセスがあるかどうかがわかります。長期間にわたってCPUを99%消費することはありません。それが正当なプロセスである場合、おそらく上下に変動するはずです。あなたがトップにいる間、チェックしてください...

  3. システム負荷:システム負荷は通常、標準のサーバーまたはワークステーションで3未満でなければなりません。システムの負荷は、CPU、メモリ、およびI / Oに基づいています。

  4. メモリ(無料-m):LinuxでのRAMの使用は少し異なります。ほとんどすべてのRAMが使い果たされたサーバーを見るのは珍しいことではありません。パニックにならないでください。これが表示された場合、ほとんどはキャッシュであり、必要に応じて消去されます。ただし、使用中のスワップの量には細心の注意を払ってください。可能であれば、これをできる限りゼロに近づけてください。メモリ不足は、あらゆる種類のパフォーマンスの問題につながる可能性があります。

  5.  ログ:ログに戻り、tail -500 / var / log / messages |を実行します。さらに読み進めて、何が起こっているのかを確認します。うまくいけば、ログは次に進む必要がある方向を示すことができます。

適切に保守されたLinuxサーバーは、何年も問題なく実行できます。748日間実行されていた1つをシャットダウンしましたが、アプリケーションを新しいハードウェアに移行したため、シャットダウンしただけです。うまくいけば、これがあなたの足を濡らし、良いスタートを切るのに役立つでしょう。

最後に、変更する設定ファイルのコピーを常に作成し、変更する行を常にコピーし、元のファイルをコメントアウトして、変更する理由を追加します。これにより、ドキュメントを作成する習慣が身に付き、9か月後に非表示になります。


1

良い質問。

私のアドバイス。シェルの使用方法を学びます。

標準はbashです。ヘルプを入力するだけで、ドキュメントにアクセスできます。

パイプ「|」を学ぶ 1つのコマンドから2番目のコマンドの入力への出力を取得します。

最後にもう1つ、 Linux One Page Manualがあります。

頑張って、決してあきらめないでください。

3〜4年で十分な知識が得られ、多くのことが自分自身から生まれます:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.