【初心者でもすぐわかる】syslogとは?とsyslogの設定方法

syslogとは
  • このエントリーをはてなブックマークに追加
  • Pocket

syslogとはシステムから出てくるアラートなどの情報をネットワークで転送したり、ログとしてファイル保存していく仕組みのことだ。

Linuxではsyslogデーモン(守護神=常に動いていて必要なときに働いてくれるもの)によってログが記録されている。

このページではsyslogとその設定方法について詳しく説明した。参考にしてほしい。

syslogとは?

syslogとは上でお伝えした通り、システムからのメッセージをファイル保存していく仕組みのことだ。

Linuxではsyslogデーモンによって「ログ」が記録されている。ログとは簡潔にいえば「システムの活動記録」である。ログには「いつなにがおこったか?」が淡々と記述されていく。

各デーモンのログは独自、もしくはsyslogデーモンに統治されている。一見地味であり、クライアントマシンでは軽視されがちだが、サーバ管理の上では非常に重要だ。(本当に)

Linuxサーバをいじることになれば、しょっちゅうログを確認することになるだろう。ログを把握しておくことで、システムの異常にすばやく反応することが出来る。外部、若しくは内部からの攻撃、 その予兆にいち早く気がつける。

そのため、システムのどこにログが残されるのか?日常ではどのようなログが残るのか?そういった日常動作を把握しておこう。

Linuxではsyslogデーモンの選択肢は複数あるが、メジャーなものをとりあげると「rsyslog」が代表的だろう。

ただし一部の先進的なディストリビューションではログを「jounrald」で管理していることがある。このページではCentOS7を取り上げる。CentOS7では現状rsyslogがインストールされ稼働するようになっている。

デフォルトではどこにどのようなログがのこるのか?

基本的に「/var/log」の下にログがのこされることがほとんどだ。

なお、セキュリティの関係上ログはroot権限でないと読み込めないことが多い。

また決して手動で書き込みをしてはいけないことに気をつけよう。以下、多くのシステムではデフォルトで存在するログファイルだ。

  • cron 定期実行にcron系を採用している場合に作成される
  • messages デフォルトでは多くのメッセージがここに記録される
  • maillog システム上のメールに関しての記述がここで記述される。
  • secure セキュリティに関する情報がここに記録される。「us」やログイン情報など

長く稼動しているシステムだと日付のついたログファイルがあると思うが、これはローテーション時に作成されるものだ。ことによりけり、圧縮されているファイルもあるだろう。他にもいろいろなファイルが存在すると思うが、これらはシステムの設定によってかわってくる。

syslog設定ファイルをひもといてゆく

設定ファイルの場所

設定ファイルは「/etc/syslog.conf」もしくは「/etc/rsyslog.conf」となっている

#で始まる行はコメントである。

rsyslogはモジュールで拡張が可能となっている。書式は

$ModLoad <モジュールの名前>

となっている。たとえば

$ModLoad imjournal

などだ。

これはimjournalモジュールを使って、journaldからメッセージを受け取るためのモジュールだ。ほかモジュールはこちらに一覧がある。

http://www.rsyslog.com/doc/v8-stable/configuration/modules/index.html

  • omから始まるモジュールはアウトプットモジュール
  • im から始まるのがインプットモジュール
  • pm から始まるのがパーサモジュール
  • mm から始まるのがメッセージ修正モジュール
  • sm から始まるのがメッセージ生成モジュール
  • その他ライブラリモジュール

となっている。

記述のルール

最も注目しなければならないのは全体の記述ルールだろう。書式は

<ファシリティ>.<プライオリティ> 出力先

となっている。ぱっとイメージしにくいので設定例をあげてみる。

cron.* /var/log/cron

この設定ではファシリティはcron、プライオリティは全てに関して、出力先は「/var/log/cron」

となっている「*」を使用すると「全て」を指定できる

*.info;mail.none;authpriv.none;cron.none /var/log/messages

ほか「;」でくぎると複数のファシリティとプライオリティのセットが指定可能となっている。なおプライオリティに「none」を指定すると、そのファシリティは無効あつかいされる。

つまり、今回の場合、拒否指定しているファシリティ以外のプライオリティ「info」をすべて「/var/log/messages」に書き出せという意味になる。

なお設定は上から順に処理されるようになっている

とすればファイルにログを記述したあと、すべての端末にもログを表示できる。

主なファシリティ

ファシリティとは、メッセージの出力元のことだ。次のようなところが出力元となって、それぞれ選択することができる。

  • auth,authpriv 認証系(usなど)
  • cron cronからのメッセージ
  • daemon daemonからのメッセージ
  • kern カーネルからのメッセージ
  • lpr プリンタ、印刷関係のメッセージ
  • mail システムメール関係のメッセージ
  • syslog syslogの機能関係のメッセージ
  • local0~7 独自設定

プライオリティ

プライオリティはそのまま優先度だ。

基本的にプライオリティをさげるほど記録されるメッセージは増大する。プライオリティを高い順に下に列挙しておく。

  • emerg 致命的状態
  • alert 早急な対処が必要
  • crit 危険な状態
  • err 一般的エラー
  • warning 一般的警告
  • notice 重要な通知
  • info システムからの情報
  • debug デバッグ情報
  • none ファシリティの無効化 ログの除外

出力先

出力先は基本的にファイルの場合が多いが、リモートホストの指定も可能となっている、ログ専用サーバをたてるときなどに使用する。

  • ファイル名 ファイルに出力
  • @ホスト名 リモートホストのsyslogデーモンへ出力する。
  • ユーザ名 ユーザの端末に出力する。
  • /dev/console コンソールへ出力する。
  • * 全てにユーザ端末へ出力する。

設定を終えたら

# systemctl restart rsyslog

としてサービスを再起動すること。

loggerコマンドに関して

loggerコマンドを使用すると任意のログメッセージを生成できる。設定の確認をする段階でやくに立つので活用しよう。

書式は、

logger -p <ファシリティ>.<プライオリティ> -t <タグ> メッセージ

となっている。実際に使用してみると

$ logger -p syslog.info -t TEST "loggingTEST"

logger

となる今回の場合「/var/log/messages」にログがのこるはずなので確認してみよう。今回は「tail」コマンドを「-f」オプションを指定してログを閲覧している。

tail-f-loging

ログのローテーション

ログは放置していると溜る一方なので、ある程度以上溜ると管理しきれなくなってしまう。なので一定期間で世代管理して世代の古いものは、破棄するようにするのが一般的である。

世代の区切りや、破棄の頻度は各々の環境の規模にあわせて管理しよう。ローテーション機能はlogrotateコマンドをcronで定期実行することで実現されている。

設定ファイルは全体設定は「/etc/logrotate.conf」ファイルに記述されている。個別の設定は「/etc/logrotate.d」の下に保存されている。以下設定例をあげてみる。

vi /etc/logrotate.conf

そのほか、

# cat /var/lib/logrotate.status

にログローテーションの現状が記録される。

logrotate-status

まとめ

このページではsyslogの中身と、設定方法についておおよそまとめてお伝えした。大体の内容は把握いただけただろうか?

無尽蔵にとって置くわけにはいかないため、どういったものをどれだけ記録しておくかは、サーバエンジニアの腕の見せ所でもある。経験値も必要になってくるし、要件にもよってくる。考えながら、設定をし、経験を積んでいただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する