Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

Photon Linux のシステムログを Syslog サーバへ転送。(logger コマンド)

$
0
0

VMware Photon Linux は、Journald でログ管理されていますが、

デフォルトでは、syslog や rsyslog がインストールされていません。

そこで、システムログの保全のため logger コマンドで Syslog サーバに転送してみました。

 

今回の環境

  • Photon Linux: VMware Photon Linux 1.0 TP1
  • Syslog Server: Oracle Linux 6.6 + rsyslog

 

1. Syslog サーバの準備。

 

まずは、Syslog サーバ側です。

[root@log01 ~]# cat /etc/oracle-release

Oracle Linux Server release 6.6

[root@log01 ~]# rpm -q rsyslog

rsyslog-5.8.10-8.0.1.el6.x86_64

 

rsyslog の設定ファイルを編集して、UDP 514番ポートでログ転送を受け付けるようにします。

/etc/rsyslog.conf ファイルの、「$ModLoad imudp」 と 「$UDPServerRun 514」 のコメントアウト(#)を外しています。

そして、rsyslog を再起動します。

[root@log01 ~]# cp -p /etc/rsyslog.conf rsyslog.conf_bk

[root@log01 ~]# vi /etc/rsyslog.conf

[root@log01 ~]# diff rsyslog.conf_bk /etc/rsyslog.conf

13,14c13,14

< #$ModLoad imudp

< #$UDPServerRun 514

---

> $ModLoad imudp

> $UDPServerRun 514

[root@log01 ~]# service rsyslog restart

システムロガーを停止中:                                    [  OK  ]

システムロガーを起動中:                                    [  OK  ]

 

 

Syslog サーバの、OS のファイアウォール(iptables)でも、

UDP 514番ポートのログ転送を受け付けるようにします。

[root@log01 ~]# vi /etc/sysconfig/iptables

 

/etc/sysconfig/iptables の内容は、下記のようにしました。

※1行だけ追記しています。

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p udp --dport 514 -j ACCEPT ★追記

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

 

そして iptables も再起動します。

[root@log01 ~]# service rsyslog restart

システムロガーを停止中:                                    [  OK  ]

システムロガーを起動中:                                    [  OK  ]

 

2. Photon Linux からのログ転送。

 

今回の Photon です。

logger コマンドは、デフォルトでインストールされる、util-linux の RPM に含まれるものを使用します。

root [ ~ ]# cat /etc/photon-release

VMware Photon Linux 1.0 TP1

root [ ~ ]# which logger

/usr/bin/logger

root [ ~ ]# rpm -qf /usr/bin/logger

util-linux-2.24.1-1.x86_64

 

Photon Linux から、テストログを転送してみます。

今回の Syslog サーバの IP アドレスは、「192.168.5.237」 にしてあります。

下記のように、logger コマンドを実行すると・・・

root [ ~ ]# logger --udp --port 514 --server 192.168.5.237 "test log"

 

Syslog サーバに転送され、/var/log/messages ファイルにログが出力されます。

192.168.1.31」 は、Photon の IP アドレスです。

[root@log01 ~]# tail -1 /var/log/messages

Jul 31 08:38:09 192.168.1.31 root: test log

 

Photon のシステムログ(Journald のログ)は、下記のように転送できます。

root [ ~ ]# journalctl -f -n 1 | logger --udp --port 514 --server 192.168.5.237

 

Syslog サーバの /var/log/messages

Jul 31 08:38:22 192.168.1.31 root: -- Logs begin at Wed 2015-07-29 23:35:36 JST. --

Jul 31 08:38:22 192.168.1.31 root: Jul 31 08:37:40 photon01 vmafdd[316]: t@139706123613952: VmAfSrvGetDomainName succeeded

Jul 31 08:38:40 192.168.1.31 root: Jul 31 08:38:40 photon01 vmafdd[316]: t@139706123613952: VmAfSrvGetDomainName succeeded

・・・

 

3. Photon Linux からのログ転送を自動開始する。

 

Photon の Systemd で、OS 起動時にログ転送が自動開始されるようにしてみます。

 

まず Photon Linux に、システムログを転送するスクリプトを作成しておきます。

root [ ~ ]# vi /etc/systemd/scripts/logger.sh

root [ ~ ]# chmod +x /etc/systemd/scripts/logger.sh

root [ ~ ]# ls -l /etc/systemd/scripts/logger.sh

-rwxr-xr-x 1 root root 224 Jul 31 07:03 /etc/systemd/scripts/logger.sh

 

スクリプトの内容は下記のようにしてみました。

 

/etc/systemd/scripts/logger.sh

#!/bin/sh

LOG_SERVER=$1

PORT=514

LOGGER_TAG=PHOTON_LOGGER

logger --udp --port $PORT --server $LOG_SERVER -t $LOGGER_TAG "start_logger_script"

journalctl -f -n 1 | logger --udp --port $PORT --server $LOG_SERVER -t $LOGGER_TAG

 

Systemd の Unit ファイルも作成しておきます。

作成したスクリプトは、この Unit ファイル内で指定しています。

※スクリプトの引数にある「log01.godc.lab」は、今回の Syslog サーバのアドレスです。

 

/etc/systemd/system/logger-journald.service

[Unit]

Description=Journald Logger

ConditionFileIsExecutable=/etc/systemd/scripts/logger.sh

After=network-online.target

 

[Service]

ExecStart=/etc/systemd/scripts/logger.sh log01.godc.lab

 

[Install]

WantedBy=multi-user.target

 

Systemd に logger-journald.service という名前でログ転送のサービスを登録して、起動します。

これで、Photon Linux の起動に合わせて、ログ転送されるようになります。

root [ ~ ]# systemctl enable logger-journald.service

Created symlink from /etc/systemd/system/multi-user.target.wants/logger-journald.service to /etc/systemd/system/logger-journald.service.

root [ ~ ]# systemctl start logger-journald.service

 

Syslog サーバには Jouranald のログが転送されて、

/var/log/messages ファイルには、以下のようなログが出力されます。

※下記の例だと Lightwave っぽいログかもしれませんが・・・

Jul 31 08:39:22 192.168.1.31 PHOTON_LOGGER: start_logger_script

Jul 31 08:39:22 192.168.1.31 PHOTON_LOGGER: -- Logs begin at Wed 2015-07-29 23:35:36 JST. --

Jul 31 08:39:22 192.168.1.31 PHOTON_LOGGER: Jul 31 08:39:22 photon01 systemd[1]: Started Journald Logger.

Jul 31 08:39:40 192.168.1.31 PHOTON_LOGGER: Jul 31 08:39:40 photon01 vmafdd[316]: t@139706123613952: VmAfSrvGetDomainName succeeded

・・・

 

以上、Photon のシステムログを Syslog サーバに転送してみる話でした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>