LoginSignup
3
2

More than 3 years have passed since last update.

Ubuntu 20.04にGraylog4.0.6をインストールする手順

Last updated at Posted at 2021-04-30

概要

ログを分析するためいにオープンソースプロジェクトであるGraylogをUbuntu20.04にインストールする。
GraylogとはJava + Elasticsearch + MongoDBを利用した海外のログ分析用のオープンソースプロジェクトである。ELK(Elasticsearch + Logstash + Kibana)のように無償のコミュニティ版と有償のエンタープライズライセンス版があります。
GraylogはSplunkのようにログサーバ機能もありサーバ及びネットワーク機器からログを収取して古いログをアーカイブサーバに送ることができます。
今回はサーバやネットワーク機器からのリアルタイムでエラー及び警告メッセージを収集して障害が発生する前に対応できるようにします。
Splunkのように多くの機能がある有償サービスもありますが、先ずログ管理を始めるために短時間でインストール/セットアップできる無償版のGraylogサーバを利用することにしました。

インストール手順

Graylogを利用するためにはJava, Elasticsearch, MongoDB, Graylogサーバをインストールします。

OpenJDKのインストール

GraylogはJavaアプリケーションのために先ずはJavaをインストールします。Oracle JDK8以降又はOpenJDK8以降に対応しています。今回はOpenJDK11をインストールします。

  1. OpenJDK11及び必要なパッケージのインストール
    1. sudo apt update
    2. sudo apt install -y apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen curl dirmngr
  2. 確認
    1. java -version

Elasticsearchのインストール、セットアップ、起動

インストール

Elasticsearchはログデータを保管してREST APIで検索できるようにします。

  1. GPGキーを取得
    1. wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  2. Elasticsearchリポを追加
    1. echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
  3. Elasticsearchをインストール
    1. sudo apt update
    2. sudo apt install -y elasticsearch-oss
  4. インストールされたelasticsearchのバージョンを確認

    1. sudo /usr/share/elasticsearch/bin/elasticsearch --version ### ElasticsearchをGraylog用にセットアップ Elasticsearchの設定ファイルを編集します。Graylog4.0はElasticsearch 7.11以降に対応していませんので注意してください。次の手順でUbuntu20.04にインストールしたら6.8.15がインストールされました。
  5. テキストエディタで/etc/elasticsearch/elasticsearch.ymlを開きます。今回はviを利用します。

    1. sudo vi /etc/elasticsearch/elasticsearch.yml
    2. クラスタ名を「graylog」に設定します。
      1. コメントを外して値を設定
        1. cluster.name: graylog
      2. 最後に追加
        1. action.auto_create_index: false
      3. 保存してテキストエディタを終了
  6. elasticsearchサービスを起動

    1. sudo systemctl daemon-reload
    2. sudo systemctl start elasticsearch
    3. sudo systemctl enable elasticsearch
  7. サービスが起動していることを確認

    1. sudo systemctl status elasticsearch
  8. テスト

    1. curl -X GET http://localhost:9200
    2. 戻されたjsonのcluster_name値が「"graylog"」であることを確認

MongoDBのインストールと起動

GraylogはMongoDB 4.0及び4.2に対応しています。apt install mongodb-serverでインストールすると3.xがインストールされるのでMongoDBリポを追加します。

  1. キーを追加
    1. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
  2. リポを追加
    1. echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
  3. MongoDBをインストール
    1. sudo apt update
    2. sudo apt install -y mongodb-org
  4. インストールされたmongoDBのバージョンを確認。4.0又は4.2であることを確認。
    1. mongo --version
  5. MongoDBを起動
    1. sudo systemctl daemon-reload
    2. sudo systemctl enable mongod.service
    3. sudo systemctl restart mongod.service
  6. 起動していることを確認
    1. sudo systemctl status mongod

