NutaNice Xperience

主にNutanix製品を検証したり触ったりした結果をつづっています。※このブログの内容は個人の見識や見解をもとに作成しています。参考にされる場合は自己責任でご活用ください。実際に製品を使用される場合は、メーカードキュメントの手順に従い実施してください。

NutanixでCLIからsyslogサーバを設定してみる【AOS 7.0 AHV 10.0】

 

※この記事は「AOS 7.0.xx」時点の情報をもとに作成しています。その後の機能アップデートについてはメーカーの公開情報をご確認ください。

今回はNutanix環境でCLIからsyslogの設定をしてみます。

目次

1.今回の環境

3ノードAHVクラスタ
AOS: 7.0.1
AHV: 10.0.1
rsyslogサーバ用VM: Rocky Linux v9.5

環境は以下のイメージで、一般的なNutanixの3ノードクラスタです。

2. 転送先のrsyslogサーバの設定

今回は、syslog転送先のサーバとしてRocky Linux v9.5を使用します。rsyslogをインストールしたlinuxサーバで、/etc/rsyslog.d/配下に、転送されてきたログを処理するための設定ファイルを作成します。設定ファイルはRHELのドキュメントを参考にしました。

14.3. TCP でのリモートロギング用のサーバーの設定
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/security_hardening/configuring-a-server-for-remote-logging-over-tcp_assembly_configuring-a-remote-logging-solution#configuring-a-server-for-remote-logging-over-tcp_assembly_configuring-a-remote-logging-solution

▽作成した設定ファイルは以下の通りです。

[root@rsyslog ~]# cat /etc/rsyslog.d/remote.conf

# Per-Host templates for remote systems
template(name="TmplAuthpriv" type="list") {
    constant(value="/var/log/remote/auth/")
    property(name="hostname")
    constant(value="/")
    property(name="programname" SecurePath="replace")
    constant(value=".log")
    }

template(name="TmplMsg" type="list") {
    constant(value="/var/log/remote/msg/")
    property(name="hostname")
    constant(value="/")
    property(name="programname" SecurePath="replace")
    constant(value=".log")
    }

# Provides TCP syslog reception
module(load="imtcp")

# Adding this ruleset to process remote messages
ruleset(name="remote1"){
     authpriv.*   action(type="omfile" DynaFile="TmplAuthpriv")
      *.info;mail.none;authpriv.none;cron.none
action(type="omfile" DynaFile="TmplMsg")
}

input(type="imtcp" port="514" ruleset="remote1")


[root@rsyslog ~]#

△中身を簡単に説明すると、以下の内容が書かれています。

  • syslogをTCPプロトコル ポート:514で受信
  • 「remote1」ルールセットで振り分け
  • 認証関連ログ(authpriv)は /var/log/remote/auth/ に保存
  • 一般ログ(*.info)は /var/log/remote/msg/ に保存
  • テンプレートを使用してログの保存先やファイル名を分類する

▽rsyslogサービスを再起動しておきます。

[root@rsyslog ~]# systemctl restart rsyslog
[root@rsyslog ~]# systemctl enable rsyslog

これで、ログを受信したら/var/log/remote/配下にディレクトリやログファイルを自動で作成して保存してくれます。

▽rsyslogサーバのファイアウォールは停止しておきます。

[root@rsyslog ~]# systemctl stop firewalld

3. Nutanix側でCLIからsyslogを設定

任意のCVMにログインし、nCLIコマンドツールを使用します。

▽nCLIの起動はCVMから以下コマンドを実行します。

[nutanix@cvm ~]$ ncli

▽設定変更中はrsyslogを無効化します。

<ncli> rsyslog-config set-status enable=false

▽転送先のrsyslogサーバを追加します。今回はTCPでrelpは無効化。

<ncli> rsyslog-config add-server host=172.22.5.104 name=syslog-test network-protocol=tcp port=514 relp-enabled=false

    Name                      : syslog-test
    Host Address        : 172.22.5.104
    Port                         : 514
    Protocol                : TCP
    Relp Enabled        : false

Nutanixでは、AHVやCVMのsyslogのほかに、Nutanixのサービスに関するログをモジュールとして使用できます。今回は「syslog」「audit」「Prism」の「info」レベル以上のログを転送する設定をしてみます。

▽以下の通り実行して、転送するモジュールやレベルを設定します。なお、モジュールの追加は一つずつとなります。

<ncli> rsyslog-config add-module module-name=syslog_module level=info server-name=syslog-test

    RSyslog Servers           : syslog-test
    Module Name              : SYSLOG_MODULE
    Log Level                       : INFO
    Include Monitor Logs  : true

<ncli> rsyslog-config add-module module-name=prism level=info server-name=syslog-test

    RSyslog Servers           : syslog-test
    Module Name              : PRISM
    Log Level                       : INFO
    Include Monitor Logs  : true

<ncli> rsyslog-config add-module module-name=audit level=info server-name=syslog-test

    RSyslog Servers           : syslog-test
    Module Name              : AUDIT
    Log Level                       : INFO
    Include Monitor Logs  : true

