LoginSignup
23
9

More than 5 years have passed since last update.

LogDNA で IBM Cloud のログ監視をしてみた

Last updated at Posted at 2019-01-22

TL;DR

IBM Cloudと統合されたログ収集プラットフォームLogDNAを使ってIBM Cloud IaaSのVirtual Server Instance(仮想サーバー)上のRHEL7のOSログ監視をしてみました。
image.png

LogDNAって何?

LogDNAは2015年に米カリフォルニア州マウンテンビューで設立されたSaaS型のログ収集プラットフォームです。

  • システムおよびアプリケーションの問題をデバッグするためのログ管理および分析
  • 最新のコンテナベースのアプリケーションに最適化
  • 何百ものカスタム統合を使用してあらゆるプラットフォームから収集および集約する機能
  • SaaSと分離/オンプレミスへのデプロイ・オプション
  • 1,500の有料顧客あり
  • ロゴ: image.png

LogDNAは、以下のような特長を持っています。

  • スタンダードなElasticよりもスケーラビリティのある高速検索
  • HIPAAとSOC2に準拠、GDPR/PCI-DSSにも対応(予定)
  • 電子メール、Slack、HipChat、Webhook、PagerDuty、OpsGenieとのアラート統合
  • Google検索のような簡易検索
  • ログ・テーリング
  • IBM Cloud、Heroku、Manifoldといったクラウド・ベンダーとの統合

IBM Cloudと統合されたLogDNAを使うと以下のようなメリットがあります。

  • 完全集中型ログ管理:すべてのログデータを一箇所に集約
  • 柔軟な保存期間:ログ検索のための7、14および30日
  • リアルタイムのライブテールおよびフィルタ機能でログイベントを拡大
  • 自然言語クエリと超高速検索で問題を迅速に見つけて解決
  • Pager Duty、Slack、Webhook、Webhookなどによる通知サポートを使用してアラートを実行
  • 30を超える統合と管理対象ソースをサポート
  • コンテナ・ベースのアプリケーションに最適化
  • GB単位の料金
  • IBM CloudのSSOによるエンタープライズグレードの管理、および管理者に対する完全なRBACを提供
  • 長期保管のためにIBM Cloud Object Storageにアーカイブ
  • アーキテクチャ: image.png

(参考)IBM Log Analysis with LogDNA
https://www.ibm.com/cloud/log-analysis

LogDNAのオーダー

IBM IDでログインして以下よりオーダーします。
https://cloud.ibm.com/catalog?search=LogDNA
image.png

サービス名、リージョン、リソースグループを入力して作成ボタンをクリックします。
https://cloud.ibm.com/observe/logging/create
image.png

プランを以下から選択します。最初はライト版(無料)でオーダーしてみます。
image.png

ネットワーク前提

LogDNA AgentからLogDNAサーバーへの発信トラフィックとして以下のパブリックIPアドレスおよびポートについて、ファイアウォールやセキュリティ・グループであらかじめ許可しておく必要があります。

  • ログ送信のためのIPアドレス

    • リージョン:米国南部
    • Ingestion endpoint:logs.us-south.logging.cloud.ibm.com
    • パブリックIPアドレス:
      • 169.48.237.107
      • 169.60.166.45
      • 169.47.224.77
    • ポート:
      • TCP 443
      • TCP 80
  • LogDNA agentにより利用されるIPアドレス

    • リージョン:米国南部
    • Authentication endpoint: api.us-south.logging.cloud.ibm.com
    • パブリックIPアドレス:
      • 169.47.224.74
      • 169.60.166.44
      • 169.48.237.109
    • ポート:
      • TCP 443
      • TCP 80

最新の情報は以下をご確認ください。

(参考)Managing network traffic
https://console.bluemix.net/docs/services/Log-Analysis-with-LogDNA/network.html#network

LogDNAエージェントの設定

エージェントレスで単純にrsyslog、syslog-ng、syslogから転送することもできますが、ここではLogDNA経由で監視します。エージェントを利用することで幅広いログ収集が可能です。

オーダー後、IBM CloudのダッシュボードにLogDNAが表示されます
image.png

エージェントは以下の環境をサポートしています。

  • Linux Ubuntu/Debian
  • Linux RPM-based
  • Kubernetes

image.png
image.png

今回はREHL7を管理対象とするためRPMベースのエージェントをインストールします。最初にパッケージをインポートします。

# sudo rpm --import https://repo.logdna.com/logdna.gpg

リポジトリーを設定します。

