このチュートリアルでは、Graylog v1.3.x(Graylog2と呼ばれることもあります)をUbuntu 14.04にインストールし、システムのsyslogを一元化された場所に収集するように構成する方法を示します。 Graylogは、SSHログインや異常なアクティビティの監視からアプリケーションのデバッグまで、多くのユースケースを備えた強力なログ管理および分析ツールです。これは、Elasticsearch、Java、および[MongoDB](https://cloud.tencent.com/product/mongodb?from=10680)に基づいています。
Graylogを使用してさまざまなログを収集および監視できますが、このチュートリアルの範囲はsyslogコレクションに限定されています。また、Graylogの基本を示しているため、すべてのコンポーネントを1つのサーバーにインストールします。
Graylogには4つの主要なコンポーネントがあります。
以下は、Graylogコンポーネントの概略図です(メッセージは他のサーバーから送信されることに注意してください)。
このチュートリアルでは、非常に基本的なGraylogセットアップを実装し、すべてのコンポーネントを同じサーバーにインストールします。大規模な実稼働設定の場合、パフォーマンス上の理由から、コンポーネントを異なるサーバーにインストールすることをお勧めします。
このチュートリアルで説明するセットアップには、少なくとも2GBのRAMを備えたUbuntu14.04サーバーが必要です。ルートアクセスも必要です。サーバーを持っていない学生は[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には無料のTencent Cloud [開発者ラボ](https://cloud.tencent.com/developer/labs?from=10680)を使用して実験し、インストールを学ぶことをお勧めします次に、[購入サーバー](https://cloud.tencent.com/product/cvm?from=10680)。
RAMが2GB未満のVPSを使用している場合、すべてのGraylogコンポーネントを起動することはできません。
ソフトウェアをインストールしましょう!
MongoDBのインストールは簡単で迅速です。次のコマンドを実行して、MongoDBパブリックGPGキーをaptにインポートします。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
MongoDBソースリストを作成します。
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse"| sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
aptパッケージデータベースを更新します。
sudo apt-get update
次のコマンドを使用して、MongoDBの最新の安定バージョンをインストールします。
sudo apt-get install mongodb-org
これで、MongoDBが稼働しているはずです。引き続きJavaをインストールしましょう。
ElasticsearchにはJavaが必要なので、今すぐインストールします。 Elasticが推奨しているため、Oracle Java8をインストールします。ただし、このルートを使用する場合は、OpenJDKで機能するはずです。
sudo add-apt-repository ppa:webupd8team/java
aptパッケージデータベースを更新します。
sudo apt-get update
このコマンドを使用して、Oracle Java 8の最新の安定バージョンをインストールします(そしてポップアップライセンス契約に同意します)。
sudo apt-get install oracle-java8-installer
Javaがインストールされたので、Elasticsearchをインストールしましょう。
Graylog 1.xはElasticsearchのバージョン2.0でのみ使用できるため、Elasticsearch 1.7.xをインストールします。Elasticのパッケージソースリストを追加することで、パッケージマネージャーを使用してElasticsearchをインストールできます。
次のコマンドを実行して、Elasticsearchの公開GPGキーをaptにインポートします。
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
プロンプトがそこでハングする場合は、ユーザーパスワードを待機している可能性があります( sudo
コマンドを承認します)。その場合は、パスワードを入力してください。
echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main"| sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.x.list
aptパッケージデータベースを更新します。
sudo apt-get update
次のコマンドを使用してElasticsearchをインストールします。
sudo apt-get-y install elasticsearch
Elasticsearchがインストールされました。構成を編集しましょう:
sudo vi /etc/elasticsearch/elasticsearch.yml
指定された cluster.name
パーツを見つけます。以下に示すように、コメントを外してデフォルト値を「graylog-development」に置き換えます。
cluster.name: graylog-development
Elasticsearchインスタンス(ポート9200)への外部アクセスを制限して、部外者がHTTP APIを介してデータを読み取ったり、Elasticsearchクラスターをシャットダウンしたりできないようにする必要があります。指定された network.host
行を見つけてコメントを外し、その値を「localhost」に置き換えて、次のようにします。
network.host: localhost
elasticsearch.yml
を保存して終了します。
次にElasticsearchを開始します。
sudo service elasticsearch restart
次に、次のコマンドを実行して、起動時にElasticsearchを開始します。
sudo update-rc.d elasticsearch defaults 9510
しばらくしてから、次のコマンドを実行して、Elasticsearchが正しく機能しているかどうかをテストします。
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Elasticsearchが稼働しているので、Graylogサーバーをインストールしましょう。
他の必要なソフトウェアをインストールしたので、Graylogのサーバーコンポーネント graylog-server
をインストールしましょう。
まず、次のコマンドを使用して、GraylogDebianパッケージをホームディレクトリにダウンロードします。
cd ~
wget https://packages.graylog2.org/repo/packages/graylog-1.3-repository-ubuntu14.04_latest.deb
次に、次のコマンドを使用して、パッケージをパッケージマネージャーに追加します。
sudo dpkg -i graylog-1.3-repository-ubuntu14.04_latest.deb
次に、次のコマンドを使用して graylog-server
パッケージをインストールします。
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get install graylog-server
pwgenをインストールします。これを使用して暗号化キーを生成します。
sudo apt-get install pwgen
次に、管理者のパスワードとキーを構成する必要があります。パスワードキーは、* server.conf *の password_secret
パラメーターによって構成されます。次の2つのコマンドを使用して、ランダムキーを生成し、Graylog構成に挿入できます。
SECRET=$(pwgen -s 961)
sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/'/etc/graylog/server/server.conf
shasum
を指定するためのパスワードを作成し、それを root_password_sha2
で説明されているGraylog構成ファイルのパラメーターに割り当てることにより、管理者パスワードを割り当てることができます。次のコマンドを使用して、必要なパスワードのシャサムを作成し、強調表示された「パスワード」を独自のパスワードに置き換えます。 sedコマンドは、それをGraylog構成に挿入します。
PASSWORD=$(echo -n password | shasum -a 256| awk '{print $1}')
sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/'/etc/graylog/server/server.conf
管理者パスワードが設定されたので、Graylog構成を開いて、いくつかの変更を加えましょう。
sudo vi /etc/graylog/server/server.conf
上記の手順で実行したコマンドのため、 password_secret
と root_password_sha2
にはランダムな文字列が含まれていることがわかります。
次に、GraylogWebインターフェイスがサーバーと通信する方法である rest_transport_uri
を構成します。すべてのコンポーネントを単一のサーバーにインストールするため、値を「127.0.0.1」または「localhost」に設定しましょう。 rest_transport_uri
を見つけてコメントを外し、次のように値を変更します。
/etc/graylog/server/server.conf - 1/4
rest_transport_uri = http://127.0.0.1:12900/
次に、(このサーバーで実行されている)Elasticsearchシャードが1つしかないため、 elasticsearch_shards
の値を1に変更します。
elasticsearch_shards =1
次に、 elasticsearch_cluster_name
の値を" graylog-development "(Elasticsearch cluster.name
と同じ)に変更します。
elasticsearch_cluster_name = graylog-development
Elasticsearchインスタンスを検出するために、マルチキャストの代わりにユニキャストを使用するには、次の2行のコメントを解除します。
/etc/graylog/server/server.conf - 4 of 4
elasticsearch_discovery_zen_ping_multicast_enabled =false
elasticsearch_discovery_zen_ping_unicast_hosts =127.0.0.1:9300
保存して終了。これで、 graylog-server
が構成され、開始する準備が整いました。
serviceコマンドを使用して、Graylogサーバーを起動します。
sudo start graylog-server
次のステップは、GraylogWebインターフェースをインストールすることです。今やりましょう!
次のコマンドを使用してGraylogWebをインストールします。
sudo apt-get install graylog-web
次に、Webインターフェイスのキーを構成する必要があります。これは** web.conf **の application.secret
パラメーターです。 Graylogサーバー構成で行ったように別のキーを生成し、次のようにsedを使用して挿入します。
SECRET=$(pwgen -s 961)
sudo -E sed -i -e 's/application\.secret=""/application\.secret="'$SECRET'"/'/etc/graylog/web/web.conf
次に、次のコマンドを使用してWebインターフェイス構成ファイルを開きます。
sudo vi /etc/graylog/web/web.conf
次に、Webインターフェイスの構成を更新して、 graylog2-server.uris
パラメーターを指定する必要があります。これは、サーバーRESTURIのコンマ区切りのリストです。 Graylogサーバーノードは1つしかないため、この値は rest_listen_uri
Graylogサーバー構成の値と一致する必要があります。
/etc/graylog/web/web.confの抜粋
graylog2-server.uris="http://127.0.0.1:12900/"
これで、GraylogWebインターフェイスが構成されました。 GraylogWebインターフェイスを起動します。
sudo start graylog-web
これで、GraylogWebインターフェイスを使用できます。今からやります。
お気に入りのWebブラウザーで、サーバーのパブリックIPアドレスの「9000」ポートに移動します。
In a web browser:http://graylog_public_IP:9000/
ログイン画面が表示されます。前に設定したユーザー名と管理者パスワードを admin
に入力します。
ログインすると、次のように表示されます。
上部の赤い数字は通知です。クリックすると、実行入力のないノードがあることを示すメッセージが表示されます。 UDPでsyslogメッセージを受信するための入力を追加しましょう。
システムログメッセージを受信するための入力を追加するには、トップメニューの[システム]ドロップダウンリストをクリックします。
次に、ドロップダウンメニューから[入力]を選択します。
ドロップダウンメニューから[** Syslog UDP **]を選択し、[新しい入力の起動]ボタンをクリックします。
「Startnewinput:* SyslogUDP *」モードウィンドウがポップアップ表示されます。次の情報を入力します(サーバーのプライベートIPアドレスのバインディングアドレスを置き換えます)。
syslog
8514
graylog_private_IP
次に、[起動]をクリックします。
以下に示すように、ローカル入力セクションに「syslog」という名前の入力が表示されます(横に「実行中」の緑色のボックスがあるはずです)。
これで、Graylogサーバーは、サーバーからポート 8514
でシステムログメッセージを受信する準備ができました。システムログメッセージをGraylogにすぐに送信するようにサーバーを構成しましょう。
すべてのクライアントサーバーで、システムログメッセージをGraylogのサーバーに送信するには、以下の手順に従います。
/etc/rsyslog.dにrsyslog構成ファイルを作成します。 90-graylog.conf
と呼びます。
sudo vi /etc/rsyslog.d/90-graylog.conf
このファイルに、次の行を追加して、システムログメッセージをGraylogサーバーに送信するようにrsyslogを構成します( graylog_private_IP
をGraylogサーバーのプライベートIPアドレスに置き換えます)。
/etc/rsyslog.d/90-graylog.conf
$template GRAYLOGRFC5424,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"*.* @graylog_private_IP:8514;GRAYLOGRFC5424
保存して終了。今後、このファイルはrsyslog構成の一部としてロードされます。ここで、変更を有効にするためにrsyslogを再起動する必要があります。
sudo service rsyslog restart
監視対象のすべてのサーバーでrsyslogの構成が完了したら、GraylogWebインターフェイスに戻ってください。
お気に入りのWebブラウザーで、サーバーのパブリックIPアドレスの「9000」ポートに移動します。
In a web browser:http://graylog_public_IP:9000/
トップバーの「ソース」をクリックします。 rsyslogで構成されているすべてのサーバーのリストが表示されます。
ソースのホスト名は左側にあり、Graylogによって受信されたメッセージの数は右側にあります。
一定期間Graylogにメールを収集させると、メールを検索できるようになります。たとえば、「sshd」を検索して、サーバーでどのようなSSHアクティビティが発生しているかを確認しましょう。結果の抜粋は次のとおりです。
ご覧のとおり、検索結果の例には、さまざまなサーバーのsshdログと、失敗したルートログイン試行の数が表示されます。結果は異なる場合がありますが、権限のないユーザーがサーバーにアクセスしようとしている方法など、多くの問題を特定するのに役立ちます。
すべてのソースの基本的な検索機能に加えて、特定のホストのログまたは特定の時間範囲内のログを検索することもできます。
たとえば、イベント後に1つまたは複数のサーバーのログを表示する場合、Graylogでデータを検索すると非常に便利です。一元化されたロギングにより、複数のサーバーにログインしなくても発生したすべてのイベントを表示できるため、関連するイベントの関連付けが容易になります。
検索バーの動作の詳細については、公式ドキュメント[Graylog Search](http://docs.graylog.org/en/1.3/pages/queries.html)を確認してください。
グレイログを設定したので、グレイログが提供する他の機能を自由に閲覧してください。他のタイプのログをGraylogに送信し、エクストラクタを設定して(または、logstashなどのソフトウェアを使用してログを再フォーマットして)、ログをより構造化して検索できるようにすることができます。コンポーネントを分離し、冗長性を追加してパフォーマンスと可用性を向上させることにより、Graylog環境を拡張することもできます。
その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。
参照:「Ubuntu14.04にGraylog1.xをインストールする方法」
Recommended Posts