ログを知る〜IISとApache、NGINXのログ
- On 2019年10月16日
この記事を読んでいる方は、おそらく1980年代から使用されているロギングツールであるsyslogに精通していることでしょう。ほとんどのLinuxベースのオペレーティングシステムに存在するデーモンです。
デフォルトでは、Linuxシステムのsyslog(およびrsyslogなどの派生アプリ)を使用して、ログをsyslogサーバや監視プラットフォームに転送して、さらに分析を行うことができます。これは便利ですが、syslogを最大限に活用するには、ログデータを分析できるようにする必要もあります。
そこで、ここではローカルのシステムログを取得し、Sumo Logicコレクターを使用してSumo Logicに転送するプロセスを説明します。
また、syslogやrsyslogデーモンを使用して、サーバからログを送信する方法も示します。
ログをSumo Logicにストリーミングできるようにするには、まずパッケージにサインアップする必要があります。有料のオプションもありますが、Sumo Logicのテストとして、ストリーミングするログの量を少なくし、1日最大500Mバイトまでならば無料で使えるオプションがあります。サインアップすると、次のようなページが表示され、ログファイルをアップロードするか、ストリーミングログにすぐにジャンプするかを選択します。ここでは後者のオプションを選択します。
「Set Up Streaming Data」ボタンをクリックすると、Linux、Windows、あるいはMacからAWS環境をすぐに開始できるオプションが表示されます。
今回はLinuxを選択します。これにより、次のような簡単なコマンドでSumo Logicコレクターをデプロイできます。
sudo wget 'https://collectors.de.sumologic.com/rest/download/linux/64' -O SumoCollector.sh && sudo chmod + x SumoCollector.sh && sudo ./SumoCollector.sh -q -Vsumo.token_and_url=<unique_token>
コマンドを実行すると、コレクターがインストールされ、Sumo Logicに自動的に登録されます。この時点で、「Continue」をクリックできるようになります。
次に、データのソース情報を設定します。まず、ソースカテゴリーを設定します。これは、収集時に各メトリックの時系列に追加されるメタデータタグです。希望する任意の名前を設定できます。これを使用して、将来このソースからのメトリックを見つけることができます。
プロセスのこの時点で、データを収集するログファイルを設定することもできます。デフォルトでは、/var/log/secure*と/var/log/messages*がスクレイピング用に選択されています。もちろん、収集したい他のログファイルを追加できます。例えば、実行中にアプリが生成するログファイルです。
最後に、ログファイルのタイムゾーンを使用するか、無視して別のタイムゾーンを使用するかを選択できます。これで、「Continue」をクリックする準備ができました。ログのサイズが大きい場合には、Collectorが設定とデータを追加する間にコーヒーが1杯飲めるかもしれません。
完了すると次のように表示されます。
では、楽しい作業に移りましょう。ログを表示して、情報を検索します。「Linux System」という名前のページの上部にあるサンプル検索オプションを使用すると、サーバからストリーミングされたログを表示できます。「sumologic」という名前のログも含めるように検索クエリを修正しました。これがその結果です。
ホスト名、データ取得元のログファイル名、セットアップ中に設定した「linux/system」というカテゴリーが表示されます。
また、ログイン時に一般的な情報を表示できる便利なダッシュボードもあります。もちろん、ログの情報に基づいてこれを変更し、新しいグラフを追加できます。これは、アプリケーションのHTTPエラーの詳細など、さまざまな機能に使用できます。たとえばメールサーバならば、バウンスや拒否されたメールの数を表示できます。
Syslogソースを追加するには、Sumo Logicコントロールパネルで新しいソースを設定します。これを行うには、「Manage Data」→「Collection」→「Collection」に移動します。次に、「Add」→「Add Source」→「Syslog」をクリックします。ここでは、プロトコル(TCPまたはUDP)とポート番号とともにsyslog名を指定します。この記事では、ポート1514でUDPを選択しました。linux/syslogのソースカテゴリーを使用することにしました。ここで「Save」をクリックします。コレクターがサーバのUDPポート1514をリッスンしているサービスが表示されます。
この時点で、コレクターの新しいリスナーにログを送信するようsyslogを設定する準備が整いました。設定にはsyslogまたはrsyslogの設定ファイルを編集します。この場合、後者は/etc/rsyslog.confです。このログファイルの最後に、コメントアウトされた行があります。
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###
この行のコメントを外し、IPアドレスとポートを変更して、rsyslogが保持するすべてのログ(*.*)を新しいリスナーに送信します。
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
*.* @127.0.0.1:1514
# ### end of the forwarding rule ###
ログ送信にTCPではなくUDPを使用するようにrsyslogに指示する「@」をIPアドレスの先頭に付加してください。
ここで説明したアプローチを採用する理由は次の通りです。
組織内の中央syslogサーバにコレクターをセットアップし、すべてのログをSumo Logicに転送することができます。このアプローチの利点は、すべてのサーバに個別にコレクターをインストールする必要がないため、非常に多くのソースからのトラフィックを許可するために企業のファイアウォールを開ける必要がないことです。
Sumo Logicは、大規模な組織に存在する可能性のある制限を回避するために、リスナーを独自の環境に拡張できる包括的なクラウドソリューションを提供します。これにインターフェイス、合理化されたセットアッププロセス、ダッシュボードを組み合わせることで、非常に競争力のあるソリューションとなり、ログを積極的に監視し、お客様に影響を与える前に問題を発見できます。
キース・ロジャースは、10年以上の経験を持つITプロフェッショナルで、現在は英国の大手放送会社で働いています。彼の長年にわたるコンピューティングへの情熱は、いくつもの業務外の活動をうながし、彼の知識を深め関心を高めることにつながりました。
キースは長年Linux上でApache、MySQL、PHPを使用して完全なWebスタックを構築し、高可用性に適したより複雑な負荷分散と冗長ソリューションを作成してきました。過去2、3年、彼はAWSやAzureが提供する新しいクラウドベースのインフラストラクチャを使用して、同様の目標を達成しています。
" target="_blank">コンテナとサーバレスコンピューティングは、今日のアプリケーションのデプロイで最もホットなテクノロジーです。正しい方法で使用すると、素早く費用対効果の高いデプロイができるようになります。
コンテナとサーバレスアーキテクチャの機能はいくつかの点で重複していますが、互換できる技術ではありません。コンテナは、ある用途ではより適切に機能しますが、別の用途ではサーバレスのほうが望ましいことがあります。
この記事では、コンテナとサーバレスコンピューティングサービスの類似点と相違点について説明し、DevOpsチームがニーズに応じていずれかのテクノロジーを選択する理由を説明します。
簡単に言えば、コンテナは軽量の仮想化アーキテクチャです。これを使用すると、個別のアプリケーション(または場合によっては完全なオペレーティングシステム)を、移植可能な隔離された環境内に実装できます。
コンテナは、仮想オペレーティングシステムをエミュレートするのではなく、ホストサーバとシステムリソースを共有するため、仮想マシンよりも効率的です。
さらに、アプリケーションを外部ホスト環境から分離することにより、コンテナは摩擦のないアプリケーション展開を可能にします。ホストサーバがコンテナランタイムをサポートしていれば、コンテナ構成のアプリケーションをデプロイできます。アプリケーションの設定を調整したり、環境変数と格闘したりする必要はありません。同じ理由で、コンテナ化されたアプリケーションをホスト間で簡単に移動できます。
サーバレスコンピューティングは、アプリケーションコードがオンデマンドで実行されるアーキテクチャです。ユーザーの観点から見ると、コードを実行するために必要な作業は、コードをアップロードして、実行したい時にトリガーすることだけです。維持すべきサーバがない、それがサーバレスと呼ばれる理由です。
サーバレスの主な利点は、ホスト環境を継続的に維持することなく、ユーザーが必要なときにいつでもコードを実行できることです。これは、特にリソースを大量に消費するコードを実行する必要がある場合に、料金を節約するのに役立ちます。
コンテナとサーバレスは同一のテクノロジーではありません。ただし似た機能を提供します。
以上の類似点以外では、サーバレスとコンテナは別個のテクノロジーです。
コンテナとサーバレスの主な違いは次のとおりです。
上記の違いにより、コンテナとサーバレスは異なる用途に向いています。
コンテナは、次のことが必要な状況に最適です。
一方、サーバレスは次の場合に最適です。
コンテナ対サーバレスという観点から考えるよりも、コンテナとサーバレスを互いに補完するテクノロジーと考える方が良いでしょう。ほとんどの組織は、どちらか一方ではなく、コンテナとサーバレスの両方を使用する可能性があります。実際、両方のテクノロジーを使用して同じアプリケーションを提供することもできます。
コンテナ | サーバレス | |
ワークロードの分離 | ○ | ○ |
ステートフル機能/アプリか? | ○ | ほとんどの場合× |
ホスト環境 | クラウドまたはオンプレミス | ほとんどクラウド |
コスト | 自分で用意すれば無料 | クラウド料金が発生 |
サポートする言語 | 実質的に全て | 限定的 |
永続的なサービス | ○ | × |
https://www.sumologic.com/blog/serverless-vs-containers/
Kalyanはソフトウェアおよびマーケティングで20年以上の経験を持ち、IT運用とマーケット管理について深く理解しています。
Sumo Logicの前は、AppDynamicsの製品マーケティング担当副社長でした。また、CrittercismのCMO、Electric Cloudのマーケティング担当副社長、Opsware/HPの製品マーケティングのシニアディレクターも務めました。
KalyanはIntelでキャリアをスタートし、スタンフォードビジネススクールのMBAを取得しています。
" target="_blank">