syslogとrsyslog、syslog-ngの挙動の違いをまとめた

LPIC-1の勉強方法をYouTubeで公開中!

LPIC-1の勉強方法を初心者向けに解説!101と102試験対策

こんにちは、Webエンジニアで業務でLinuxを触っているYUUKIです。

最近Linuxのログ管理について学ぶ機会があったので、理解の整理の為にも記事にまとめてみました。

syslog,rsyslog,syslog-ngの違い

syslogとは

ログメッセージを送受信する規格のこと

  • 1980年代に誕生
  • クライアント・サーバ型
  • Syslogプロトコルをベースに使う
  • 他のプログラムからのメッセージを受信したり、出力元や優先度に従って分類してsyslogで定義した出力先に送信できる
  • ネットワーク越しに他の機器(ルータやスイッチなどのネットワーク機器、外部のサーバ)からのログメッセージを受信することもできる
  • ただし古く、問題点がある
    • ネットワーク経由でのメッセージの送受信にUDPを使用。サーバにログメッセージが届いてることが保証できない
    • 暗号化機能を持ってない。全てのログメッセージが平文で送受信される→ログが覗かれる可能性あり
  • 設定ファイル
    • /etc/syslog.conf

syslog-ngとは

次世代のsyslog

  • 1998年に誕生
  • Syslogプロトコルをベースに使う
  • 設定ファイル
    • /etc/syslog-ng.conf
    • syslog.confとは互換性がない(書式が違う)

rsyslogとは

次世代のsyslog

  • 2004から開発が始まった
  • Syslogプロトコルをベースに使う
    • 設定ファイル
    • /etc/rsyslog.conf
  • syslog.confと後方互換性がある
  • TCPで送受信される→安全

CentOS7でよくある構成

systemd-journaldとrsyslogを組み合わせてログを管理する

  • systemd-journaldがログを収集し、rsyslogがログの出力先を決める
    • ほとんどの主要なディストリビューションではこの構成
  • CentOS6では、rsyslogのみでログを管理していた

systemd-journaldとは

  • systemdを採用したシステムで使われる、システムログの収集デーモン
  • 設定ファイルによって、ログの格納場所を以下どちらかに振り分け可能
    • 不揮発性ストレージ /var/log/journal ディレクトリ配下
      • システム再起動しても消えない
    • 揮発性ストレージ /run/log/journal ディレクトリ配下
      • システム再起動したら消える
  • 設定ファイルの場所
    • /etc/systemd/journald.conf
  • デフォルトでは、揮発性ストレージに格納する
    • Storageというパラメータを、以下に設定すると、不揮発性ストレージに格納される
      • Storage=persistent
      • デフォルトは、Storage=auto になってる

rsyslogで使う重要なコマンド

journalctl

 
systemd-journaldでログをみるときに使うコマンド
  • ログの実態はバイナリファイルであり、ファイルを直接参照しても見れない→人が読めないログデータが出力される。
  • 例: cat /var/log/journal/3ASDFADSFDSAFADSFS/ystem.journal
    • バイナリデータが出力される
  • オプション
    • -f(–follow)
      • リアルタイムでログ出力
    • -r(–reverse)
      • 最新のログから出力
    • -s(–since) -u(–until)
      • 日付指定 いつから(-s)いつまで(-u)
    • -k(–dmesg)
      • カーネルのログを出力
    • -n(–lines)
      • 出力行数を指定 -nのデフォルトは10行
    • -p(–priority)
      • 出力ログの重要度を指定

 logger

  • 文字列をsystemd-journalのログ・ファイルに埋め込む
  • 例: logger “test”
    • testが/var/log/messagesに埋め込まれる

systemd-cat

  • コマンドの実行結果をsystemd-journalのログ・ファイルに埋め込む
  • 例: systemd-cat date
    • 日付が/var/log/messagesに埋め込まれる
勉強会で聞いた!評判のプログラミングスクール3選
ポテパンキャンプ

【特長】
3ヶ月のスクール代を全額キャッシュバック!
実質無料で学べるプログラミングスクールです。

【こんな人にオススメ】
・Railsチュートリアルをやり切った
・お金はないがやる気はある
・Ruby/Railsを中心に学びたい
・初心者の域を脱したい

TECH::EXPERT

【特長】
600時間の学習!
スパルタカリキュラムで高収入な転職を実現させるプログラミングスクールです。

【こんな人にオススメ】
・最短最速でエンジニア転職したい
・今の環境をいますぐ変えたい
・お金があってやる気もある
・もう挫折したくない

DMM WEBCAMP

【特長】
転職成功率98%
基礎からプロダクト制作まで徹底したカリキュラムで学べるプログラミングスクールです。

【こんな人にオススメ】
・Web系企業に就職・転職したい
・インフラ系からスキルチェンジしたい
・短期間で集中して学びたい
・チーム開発を学びたい

Linux
この記事を書いた人

元専業アフィリエイター・ブロガー。
現在はWebエンジニアの27歳。
運営メディアは月間150万pvを超えたことも。

YUUKIをフォローする
シェアする
YUUKIをフォローする
YUUKIのWebエンジニア道