Graylogサーバのインストール

  1. Graylogサーバをインストール
    1. Graylog4.0リポ設定をダウンロードしてインストールします。
      1. sudo wget https://packages.graylog2.org/repo/packages/graylog-4.0-repository_latest.deb
      2. sudo dpkg -i graylog-4.0-repository_latest.deb
    2. Graylogサーバをインストール
      1. sudo apt-get update
      2. sudo apt-get install graylog-server

セットアップ

  1. 機密パスワードを生成します。
    1. pwgen -N 1 -s 96
    2. 出力結果をメモします
  2. ログイン用のパスワードをsha256ハッシュ
    1. echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
    2. 出力結果をメモします
  3. テキストエディタで/etc/graylog/server/server.confを開きます。今回はviを利用します。
    1. sudo vi /etc/graylog/server/server.conf
      1. 機密パスワードを設定します。
        1. password_secret = <メモして機密パスワード>
      2. ログインパスワードを設定します。
        1. root_password_sha2 = <メモしたsha256ハッシュ>
      3. Webブラウザから開けるようにするためにGraylogサーバのIPアドレスを設定します。「http_bind_address=」行のコメントをはずして値をGraylogサーバのIPアドレスに設定します
        1. http_bind_address = <サーバのIPアドレス>:9000
    2. 保存してテキストエディタを終了します。
  4. Graylogサーバを起動します
    1. sudo systemctl daemon-reload
    2. デーモンがロードされるまで少し時間を置く
    3. sudo systemctl start graylog-server
    4. sudo systemctl enable graylog-server
  5. 起動していることを確認します
    1. sudo systemctl status graylog-server
  6. 起動処理が終了するまで待つ。次のコマンドを実行して「Graylog server is up and running」が表示されるまで待つ。
    1. sudo tail -f /var/log/graylog-server/server.log

Graylogサーバにログインする

  1. Webブラウザから次ぎのURLを開く
    1. http://:9000
    2. ユーザ名は「admin」、パスワードは上で設定したログインパスワード

ログを取得するUbuntuサーバにrsyslogのインストールとセットアップ

  1. Graylogサーバをrsyslogサーバに指定する
    1. sudo vi /etc/rsyslog.conf
    2. 最後に次の行を追加する。今回はUDPを利用します。Graylogにログを送る場合は1024より大きなポート番号を使う必要があります。今回はポート1514を利用します。
      1. . @:1514
    3. 保存してテキストエディタを終了する
  2. rsyslogを再起動します。
    1. sudo systemctl restart rsyslog
      又は
      sudo /etc/init.d/rsyslog force-reload
  3. 確認します。
    1. sudo systemctl status rsyslog
  4. ファイルウォールを設定している場合はudpポート1514を開放します。
    1. ファイルウォールを確認します。
      1. sudo ufw status
      2. ファイアウォールが有効でudpポート1514が閉鎖されている場合は開放します。
        1. sudo ufw allow proto udp to 0.0.0.0/0 port 1514
      3. 設定した後に確認します。次のような記述があるはずです。
        1514/udp                   ALLOW       Anywhere

Graylogサーバのセットアップ

Graylogサーバでrsyslogを取得できるようにします。

  1. メニューから「System」-「Inputs」を選択します。
    rsyslog_input_1.png
  2. 今回はrsyslogをUDPで送るように設定したのでInputsから「Syslog UDP」を選択します。
    rsyslog_input_2.png
  3. 「Launch new input」ボタンを押下します。
    rsyslog_input_3.png
  4. 項目「Title」に任意の名前を入力します。項目「Port」にrsyslogに設定したポート番号を入力します。今回はポート1514に設定したので1「1514」にします。Graylogは1024以下のポートを指定すると正しくログを取得しません。
    入力した後に右下の「Save」ボタンを押下します。
    rsyslog_input_4.png
  5. 「Show received messages」ボタンを押下すると取得したログが表示されます。
    rsyslog_input_5.png
  6. メニューから「Search」を選択すると時間軸毎に取得したログメッセージと送信先サーバ名が表示されます。rsyslog_input_6.png

以上

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2