0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Alpine LinuxでSyslogサーバを構築し、Syslogを受け取る検証を実施しました!

Last updated at Posted at 2025-11-12

前書き

 業務上、Syslogサーバでの検証が必要になったため、自分で構築してみることにしました。
 検証用として VirtualBox 上に軽量な Syslog サーバを立てたいと考えましたが、一般的な Ubuntu や Debian を使うとリソース消費が大きくなってしまいます。

 それに対して Alpine Linux は非常に軽量で、仮想環境でも負荷が極めて低いため、今回は Alpine Linux を採用することにしました。

 つまり、Alpine は無駄が少なく、動作が速く、ディスク容量の節約にも優れている点が気に入りました。

環境:macOS 13.7.2(Intel)、VirtualBox
利用するイメージ:Alpine 3.21 (x86_64) ISO
standard ISO:alpine-standard-3.21.0-x86_64.iso
https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/x86_64/

設計目安

用途:ネットワーク機器/サーバから syslog(UDP/TCP 514)を受信し、送信元ホスト別に保存

VMリソース:
・vCPU: 1
・RAM: 1GB
・ディスク: 40GB
・ネットワーク: Bridged(同一L2内で通信)

保存方針:/var/log/remote 以下にホスト別ディレクトリ、日次ローテーション、総量 20GB 上限

VirtualBox上でVMを立ち上げ

  1. 新規 → 名前例「syslog-alpine」 / タイプ: Linux / バージョン: Other Linux (64-bit)

  2. メモリ:1024MB(512MB でも可)

  3. プロセッサ:1

  4. 仮想ディスク:20GB

  5. 設定 → システム:EFI不要(チェック外すまま)

  6. 設定 → ネットワーク: ブリッジアダプター(Wi-Fi を選択)

  7. 設定 → ストレージ:コントローラに Alpine ISOをマウント

  8. Boot Order(起動順序)を確認
    VirtualBox → Settings → System → Motherboard
    Boot Order:Hard Disk を最優先にしてください。
    Screenshot 2025-11-11 at 22.42.29.png

  9. 起動して OS インストールへ

setup-alpineで環境を初始化

1 . コマンドラインで「setup-alpine」を入力し、順番に出てくる質問に対してキーボード入力で回答していきます。

setup-alpine

2 . Keyboard layout(キーボードレイアウト): jsかus

3 . Keyboard variant(キーボードバリアント): 特にこだわりがなければ、そのまま Enter、そのまま進まない場合は再度「us」

4 . System hostname(ホスト名): syslog

5 . Network interface(ネットワークインターフェース): eth0

6 . IP の取得方法(DHCP を使うか): dhcp
Screenshot 2025-11-11 at 22.15.25.png

7 . DNS の手動設定を行うか?: 不要なので Enter

8 . root パスワード設定: 入力・再入力

9 . タイムゾーン: Asia/Tokyo

10 . Proxy(プロキシ): 使わない場合は Enter

11 . APK ミラー(パッケージ倉庫): デフォルトで OK → Enter

12 . ユーザーをセット
Screenshot 2025-11-11 at 22.08.44.png

12 . SSH サーバの選択: 最も一般的で便利なのは openssh → openssh

13 . SSH 設定: 追加の設定が聞かれますが、デフォルトで OK なので Enter

14 . インストール先ディスクの選択: VirtualBox の disk は通常 /dev/sda → sda

15 . インストール方法(sys / data / lvm): 通常は sys(フルインストール) を選びます → sys

16 . ディスク消去の確認: y

17 . 16の後にインストールが自動的に開始、完了すると:「Installation successful」が表示されます。

Screenshot 2025-11-11 at 22.09.40.png

Screenshot 2025-11-11 at 22.17.53.png

18 . 再起動:reboot

19 . 再起動後に確認すべきこと: 「ip addr」でネットワークが上がっているかを確認、次に「ping 8.8.8.8」でインターネット通信化どうかを確認します。

20 . パッケージ更新: apk update

Syslogサーバを構築

1 . Alpine の基本更新とログサービス導入

apk update
apk upgrade
apk add syslog-ng logrotate

※syslog-ng が標準のSyslogデーモンです(rsyslogより軽い)。

2 . 自動起動の設定

rc-update add syslog-ng default
service syslog-ng start

3 . Syslog受信設定
デフォルトではローカルログしか受け付けないため、外部デバイスからログを受け取るようにします。

ファイルを編集:

vi /etc/syslog-ng/syslog-ng.conf

次の内容を追加または修正します(最後の方にOK)

# --- Remote log receiver ---
source s_net {
    syslog(transport(udp) ip("0.0.0.0") port(514));
    syslog(transport(tcp) ip("0.0.0.0") port(514));
};

destination d_per_host {
    file("/var/log/remote/${HOST}/${PROGRAM}.log");
};

log { source(s_net); destination(d_per_host); };

保存して再読み込み:

service syslog-ng reload

4 . ログファイルのローテーション設定(容量制限)
/etc/logrotate.d/syslog-ng を作成:

/var/log/remote/*/*.log 
{
    daily
    rotate 30
    size 50M
    compress
    delaycompress
    missingok
    notifempty
}

これで毎日ローテーションし、最大30世代・1ファイル50MBで古いものを自動圧縮します。

5 . ファイアウォール制御(UDP 514のみ開放)

apk add iptables
rc-update add iptables default
iptables -A INPUT -p udp --dport 514 -j ACCEPT
iptables -A INPUT -p tcp --dport 514 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP
/etc/init.d/iptables save

6 . テスト送信
ホストMacから:

echo "<13>$(date) Hello from test Mac" | nc -u -w1 <Syslog_VM_IP> 514

<13> は Syslog PRI(facility+severity)

13 = user.notice(ユーザーログ・通知レベル)

-u = UDP

-w1 = タイムアウト1秒

Syslog_VM_IP = あなたの Syslog サーバのIPアドレス

514 = Syslog標準ポート

その後、VM上で確認:

ls /var/log/remote/
tail -f /var/log/remote/<送信元ホスト名>/messages.log

または

tail -f /var/log/remote/*/*.log

Screenshot 2025-11-12 at 20.35.56.png

MacからのSyslogを受信できました!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?