Graylogでは、クエリでヒットした箇所についてハイライト表示させるオプションがある。 コレを有効にしてやることで、ログのどこの箇所で検索がヒットしたのかがわかるようになっている。 設定方法は簡単で、Graylog Serverの設定ファイルで以下の項目をtrueにしてやるだけだ。
前にGraylogのSSL化対応について記述したことがあったが、今回は同一OS上にNginxを同居させて、リバースプロキシとして動作させることでSSL化を行う。 設定自体は特に難しいこともなく、すぐに行える。 参考手順は、公式ドキュメントとして用意されているこちら。
ただ、Graylog Collector Sidecarを使っている場合は各エージェントで設定変更が必要になるので注意。
1. Graylogの設定変更
先にGraylog側の設定から。 Graylog Serverの設定ファイルである「/etc/graylog/server/server.conf」で、以下のよう...
前回、RabbitMQにキューイングされたログをGraylogで取得させるようにしたが、今回はさらにRabbitMQ側でSSL対応させて通信を暗号化させる。 証明書ファイルは(お金もないので)オレオレ証明書で作成する。 (Let's Encryptでもいいのだが、どうせローカルネットワーク内での検証なので)
1. SSL証明書の準備
まずはSSL証明書の準備から。 クライアント側(Graylog側)にクライアント証明書が必要になるので、CA証明書含めこちらを参考に作成を行う。
証明書作成後はRabbitMQへ送るのを忘れずに。 今回の場合は、「/etc/rabbitmq/s...
前回、fluentdを使ってRabbitMQにログを送信させたので、今度はそれをGraylogで取得させてみる(なお、Graylogでログを認識するために"payload_only"をTrueにしている)。
設定は簡単で、Graylogで[System] > [Inputs]を開き、[GELF AMQP]を選択して[Launch new input]をクリックする。
fluentdからGraylogに、GELF形式のログを転送したい。s こういった場合のために、ちゃんとプラグインがあるようだ。 fluentdの動作しているサーバで、以下のコマンドを実行してプラグインをインストールする。
/opt/td-agent/embedded/bin/gem install fluent-plugin-graylog
プラグインのインストール後、fluentdの設定ファイルを以下のように記述してやる。
rsyslogには、バージョン8.7からはデフォルトでKafkaに連携するモジュール「omkafka」というものが用意されている。 今回は、これを使ってrsyslogから直接Kafkaにログを転送する。
なお、CentOS 7の場合だとrsyslogは7系が使われているので、別途8系をインストールしてやる必要があるようだ(まぁ、当たり前だがやる前にちゃんと事前にテストをするように…)。 rsyslogのバージョン8.7以降をインストールしたら、設定ファイル「/etc/rsyslog.conf」に以下の内容を記述してやる(brokerは複数指定可能)。
/etc/rsyslog....
前回、syslogをKafkaに転送させるようにしたので、今度はそこからGraylogでログを取得する。 特にプラグインもなしでできるので、(いろいろと問題はあるが)なかなか良い感じだ。
設定は簡単で、[System] > [Inputs]で新規のインプットとして[GELF Kafka]を選択し、「Launch new input」から新しいインプットを作成するだけだ。
zookeeperのアドレスは複数指定できるので、各ノードのアドレスを指定してやる。
で、INPUTが正常に作成・動作したら、以下のようにKafkaからログが取得されるようになる。
Graylogで、StreamのCallbackで「HTTP Alarm Callback」というのがバンドルされているのだが、これを使うことでStackStormのWebHookにログの内容をポストできるようなので使ってみることにした。
なお、StackStormのある環境はLAN内となるので、事前にプライベート認証局で証明書を発行してStackStormに設定しておく必要がある。
プライベート認証局を用いたSSL証明書の発行については、こちらを参考に設定してもらいたい。
1.ルートCA証明書のインストール
まずは、StackStorm側で設定したSSLをGraylogで利用...
特定のログが来た際にGraylogからDatadogにアラートを出す場合は、プラグインを導入してやればよい。
まず、Graylogサーバ側で以下のコマンドを実行してプラグインをインストールしてやる。
cd /usr/share/graylog-server/plugin/
sudo wget https://github.com/underdogio/graylog-plugin-datadog/releases/download/v1.0.3/graylog-plugin-datadog-1.0.3.jar
sudo systemctl restart graylog-server
ふと、Graylogで特定キーワードを含むツイートを集計できないかと思い調べてみたところ、ちゃんとそういったプラグインがあるようなのでやってみることにした。
なお、すでにTwitterAPIでAccessToken等を取得済みとする。
まず、以下のコマンドでプラグインを導入してやる。
cd /usr/share/graylog-server/plugin/
sudo wget https://github.com/Graylog2/graylog-plugin-twitter/releases/download/1.0.0/graylog-plugin-twitter-1.0.0...
Graylogのログ監視をターミナルで行えるツール『Graylog CLI dashboard』というものを見かけ、グラフをターミナル上で表示できるタイプで面白そうなので入れてみることにした。
Linux/Macで動作するらしい。
とりあえず、まず「\~/.graylog_dashboard」というファイルを作成し、以下のようにGraylogのユーザ名・パスワードだけ設定しておく。
username: ユーザ名
password: パスワード
次に、以下のコマンドでgraylog-cli-dashboardのインストールを行う。
npm install graylog-cli...
GraylogでStreamで定義したログを検知した際、Rundeckの特定のジョブをキックさせるようにさせたい。
そんな時は、Graylog側にこちらのプラグインを導入し諸々の設定をしてやればよい。
今回は、Graylogからログ内の特定の値をRundeckに連携して、任意のジョブを実行させるよう設定してみる。
1.Graylogへプラグインのインストール
まずは、以下のコマンドを実行してGraylogにプラグインのインストールを行う。
ダウンロードするjarファイルのURLについては、こちらで最新のものを確認しておく。
cd /usr/share/graylog...
Graylogでは、特定のログに記述されている"特定の項目の値"のみを抜き出し、Graylog側で個別に認識させることができる。
例えば、以下のようなログを受けたとしよう。FortiGateなんかがこんな感じのログだ。
Graylogでは、上の例でいうと「USER」「COMMAND」「ARGS」それぞれの値を抽出してやることができる。
じゃあどうやるのかというと、JSONの時とおなじように対象のログのMessageID、INDEX値を控えて[System] > [Inputs]から対象のインプットの[Manage extractors]を開き、ログを検索。
messageのと...
Graylogを社員に開放して、ある程度メンバーの権限で見れるようにするためにActive Directory連携をしたのでその設定の備忘。
設定は簡単で、上部メニューから[System] > [Authentication]を選択し、「3.LDAP/Active Directory」をクリックする。
あとは、LDAP/ActiveDirectoryの設定について各項目の入力をしていけばいい。
基本的には、ふつう...
会社でログ管理にGraylogを使っているのだが、一部に存在しているJSON形式のログを取り込めないか調べたところGraylogにはその機能が標準で組み込まれていることを知った。
例えば、Collector Sidecarでファイルを指定してログ回収した結果、以下のようなログが来ていたとする。
これを、jsonの項目名ごとに分割してやるには、まず対象のログのMessageID(上の画像だと「22ddcf00-8b5d-11e6-b270-623530633165」となっているログのID)とIndex番号(上の画像では「graylog_0」)を控えておき、[System] > [Inp...
Graylogでログ監視を行い、特定のアラートの場合にはRedmineへ自動起票をさせたい。
で、RedmineではRestAPIとメール起票の2パターンあるのだが、Graylogでは有志の作ったプラグインを導入することでRestAPI経由での起票が可能となっている。
なお、前提としてRedmine側で以下の状態であること。
- RestAPIが有効になっている([管理] > [設定] > [API]から有効にできる)
- httpsの場合、オレオレ証明書ではないこと(証明書エラーでアクセスできなくなるため)
- ユーザのAPIキーが存在していること(確認は対象ユーザでログインして[...
Graylogで、転送するログの暗号化をしてパケットキャプチャをされても見れないようにする。
普通にただ設定すると、暗号化せずに転送されてしまうため、GELF形式で送ってもこんな感じで中身を見れてしまう。
blacknon@BS-PUB-GRAYLOG:~$ sudo tcpdump -i ens19 port 12201 -X
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens19, link-type EN10MB (Ethernet), capture...
Graylog Serverのバージョンを2.0系から2.1系にアップグレードした際の手順について備忘として残しておく。
なお、サーバのOSはUbuntu Server 16.04を用いている。
まず、以下のコマンドで2.1系のリポジトリをインストールする。
wget https://packages.graylog2.org/repo/packages/graylog-2.1-repository_latest.deb
sudo dpkg -i graylog-2.1-repository_latest.deb
先日、LinuxでGraylog Collector Sidecar経由でのGraylogでのログ収集についての方法を記述したので、今回はWindows。
といっても、基本的な流れは変わらない。Graylog Collector SidecarとNXLogをインストールして設定、ログを集めるだけだ。
1.Graylog Collector Sidecarのインストール・起動
まずは、こちらからGraylog Collector Sidecarのインストール用exeをダウンロードして実行、インストールをする。
2.NXLogのインストール・設定
次に、NXLogのインストー...
Graylogでは、Syslogのほかに「Graylog Collector Sidecar」というエージェントを使ってのログ収集方法がある。
この方式の場合、GELFというGraylogの独自フォーマットでのログ入力フォーマットを使えるため、Syslogに比べて詳細な情報を記録しておくことが可能になる。
今回は、この「Graylog Collector Sidecar」を用いてGELFでのログをGraylogに連携させる。このとき、エージェントからGraylogへのデータ転送にはFilebeat、Winlogbeat、NXLogが使えるのだが、今回はNXLogを利用する。手順につい...
Graylogでログを監視して、Slackにアラートを通知させるにはこちらのSlackへの通知プラグインを導入すればよい。
インストール方法は簡単。こちらからパッケージかjarファイルをダウンロードしてきて、所定の場所(graylog.confに「plugin_dir」で指定されているディレクトリ)に配置してやればよい。
とりあえず、今回はCentOS 7なので、rpmパッケージをインストールしてやる。
rpm -ihv https://github.com/Graylog2/graylog-plugin-slack/releases/download/2.2.1/grayl...
Graylogでは、デフォルトだとWebインターフェイスがhttpsになっておらず、ちょっとよろしくない。
で、一応設定としてSSLの有効化は行えるようなので、(手順と違いオレオレ証明書にはなるが)設定を行ってみることにする。
まず、以下のコマンドでSSLの証明書、鍵を作成する。
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/certs/graylog-proxy.key -out /etc/ssl/certs/graylog-proxy.crt
次に、Graylogの設定...
前回、CentOS 7にGraylogをインストールしたので、今回はUbuntu Server 16.04 LTSにインストールを行う。
1.前提パッケージの導入
1-1.Oracle JDKのインストール
まずは、以下のコマンドでOracle JDKのインストールを行う。
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java8-installer
blacknon@BS-PUB-UBUNTU-01:~$ java -ve...
以前、Syslogサーバとして利用できるログ分析ツール『Graylog』について仮想アプライアンスとして触ってみたのだけど、今回はこれをCentOS 7にインストールしてみる。
仮想アプライアンスと違い、ある程度カスタマイズできるので仕事で導入するときはこっちのほうがいいかな?とりあえず、やっていこう。
1.前提パッケージの導入
1-1.OracleJDKのインストール
まずは、前に書いたようにこちらからOracle JDKのrpmパッケージのURLを確認して、以下のようにコマンドを実行しOracleJDKをインストールする。
wget --no-check-ce...
ログ分析ツールを調べていたところ、「Graylog」というツールがよさそうなので少し試してみることにした。
OSを用意してインストールが必要かと思っていたが、仮想アプライアンスが用意されているようなのでまずはそれを使ってみることにする。
1.導入
VMware ESXiのovaファイルの場合はこちら、KVMでqcow2の場合はこちらからダウンロードし、それぞれの仮想基盤上で利用できるようデプロイする。
デプロイ後、VMを起動させて初期設定を行う。以下の画面になったら、ID/PW「ubuntu/ubuntu」でログインする。
ログイン後、普通にUbuntuでやるように...