echo "[logdna]
name=LogDNA packages
baseurl=https://repo.logdna.com/el6/
enabled=1
gpgcheck=1
gpgkey=https://repo.logdna.com/logdna.gpg" | sudo tee /etc/yum.repos.d/logdna.repo

エージェントをインストールします。

sudo yum -y install logdna-agent

ダッシュボードに表示されているユニーク・キーを入力します。

# sudo logdna-agent -k XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Your LogDNA Ingestion Key has been successfully saved!

LogDNAのAPIホスト"api.us-south.logging.cloud.ibm.com"を登録します。

# sudo logdna-agent -s LOGDNA_APIHOST=api.us-south.logging.cloud.ibm.com
Config variable: LOGDNA_APIHOST = api.us-south.logging.cloud.ibm.com been saved to config.

LogDNAサーバーのホスト"logs.us-south.logging.cloud.ibm.com"を登録します。

# sudo logdna-agent -s LOGDNA_LOGHOST=logs.us-south.logging.cloud.ibm.com
Config variable: LOGDNA_LOGHOST = logs.us-south.logging.cloud.ibm.com been saved to config.

監視対象ディレクトリを登録します。デフォルトでは/var/log配下が登録されています。

# sudo logdna-agent -d /path/to/log/folders
Log Directories: /path/to/log/folders has been saved to config

エージェントに監視対象サーバーの任意のタグを設定します。ここではmytag, myothertagとしています。

# sudo logdna-agent -t mytag,myothertag
Tags: mytag, myothertag have been saved to config

LogDNAエージェントがOS起動時に自動起動するように設定します。

sudo chkconfig logdna-agent on

LogDNAエージェントを手動で起動します。

sudo service logdna-agent start

LogDNAダッシュボードの表示

ダッシュボードの[All Sourcers]に表示される管理対象サーバーをチェックします。

image.png

検索機能を有効化するためにプランをアップグレードします。
image.png

プランを選択します。

image.png

OKをクリックします。

image.png

ダッシュボードを開き直します。

image.png

トライアル版から有償版に変わったことを確認します。

image.png

ログ・レベルを指定してログがダッシュボードに表示されることを確認します。

image.png

LogDNAダッシュボードの見方

監視対象ログとして、audit.log, cron, logdna-agent.log, messeagesなどを指定できます。

image.png

以下のようなフォーマットでログが可視化されます。

例1)"/var/log/secure"に出力されているパスワード入力エラー
image.png

例2)"/var/log/secure"のSSHによる不正アクセスの検知
image.png

例3)"/var/log/messeage"に記録されたroot権限によるSSHログイン
image.png

例4)"/var/log/messeage"に記録されたタイムゾーンの変更
image.png

レポート

様々な切り口でログのレポートを取得することができます。

例)すべてのログのカウント(24時間)
image.png

例)エラー・ログのカウント(24時間)
image.png

アーカイブ先

ログ・データのアーカイブ先としてはIBM Cloud Object Storage (ICOS)をはじめ各種クラウド・ストレージを指定できます。

image.png

ICOSをオーダーしてバケットを作成の上、必要なバケット名、エンドポイント、APIキー、インスタンスIDを入力します。

image.png

IBM Cloud Object Storageのエンドポイントは以下のとおりパブリック、プライベートがありますが、ここではLogDNAのアーカイブ先としてパブリック・エンドポイントを利用しています。

アーカイブとして毎晩自動的にログがエクスポートされます。設定が完了すると、エクスポートされたログは24〜48時間以内に以下のような形で表示されます。事前にICOS上にバケットを作成しておく必要があります。

image.png

アラート通知

[設定]->[アラート]よりSlackなど外部連携の設定が可能です。

image.png

image.png

ログのエクスポート

LogDNAのダッシュボード[Export lines]より期間を指定すればログを.jsonlファイルとしてエクスポートし管理者のメール・アドレスに転送することができます。
image.png

LogDNAよりデータのダウンロード・リンク付きのメールが送信されます。
image.png

48時間有効なリンクからログ・ファイルをダウンロードできます。
image.png

JSON Linesは以下のようなフォーマットです。

{"_account":"09a8a8abfe","_cluster":"ld60","_host":"vsi-20180121","_ingester":"agent","_logtype":"syslogline","_mac":"06:87:ca:13:3b:76","_tag":["mytag","myothertag"],"_file":"/var/log/secure","_line":"polkitd[3735]: Unregistered Authentication Agent for unix-process:31232:12724202 (system bus name :1.124, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale ja_JP.UTF-8) (disconnected from bus)","_ts":1548248814652,"_app":"secure","_ip":"10.129.177.16","_ipremote":"169.56.30.124","__key":"logline:09a8a8abfe:secure:vsi-20180121:ld60","level":null,"logsource":"vsi-20180121","program":"polkitd","pid":3735,"message":"Unregistered Authentication Agent for unix-process:31232:12724202 (system bus name :1.124, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale ja_JP.UTF-8) (disconnected from bus)","_id":"1041230996311273480"}
...

