1ランク上のサーバー管理者になるためには?
サーバー管理者のピンチはチャンスとして考える
1回目を担当した馬場です。再びこんにちは。連載の4回目は管理にまつわるいくつかの内容について、前向きで明るい話をしたいと思います。
サーバー管理者であれば誰でも、日々の運用、監視、管理やシステムの手直し、トラブル対応などに追われていると思います。
システムが利用されている限り、望む望まないにかかわらず新たな要求が生まれますし、トラブルも発生するからです。
ところで、とかく私はものぐさで飽きっぽいので、常に外部からの刺激に飢えているのですが、そんな私にとって、トラブルは刺激そのものです。刺激に対して対処し、再発しないよう手を打つところまでキッチリとやっつけるよう心がけています。
キッチリやっつけられればとても爽快(そうかい)。逆に打ち負かされたら反省しきり。でも失敗から学ぶことも多く、それはそれでとてもためになります。
……と、かなりわざとらしく大げさに書いてみましたが、実際に障害対応を本気で続けていると、要求・要望(アラートを含む)に応えてサービスを育てているうちに自分が育っていた、という結果になります。
運用、監視、管理の現場では、ともすると「何も起きないでくれ~」とお祈りしたくなりがちですが、祈るだけでは成果は出ませんし、実はみすみすパワーアップのチャンスを逃しているのです。運用、監視、管理の現場はとかく暗くなりがちですが、必要以上に気負わず前向きに日々を過ごしましょう。
弊社では違いますが、運用、監視、管理の現場は、なぜか減点法で評価されることが多いようです。減点法で評価される場合、チャレンジして難易度の高い課題に取り組むのはかなり勇気がいる判断です。
減点法でしか評価できない人は、はっきり言って相手にする必要ありません。恋人も結婚相手も、減点法の人と長く付き合うのは無理ですよね。会社も一緒です。サヨナラするのが賢明です。
チャレンジせずに高評価を獲得するのもひとつの生き方ですが、それはとてももったいないことだと私は思います。チャレンジする対象があり、成長するチャンスが目の前にあるのであればぜひ取り組んでみてください。
チャレンジすることで知識が深まり、経験が豊かになります。チャレンジしたあなたには、次のような力が備わっていることでしょう。
・対象領域に対する深い知識
・トラブルを切り分け、原因を特定する深い洞察力・思考力
・トラブル中でも取り乱さず、冷静に対応する判断力
・トラブルを解決するために勇気をもって進める決断力
そしてその結果は、サーバー管理者としての自信と誇りとして、間違いなく自分に返ってきます。
手早く問題を解決するためのワンライナー(1行プログラム)
とはいえ、オールも舵もない状態で大海原にこぎ出すのは、現実的にはかなり厳しいと思います。そこで、典型的な問題のパターンとその時の思考法について何点かご紹介します。
まずは定番のワンライナー(1行のシンプルなプログラム)です。 Linux(UNIX)サーバーの場合、シェルが使えるのがとても便利ですよね。
例えば、「どのIPアドレスからのアクセスが多いか確認して、アタックがきているようであれば接続元をブロックしたい」というケースの場合、私であれば下記のようなワンライナーを使って状況を確認します。
$ netstat -ntu |grep '^\(t\|u\)'|awk '{print $5,$6}'|sed "s/:[^ ]\+//"|sort|uniq -c|sort -nr|head -n 10
これを細かく見てみると、以下のようになっています。
・netstat -ntu: netstatで外部アドレス、状態を取得
・|grep '^\(t\|u\)': tかuで始まる行を抽出(ヘッダ部分などを排除)
・|awk '{print $5,$6}': 外部アドレス、状態のみを表示
・|sed "s/:[^ ]\+//": ポート番号部分を削除
・|sort|uniq -c|sort -nr|head -n 10: top10を表示
ワンライナーを書く時のポイントは以下のとおりです。
・まずコマンドのオプションで知りたい情報が得られるかどうか、 manを一度さっと読んで確認する
・コマンドのオプションで対応できない場合、すぐに頭を切り替える
・フォーマットや実行効率にこだわりすぎない
何度かやっていると、自然と手になじんでスムーズに書けるようになるはずです。このような「ちょっと便利なワンライナー」を手元に置いておくととても便利です。
管理するサーバーが限られている場合には、エイリアスに登録する・コマンドを作るなどで省力化すると、さらに楽になるでしょう。
ワンライナーは「入力に対して処理を実施して結果を出力する」という、プログラミングの基本をシンプルに実施するだけでスゴいことができてしまいます。ぜひ活用してください!
※Think IT編集部注(2009.08.10):文中のコードに一部誤りがありましたため、修正しました。
文中に誤りがありましたこと、お詫び申し上げます。
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Canonical、Windows 10でUbuntuのbashシェルを実行する「Ubuntu on Windows」を発表
- Debian開発者からユーザーまで集合 Mini Debian Conference 2016 Japanが開催
- AIがどのようにIT運用とDevOpsを変えるのか(1)
- メルカリファンド等から4億円調達したジラフに、優秀な人材と未経験者が集まる理由|株式会社ジラフ麻生氏・佐々木氏
- サーバー管理者の目/管理・監視・アーキテクト
- 新搭載のGRUB 2とCentOS 7でのレスキューモード
- 「IoTセキュリティ」に関する問題への対策
- Azure Data Explorerができることを理解する
- RHCE合格指南- 後編
- MySQLのチューニングを戦う方へ