Nutanixで転送可能なログの種類(モジュール)は、リンク先をご参照ください。
Send Logs to Remote Syslog Server
https://portal.nutanix.com/page/documents/details?targetId=Advanced-Admin-AOS-v7_0:set-rsyslog-config-c.html

▽設定した内容は以下のコマンドで確認可能です。

<ncli> rsyslog-config ls-servers

    Name                      : syslog-test
    Host Address        : 172.22.5.104
    Port                         : 514
    Protocol                : TCP
    Relp Enabled       : false

        Module Name               : SYSLOG_MODULE
        Log Level                           : INFO
        Include Monitor Logs    : true

        Module Name               : PRISM
        Log Level                           : INFO
        Include Monitor Logs    : true

        Module Name               : AUDIT
        Log Level                           : INFO
        Include Monitor Logs    : true

▽設定が完了したら、rsyslogを有効化します。

<ncli> rsyslog-config set-status enable=true

    RSyslog Status            : Enabled
    RSyslog Servers          : 1

        Name                         : syslog-test
        Host Address          : 172.22.5.104
        Port                            : 514
        Protocol                   : TCP
        Relp Enabled          : false

設定が問題なければ、これでログが転送されます。

<参考資料>
Configuring the Remote Syslog Server Settings

4. 転送されたログの確認

ログを受信するrsyslogサーバで、/etc/rsyslog.d/remote.confに記述した保存先のディレクトリを「tree」コマンドで見てみると、以下のようにAHV/CVM個別でディレクトリが作成され、受信したログが保存されていることが確認できます。

[root@rsyslog ~]# tree /var/log/remote/

/var/log/remote/
├── auth
│          ├── NTNX-CVM-01
│          │          ├── sshd.log
│          │          └── mqq sudo.log
│          ├── NTNX-CVM-02
│          │          ├── sshd.log
│          │          ├── sudo.log
│          │          └── systemd.log
│          ├── NTNX-CVM-03
│          │          ├── sshd.log
│          │          ├── sudo.log
│          │          └── systemd.log
│          ├── ahv-01
│          │          ├── sshd.log
│          │          ├── su.log
│          │          └── systemd.log
│          ├── ahv-02
│          │          ├── sshd.log
│          │          ├── su.log
│          │          └── systemd.log
│          └── ahv-03
│                        ├── sshd.log
│                        ├── su.log
│                        └── systemd.log
└── msg
            ├── NTNX-CVM-01
            │            ├── -bash.log
            │            ├── TMPWATCH.log
            │            ├── acropolis.log
            │            ├── audispd.log
            │            ├── auditd.log
            │            ├── cleanup-kernel-core.log
            │            ├── kernel.log
            │            ├── modify_fd_and_exec.log
            │            ├── prism_gateway.log
            │            ├── prism_monitor.log
            │            └── rsyslogd.log
            ├── NTNX-CVM-02
            │            ├── TMPWATCH.log
            │            ├── acropolis.log
            │            ├── audispd.log
            │            ├── auditd.log
            │            ├── cleanup-kernel-core.log
            │            ├── kernel.log
            │            ├── modify_fd_and_exec.log
            │            ├── prism_monitor.log
            │            └── rsyslogd.log
            ├── NTNX-CVM-03
            │            ├── TMPWATCH.log
            │            ├── audispd.log
            │            ├── auditd.log
            │            ├── cleanup-kernel-core.log
            │            ├── kernel.log
            │            ├── modify_fd_and_exec.log
            │            ├── prism_monitor.log
            │            └── rsyslogd.log
            ├── ahv-01
            │            ├── ahv-host-agent.log
            │            ├── audisp-syslog.log
            │            ├── dnf.log
            │            ├── ipfix-exporter.log
            │            ├── kernel.log
            │            ├── logrotate.log
            │            ├── nutanix_privileged_cmd.log
            │            ├── ovs-dpctl.log
            │            ├── pressured.log
            │            ├── rsyslogd.log
            │            ├── su.log
            │            └── systemd.log
            ├── ahv-02
            │            ├── ahv-host-agent.log
            │            ├── audisp-syslog.log
            │            ├── dnf.log
            │            ├── ipfix-exporter.log
            │            ├── kernel.log
            │            ├── logrotate.log
            │            ├── nutanix_privileged_cmd.log
            │            ├── ovs-dpctl.log
            │            ├── pressured.log
            │            ├── rsyslogd.log
            │            ├── su.log
            │            └── systemd.log
            └── ahv-03
                            ├── ahv-host-agent.log
                            ├── audisp-syslog.log
                            ├── dnf.log
                            ├── ipfix-exporter.log
                            ├── kernel.log
                            ├── logrotate.log
                            ├── nutanix_privileged_cmd.log
                            ├── ovs-dpctl.log
                            ├── rsyslogd.log
                            ├── su.log
                            └── systemd.log

今回はこの辺で。

次回の記事はおまけ編で、syslogがすべてのCVM/AHVから転送されている仕組みを紹介します。