VRAのログ監視

仮想ルーターのVRA (Vyatta Router Appliance)についてもOSがLinuxベースのため同様の手順で監視できます。

エージェントはLinux Ubuntu/Debianベースのものをインストールしてください。

echo "deb https://repo.logdna.com stable main" | sudo tee /etc/apt/sources.list.d/logdna.list
wget -O- https://repo.logdna.com/logdna.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install logdna-agent < "/dev/null" # this line needed for copy/paste
sudo logdna-agent -k 09a8a8abfe0765729c660345b4a0d513 # this is your unique Ingestion Key
sudo logdna-agent -s LOGDNA_APIHOST=api.us-south.logging.cloud.ibm.com # this is your API server host
sudo logdna-agent -s LOGDNA_LOGHOST=logs.us-south.logging.cloud.ibm.com # this is your Log server host
# /var/log is monitored/added by default (recursively), optionally add more dirs with:
# sudo logdna-agent -d /path/to/log/folders
# You can configure the agent to tag your hosts with:
# sudo logdna-agent -t mytag,myothertag
sudo update-rc.d logdna-agent defaults
sudo /etc/init.d/logdna-agent start

以下のようにリアルタイムでrsyslogのログが転送されます。

image.png

エージェント・レスでのログ監視 ※2019年3月18日追加

エージェント・レスでもrsyslogによりsyslogを転送することが可能です。

IBM CloudのサービスからLogDNAサービスのダッシュボードを起動し、"Add log sources"をクリックしてください。

image.png

Root CA Certificate を /etc/ld-root-ca.crt にダウンロードしてください。

# cd /etc
# wget https://repo.logdna.com/syslog/ld-root-ca.crt

22-logdna.confファイルを新規に/etc/rsyslog.d/22-logdna.confに作成してください(キーはIBM Cloud経由で起動したLogDNAのダッシュボードのものを利用します。)

/etc/rsyslog.d/22-logdna.conf
### START LogDNA rsyslog logging directives ###

## TCP TLS only ##
$DefaultNetstreamDriverCAFile /etc/ld-root-ca.crt # trust these CAs
$ActionSendStreamDriver gtls # use gtls netstream driver
$ActionSendStreamDriverMode 1 # require TLS
$ActionSendStreamDriverAuthMode x509/name # authenticate by hostname
$ActionSendStreamDriverPermittedPeer *.us-south.logging.cloud.ibm.com
## End TCP TLS only ##

$template LogDNAFormat,"<%PRI%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [logdna@48950 key=\"********************************\"] %msg%"

# Send messages to LogDNA over TCP using the template.
*.* @@.us-south.logging.cloud.ibm.com:6514;LogDNAFormat

### END LogDNA rsyslog logging directives ###
Download this file

yumで"rsyslog-gnutls"をインストールしてください。

# yum install rsyslog-gnutls

"rsyslog"サービスをリスタートしてください。

# sudo /etc/init.d/rsyslog restart

以下のようにLogDNAダッシュボードに/var/log/配下のログが転送されます。

image.png

VMware NSX環境のSyslog転送

NSXのSyslog転送先として1台または2台のリモートSyslog サーバを設定できます。NSX Edge アプライアンスから流れるファイアウォール イベントに関連した NSX Edge のイベントとログは、Syslog サーバに送信されます。

  1. vSphere Web Client にログインします。
  2. [ネットワークとセキュリティ (Networking & Security)] をクリックし、[NSX Edge (NSX Edges)] をクリックします。
  3. NSX Edge をダブルクリックします。
  4. [管理] > [設定] タブの順にクリックします。
  5. [詳細] パネルで、Syslog サーバの横の [変更] をクリックします。
  6. 両方のリモート Syslog サーバの IP アドレスを入力し、プロトコルを選択します。
  7. [OK] をクリックして設定を保存します。

image.png

※LogDNAサーバは、"syslog-a.us-south.logging.cloud.ibm.com:31372"ですがここではパブリックIPアドレスを直接入力しています。

LogDNAダッシュボードにログが転送されます。

image.png

参考リンク

公式ガイド
https://docs.logdna.com/docs

以上、簡単ですがLogDNAによるIBM Cloud IaaSの監視についての紹介でした。

23
9
0

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
23
9