今回は、rsyslogでテンプレートを定義する時に利用するプロパティについてです。 ※評価は、CentOS6.6(x86_64) + rsyslog-8.7.0で行っています 利用できるプロパティには、hostnameやfromhostなどがあり、 (参考)http://www.rsyslog.com/doc/v8-stable/configuration/properties.html プロパティの書式は以下のようになっていています。 (参考)http://www.rsyslog.com/doc/v8-stable/configuration/property_replacer.html %property:fromChar:toChar:options% 通常は、propertyの部分だけを利用することが多いと思いますが、他の部分を操作することにより、ログの出力を色々と変化させる事がで
現在、syslogメッセージのフォーマットは以下の2つの標準があります。 BSD-syslogメッセージ(または、legacy-syslogメッセージとも呼ばれています。) IETF-syslogメッセージ BSD-syslogメッセージフォーマットについては、過去記事「BSD-syslogメッセージフォーマット」で紹介しています。合わせてご覧ください。 今回は、IETF-syslogメッセージフォーマットについてご紹介します。 IETF-syslogメッセージフォーマット(RFC 5424)IETF-syslogメッセージフォーマットはRFC 5424※で提唱されており、以下の3つの要素で構成されます。 HEADER STRUCTURED-DATA MSG ※参考: https://tools.ietf.org/html/rfc5424 HEADERHEADER要素は、さらに以下の要素で
RHEL/CentOS、Xenを中心にメモを残していきます。内容は無保証。適用する場合は、十分確認の上、自己責任で。 指摘、質問、要望をコメントしてもらえると喜びます。 日々刻々、サーバにログはたまり続け、ディスク容量を圧迫する場合がある。これを回避するため、ログファイルをrename (mv)、圧縮(gzip)し、保存期間を過ぎたものを削除する、ローテートと呼ばれる操作を行う必要がある。RHELやCentOSでは、logrotateというコマンドでこれを行う。 このlogrotateの設定ファイルは、/etc/logrotate.confおよび、その中から読み出される/etc/logrotate.d/*である。詳しくは、logrotate(8)を参照のこと。 さて、このlogrotateを使って、複数のサーバのログを、NFSなどの共有ディスク(仮に/var/oldlogsとする)に集約す
前回「rsyslogの導入」で解説したrsyslogの導入方法に続き、活用方法を紹介します。 rsyslogでは設定ファイルにマクロやテンプレートを適用することができます。ログの内容を自由に組み立てたり、ファイル名に日時やホスト名を付加することが可能です。また拡張モジュールを追加することで、ログをメールで送信したりデータベースに格納することができます。今回はそうしたrsyslogの活用方法を解説します。 注意:以降はrootユーザーにて作業を行います。Ubuntuのようにrootユーザーが直接使用できない場合には、sudoコマンドを使用します。rsyslogのインストール方法や基本的な設定方法は、第4回「rsyslogの導入」を参考にしてください。 rsyslogをバージョン3互換モードで動作させる 前回の「rsyslogの導入」では、rsyslogのインストール方法を解説しました。前半の
PHP の error_log に syslog を指定した際に他のログと混ざらないようにする 2013-08-30-1: [PHP] PHP のランタイムのエラーログですが、ファイルを指定するより syslog 経由にしたほうが何かと楽です。 ファイルの場合は、ユーザ権限で実行している cli でのエラーと httpd でのエラーの両方を記録するために、 パーミッションをもしかしたら 777 とかにする必要があるかもしれませんが、 syslog の場合は特にそんなこと気にする必要がありません。 php.ini で下記の設定をするだけなのですが、これだけだとちょっと都合が悪いです。 sudo vim /etc/php.ini error_log = syslog というのも送信されるログのファシリティは user なので、例えば CentOS 6 だと /var/log/messages
どうも、 rsyslog の local ファシリティが 8 個しか使えないのはなぜなんだろうってずーっと思っているかっぱ(@inokara)です。 はじめに local ファシリティはなぜ 8 個なのって純粋な疑問から始まって local ファシリティを使いきった場合にどうするか探してみました。 local ファシリティはなぜ 8 個なの? RFC 3164 で定義されてます。8 ページ目あたりを御覧下さい。あと、以下のようにソースコードにもカッチリと定義されていますね…。 #ifdef SYSLOG_NAMES CODE facilitynames[] = { { "auth",LOG_AUTH }, { "authpriv", LOG_AUTHPRIV }, { "cron", LOG_CRON }, { "daemon", LOG_DAEMON }, { "ftp", LOG_FT
apacheのログの中に (internal dummy connection) という、自分のIPアドレスでの接続が表示されます。 これは、 pipe-of-death という仕組みで、apacheの子プロセスを 終了させる過程で生まれているようです。 ・MaxRequestsPerChild 制限や MaxSpareServers 制限を超えた ↓ ・不要な子プロセスを終了させたい ↓ ・ ap_mpm_pod_signal を使って終了指示 ↓ ・子プロセスが通信中だったら、通信が終了次第プロセス終了 acceptで時間切れまで待っているような場合は、ダミーの接続を起こすことでaccept状態から抜ける。 これが(internal dummy connection)。 ダミーなので、接続後、すぐに終了。このタイミングで子プロセスが終了する。 こうやって、増えすぎた子プロセスを終了させ
複数台のサーバーやクラウド環境を組み合わせてのサービス運用においては、ログの収集方法に工夫が必要となる。こういった場合に有用なのが、さまざまなログの収集手段を提供するfluentdだ。今回はfluentdのアーキテクチャやそのインストール/設定方法、基礎的な設定例などを紹介する。 さまざまな方法でログを収集できるfluentd 今回紹介するfluentdは、Treasure Dataが開発するログ収集管理ツールだ(図1)。オープンソースで公開されており、Linuxや各種UNIXで動作する。 図1 fluentdのWebサイト ログ収集のためのソフトウェアとしてはsyslogdやsyslog-ngなどが有名だが、fluentdがこれらと異なる点としては、以下が挙げられる。 さまざまなソースからのイベントをさまざまな媒体に出力できる fluentdの大きな特徴としては、ログの収集方法やログの記
ここでは、ログの肥大化を防ぐためのログのローテーションについて解説していきます。syslog や他のプロセスが出力するファイルは放置していくとどんどんサイズが大きくなり、ディスクスペースを圧迫していきます。インストール時は/var ディレクトリのディスク占有率が0%であっても、数週間、数ヶ月経過するごとにあっという間に占有率が増大していることに気がつくと思います。しかし、これらの出力されるログを何世代分ローテーションさせるかといったことを予め決めておけば、指定した以上のファイルは作成されなくなり、その中でログがローテーションされていくのでログサイズの肥大化を防止することができるのです。RPMでパッケージをインストールしている方は、ほとんどログのローテーションをカスタマイズする必要はありませんが、ソースからコンパイルしてインストールした場合には、ログのローテーションは必須の作業となります。ま
99syslog - syslog() 及び syslogd の考察(最終更新:2003/5/30) syslogd は、標準ではログメッセージを記録する度に fsync() します。 syslogd の能力低下は、システム全体の能力低下に繋がります。 syslogd の能力低下を防ぐには ログメッセージの「取りこぼし」について ログ時間がズレている? そもそも「ログメッセージに書かれている時間」は、いつの時間だ? syslogd は、ログサーバにログメッセージを送る際、相手に時間を送りません。 syslogd の考察 ここでは、私が、Linux システムで使われている syslogd(sysklogd-1.4.1) の ソースを解析して分かった事について述べます。 syslogd は、標準ではログメッセージを記録する度に fsync() します。 syslogd は、syslog() を
logrotate は、放っておけば際限なく肥大してしまう各種ログファイルに対して、世代ローテーションをして何代目かになったら破棄するとか、それらをメールでどこかに送信するなど、様々な処理が行える。世代管理やサイズ制限などの機構を自前で持たないプログラムからのログを管理するのになくてはならない道具だ。 Logrotate実行の流れ logrotate 自体はデーモンではないので cron (※1) と組み合わせて利用する。実行の流れは、RedHat系ディストリビューションでは以下のようになっている: cron が run-parts コマンド(※2)で /etc/cron.daily/logrotate スクリプトをキックする。 /etc/cron.daily/logrotate は 主設定ファイルである /etc/logrotate.conf から設定を読み込んで logrotate を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く