Graylogは、マシンログを一元的に収集、インデックス作成、分析するのに役立つオープンソースのログ管理ツールです。このガイドは、CentOS 7 /RHEL7にGraylogをインストールするのに役立ちます。
コンポーネント
- MongoDB –構成とメタ情報を保存するためのデータベースであること。
- Elasticsearch – Graylogサーバーから受信したログメッセージを保存し、必要に応じてそれらを検索する機能を提供します。 Elasticsearchは、データのインデックス作成を行うのと同じようにリソース管理者であるため、より多くのメモリを割り当て、SASまたはSANディスクを使用します。
- Graylogサーバー–これは、さまざまな入力からのログの解析を行い、それらのログを処理するための組み込みのWebインターフェイスを提供します。
前提条件
システムがEPELリポジトリで構成されていることを確認してください。
Graylogのインストールに必要なパッケージをインストールします。
yum -y install wget pwgen
Elasticsearchでは、Javaがマシンにインストールされている必要があります。したがって、OpenJDKまたはOracleJDKのいずれかをインストールします。
yum install -y java-1.8.0-openjdk-headless
Javaのバージョンを確認してください。
java -version
出力:
openjdkバージョン"1.8.0_191"OpenJDKランタイム環境(ビルド1.8.0_191-b12)OpenJDK 64ビットサーバーVM(ビルド25.191-b12、混合モード)
Elasticsearchをインストールする
Elasticsearchは、Graylogセットアップの重要なコンポーネントの1つです。これは、Graylog入力からのデータを保存し、ユーザーがGraylog組み込みWebインターフェイスを介して要求するたびにメッセージを表示します。
Elasticseachは主に、データ/ログのインデックスを作成し、GraylogWebインターフェイスが情報を要求したときに検索機能を提供するために使用されます。
このガイドでは、Graylogに必要な基本構成について説明します。
インストール前にGPG署名キーをインポートします。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
リポジトリファイルを作成して、公式リポジトリから最新バージョンのElasticsearchパッケージを取得します。
vi /etc/yum.repos.d/elasticsearch.repo
以下のコンテンツを上記のファイルに追加します。
[elasticsearch-6.x] name=6.xのElasticsearchリポジトリpackagesbaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/ GPG-KEY-elasticsearchenabled =1autorefresh =1type =rpm-md
次に、yumコマンドを使用してElasticsearchパッケージをインストールします。
yum install -y Elasticsearch
systemctlデーモンをリロードし、Elasticsearchがシステムの起動時に自動的に開始できるようにします。
systemctldaemon-reloadsystemctlはelasticsearchを有効にします
ElasticsearchをGraylogセットアップで機能させるには、クラスター名を graylog
に設定する必要があります 。 Elasticsearch.ymlファイルを編集します。
vi /etc/elasticsearch/elasticsearch.yml
以下のように更新してください。
cluster.name: graylog
Elasticsearchを再起動します。
systemctl restart Elasticsearch
Elasticsearchが完全に再起動するまでしばらくお待ちください。 Elastisearchは、HTTPリクエストを処理するために9200をリッスンしているはずです。 CURLコマンドを使用して応答を確認します。
curl -X GET http:// localhost:9200
クラスタ名は灰色のログである必要があります。
{"name": "DF8QK3-"、 "cluster_name": "graylog"、 "cluster_uuid": "_ wAgUfN9RJeQ0npCKBswVA"、 "version":{"number": "6.6.0"、 "build_flavor": "default "、" build_type ":" rpm "、" build_hash ":" a9861f4 "、" build_date ":" 2019-01-24T11:27:09.439740Z "、" build_snapshot ":false、" lucene_version ":" 7.6.0 " 、"minimum_wire_compatibility_version": "5.6.0"、 "minimum_index_compatibility_version": "5.0.0"}、 "tagline": "You Know、for Search"}
Elasticsearchクラスターのヘルスチェックを実行します。
curl -XGET'http:// localhost:9200 / _cluster / health?pretty =true'
クラスタのステータスが緑になっていることを確認してください 。
{"cluster_name": "graylog"、 "status": "green"、 "timed_out":false、 "number_of_nodes":1、 "number_of_data_nodes":1、 "active_primary_shards":0、 "active_shards":0、 "relocating_shards":0、 "initializing_shards":0、 "unassigned_shards":0、 "delayed_unassigned_shards":0、 "number_of_pending_tasks":0、 "number_of_in_flight_fetch":0、 "task_max_waiting_in_queue_millis":0、 "task_max_waiting_in_queue_millis":0、 "task_max_waiting_in_queue_millis":0 pre>MongoDBをインストールします
MongoDBは、構成とメタ情報を格納するデータベースとして機能します。 MongoDBの公式リポジトリを使用して、MongoDBの最新バージョンを取得します。
vi /etc/yum.repos.d/mongodb-org-4.0.repo上記のファイルにリポジトリ情報を追加します。
[mongodb-org-4.0] name =MongoDB Repositorybaseurl =https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https:// www.mongodb.org/static/pgp/server-4.0.asc次のコマンドを使用して、MongoDBのコミュニティエディションをインストールします。
yum install -y mongodb-orgMongoDBサービスを開始し、システムの起動時に有効にします。
systemctl start mongodsystemctl enable mongodGraylogをインストールする
Graylogサーバーは、さまざまな入力からのログメッセージを受け入れて処理し、graylogWebインターフェイスからのリクエストにデータを表示します。
graylog3.xリポジトリをダウンロードしてインストールします。
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpm次のコマンドを使用してGraylogサーバーをインストールします。
yum -y install graylog-serverserver.confファイルを編集して、graylog構成を開始します。
vi /etc/graylog/server/server.conf次のコマンドを使用してシークレットを作成します
pwgen -N 1 -s 96出力:
OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gP以下のような秘密をserver.confに配置します
password_secret = OH9wXpsNZVBA8R5vJQSnkhTB1qDOjCxAh3aE3LvXddtfDlZlKYEyGS24BJAiIxI0sbSTSPovTTnhLkkrUvhSSxodTlzDi5gProotユーザー、つまり、graylogの管理者のハッシュパスワードを設定します。グレイログWebにログインするには、このパスワードが必要です。
adminの忘れたパスワードを変更/リセットしたい場合は、 server.confを編集/更新できます。 ハッシュ化されたパスワードを使用します。
以下のコマンドを使用して、ハッシュ化されたパスワードを生成します。 yourpasswordを置き換えます あなたの選択で。
echo -n yourpassword | sha256sum出力:
e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951ハッシュパスワードを入力します。
root_password_sha2 = e3c652f0ba0b4801205814f8b6bc49672c4c74e25b497770bb89b22cdeb4e951管理者ユーザーのメールアドレスを設定できます。
root_email =" [email protected] "ルート(管理者)ユーザーのタイムゾーンを設定します。
root_timezone = UTC以下の変数を定義して、マスターノードを1つだけ設定します。デフォルト設定はtrueです。
このサーバーが環境内の2番目のGraylogノードである場合は、falseに設定して、このノードをスレーブにします。マスターノードは、スレーブノードが実行しない定期的なタスクを実行します。
is_master = trueインデックスごとに保持するログメッセージの数を設定します。大きなインデックスではなく、いくつかの小さなインデックスを使用することをお勧めします。
elasticsearch_max_docs_per_index = 20000000次のパラメーターは、インデックスの総数を持つように定義します。この数に達すると、古いインデックスが削除されます。
elasticsearch_max_number_of_indices = 20シャード設定は、特定のElasticsearchクラスター内のノードの数に依存します。ノードが1つしかない場合は、1に設定します。
elasticsearch_shards = 1これにより、インデックスのレプリカの数が定義されます。 Elasticsearchクラスターにノードが1つしかない場合は、0に設定します。
elasticsearch_replicas = 0GraylogWebインターフェイスをインストールする
Graylogバージョン2.xから、WebインターフェイスはGraylogサーバーによって直接提供されます。 server.confファイルを編集してGraylogWebインターフェイスを有効にします。
vi /etc/graylog/server/server.confエントリを変更して、GraylogWebインターフェイスがGraylogサーバーに接続できるようにします。 192.168.1.10をシステムのIPアドレスに置き換えます。
http_bind_address = 192.168.1.10 :9000Graylogサービスを再起動します。
systemctl daemon-reloadsystemctl restart graylog-serverシステムの起動時にGraylogサーバーが自動的に起動するようにします。
systemctl enable graylog-serverサーバーの起動ログを確認できます。問題が発生した場合にGraylogのトラブルシューティングを行うと便利です。
tailf /var/log/graylog-server/server.logすべてがうまくいけば、server.logファイルに以下のメッセージが表示されます。
2019-02-25T21:00:23.157 + 05:30 INFO[ServerBootstrap]Graylogサーバーが稼働しています。ファイアウォール
CentOS 7 / RHEL 7では、ファイアウォールルールは、デフォルトで外部マシンからのほとんどのトラフィックをブロックするように設定されています。 Graylogが正しく機能するための許可ルールを追加する必要があります。
Firewall-cmd --permanent --add-port =9000 / tcp新しいルールを有効にするには、firewalldをリロードします。
Firewall-cmd --reloadGraylogWebインターフェースにアクセス
これで、Webインターフェイスはポート9000でリッスンします。ブラウザをポイントします。
http://ip.add.re.ss:9000ユーザー名adminでログインします およびroot_password_sha2で構成したパスワード server.conf 。
ログインすると、スタートページが表示されます。
システムをクリックします>>概要 グレイログサーバーのステータスを知るため。
グレイログ入力の作成
グレイログ入力は、外部ソース、つまり、syslogまたは任意のログシステムからログを受信するように構成する必要があります。この例では、ポート番号UDP514でsyslogからログを受信するための入力を設定します。
しかし問題がある。特権ポートの1つ(1024未満のTCP / UDPポート番号)で入力を試行し始めると、Graylogログに許可拒否エラーが表示されます。
この問題を解決するために、ポート1514で開始する入力を作成し、ファイアウォールルールを使用してトラフィックを514から1514にリダイレクトします。
システムをクリックします>>入力>> Syslog UDPを選択します 次に、[新しい入力の起動]をクリックします。
以下に示す値を入力してください。
ノード: グレイログノードを選択
タイトル: 入力に名前を付けます
バインドアドレス: 0.0.0.0(デフォルトのままにします)
ポート: 1514
作成されたSyslog入力が実行状態にあることを確認してください。
Rsyslogの構成
入力を作成したら、Rsyslogを構成するか、システムログをGraylogサーバーに転送します。
Rsyslog構成ファイルを編集します。
vi /etc/rsyslog.confUDP 514でログを送信するための一般的なRsyslog構成は、次のようになります。
UDP 514を使用せず、ログを直接GraylogのUDP 1514に送信する場合は、Rsyslog構成ファイル*。info;mail.none;authpriv.none;cronでポート番号を変更できます。なし@192.168.1.10:514Rsyslogサービスを再起動して、ログを送信します。
systemctl restart rsyslogファイアウォール
前の手順で行ったRsyslog構成に基づいてファイアウォールを構成します。
ポート514
Graylogサーバーで以下のコマンドを実行して、ポートUDP514から来るトラフィックをGraylog入力のUDP1514にリダイレクトします。
Firewall-cmd --add-masquerade --permanentfirewall-cmd --add-forward-port =port =514:proto =udp:toport =1514 --permanentfirewall-cmd --reloadポート1514
Graylogサーバーで以下のコマンドを実行して、ファイアウォールのポート番号UDP1514がRsyslogからログを受信できるようにします。
Firewall-cmd --permanent --add-port =1514 / udpfirewall-cmd --reloadGraylogを使用してログを表示
数分待ちます。イベントが生成されたら、クライアントマシンからログメッセージの受信を開始する必要があります。
次のスクリーンショットは、Graylog(Graylogコンソール)が受信したログを示しています。>> Searc h 。
結論
これで、Graylog3.0がCentOS7 / RHEL 7に正常にインストールされ、外部ソースからRsyslogログを受信するようにGraylogが構成されました。さらに読むと、NginxまたはApacheをリバースプロキシとして構成し、GraylogWebインターフェイスにHTTPSを設定してみることができます。
ランチャー–プライベートコンテナサービス:本番環境でコンテナを実行– CentOS 7 /Ubuntu16.04にランチャーをインストールします VnStat PHPフロントエンド–ネットワーク帯域幅を監視するためのWebベースのインターフェースCent OS