参考住所:
http://www.111cn.net/sys/CentOS/81133.htm
https://www.cnblogs.com/laoxiajiadeyun/p/9943742.html
https://blog.51cto.com/liqingbiao/2119953
https://www.cnblogs.com/hasayaki/archive/2013/01/24/2874889.html
Linux上のsyslogサーバを設定します
syslogサーバのログ監視センターは、ネットワークとして使用することができ、ネットワーク経由でログイン送ることができるようにするすべての施設は、(LinuxまたはWindowsのサーバ、ルータ、スイッチ、および他のホストを含みます)、それにログを送信することができます。syslogサーバを設定することで、ホストによって送信されたさまざまな施設/、フィルタをログに記録することができますし、それが簡単に重要なログメッセージを表示し、アクセスすることができます別の場所へとマージします。
rsyslogのsyslogデーモンは標準として、Linuxディストリビューションのほとんどにプリインストールされています。クライアント/サーバ・アーキテクチャの構成では、rsyslogの二つの役割再生しながら:syslogサーバとして1を、rsyslogのは、他の施設からのログ情報を収集することができ、クライアントのsyslogなど2、rsyslogのは、内部ログすることができます。情報は、リモートsyslogサーバに送信されます。
ここでは、Linux上でrsyslogのことで、集中syslogサーバを設定する方法を示します。syslogの標準をブラッシュアップするために、説明に入る前に。
syslogの標準ベース
syslogの機構を介してログを収集する場合、3は重要な事柄を考慮に入れる必要がありますがあります。
施設レベル:プロセス・モニターの種類
重症度(優先)レベル:収集したログメッセージのレベルが
目的:ログメッセージを送信したりします
今、私たちは、コンフィギュレーションが定義されている方法で、より詳細な外観です。
設備階層は、内部システム・プロセスを分類するために使用される方法を定義するいくつかの一般的な設備には、Linuxの場合:
認証:認証関連メッセージ(ログイン)
クーロン:プロセスやアプリケーションのスケジューリング関連のニュース
デーモン:デーモンに関するメッセージ(内部サーバー)
カーネル:カーネル関連のニュース
メール:内部メールサーバ関連のメッセージ
シスログ:syslogデーモン自体の関連ニュース
LPR:印刷サービス関連のニュース
LOCAL0 - local7を:ユーザ定義のメッセージ(local7を一般シスコおよびWindows Serverで使用されます)
重症度(優先)レベルと固定された標準的な略語が値を参照し、数7が最高レベルを有し、これらのレベルは、次のとおり
EMERG:緊急(緊急) - 0
警告:アラート(警報) - 1つの。
クリティカル:クリティカル(キー) - 2
ERR:エラー(エラー)--- 3
警告:警告(警告) - 4
予告:通知(通知) - 5
情報:情報(メッセージ) - 6
デバッグ:デバッグ(デバッグ) - 7
最後に、目標は、声明のsyslogクライアントは、次の3つのいずれかのタスクを実行することになるだろう。
ローカルファイルにログメッセージを保存します。
TCP / UDPのルーティングメッセージを介してリモートsyslogサーバへ。
その出力は、コンソールとして、標準に送信します。
どこrsyslogの中で、syslogの構成は以下のモデルに基づいて構成されています。
[施設レベル]。[重大度レベル] [宛先]
我々はsyslogのを理解した後、今のLinuxサーバーはrsyslogのを介して中央のsyslogサーバとして設定することができます
ステップ1:システム要件を初期化します
中央のログサーバへのLinuxホストのために、我々は別の/ varパーティションを作成し、十分なディスク容量を割り当てるか、特別なLVMボリュームグループを作成する必要があります。これは、syslogサーバは、コレクションがもたらす累積ログの潜在的な成長をとることができるようになります。
ステップ2:rsyslogのデーモンを有効にしてみましょう
。1 $#をMODLOADは、サポートを提供しますimuxsock ためのローカルシステムログ(EG経由ロガーコマンド) 2 テクノロジーにsystemdにを提供する$#MODLOAD imjournalアクセス 。3 。4 ##### UDPオープン受信ログ 。5 $ MODLOAD imudp 。6 $ UDPServerRun 514 。7 $テンプレートREMOTEHOST、" /data/syslog/%$YEAR%-%$MONTH%-%$DAY%/%FROMHOST-IP%.log" ## remotehostのユーザー定義名テンプレートは、ログパスに続く 8を *。* ?RemoteHostプロパティ 。## *できるカスタムテンプレートを有効にする*異なるログカテゴリプラスレベルかもしれ
##例えば、 mail.none;; *の.infoをauthpriv.none; cron.none RemoteHostプロパティ?
##独自のカスタムの様々なタイプできるようにする特殊なテンプレートを使用して
## %%の間を独立変数のパラメータをされます
次のようにコンテンツのフォーマットは次のとおりです
:属性、比較演算子、「値」の場所を保存
プロパティには、以下が含まれ
ているホスト名のために、fromhost送ら
送らfromhost-IPのIP、
MSGは情報が内容から決定されたログ
ホスト名がログホスト名から決定された
比較演算子以下が含ま
備える含ま
isequalを同じ
にSTARTSWITHを...開始
9&##〜リダイレクションルールはrsyslogのデーモンを伝えるために使用されているログメッセージのさらなる処理を停止し、ローカルに書いていません。あなたがリダイレクトルールを使用しない場合は、
##すべてのリモートメッセージが同時にログメッセージが実際には2回書き込まれたことを意味ローカルログファイルに書き込まれている上記の説明に加えて、ログファイルに書き込まれます。
別の結果は、それ自体が、中に##のルールを使用するマシンのホスト名を命名される独自のファイルsyslogサーバのログメッセージで
受け入れるためのログTCP契約開くために#### 11 $ MODLOAD imtcp 12 $ InputTCPServerRun 514 13 14 $をWORKDIRECTORYは/ var / libに/ rsyslogの 15 $ ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 16 17 #######有効/etc/rsyslog.d / * ディレクトリの.conf .confの設定ファイルで終わるすべての 18 あなたがあなた自身のニーズは、マシンのIPシステムログを監視するために主に行く定義することができる場所$ IncludeConfig /etc/rsyslog.d/*.conf ##、常にすべてのダウンロードされた例/etc/rsyslog.d/192.168.0.31.confを持っていません、
##コンフィギュレーションファイルは、このコマンドから構成されていない場合に実行するために、このプロセスは常にロードされるように対応する設定を行う 19
ここで関数isequal等しく、これは、非対数単位、使用してもよい!ISEQUAL、「127.0.0.1」、したがって、本を排除ログを計算します
20 の$ OmitLocalLogging 21 $ IMJournalStateFile imjournal.state 22 mail.none; authpriv.none; *の.info cron.noneの/ var / log / messagesの23 。authPrivの*は/ var / log /安全な24 。メール* -の/ var /ログ/ maillogに25 のcronを*は/ var / log / cronを。26 * .emerg:omusrmsg:* 27 UUCP、news.critは/ var / log /スプーラ28 からlocal7 * /var/log/boot.log。29 LOCAL0 * /。など/ keepalivedの/ keepalived.log
rsyslogのLinuxのモジュールの現在のプレリリース版からのデーモンが、デフォルトでは起動しません。外部メッセージを受け入れることができrsyslogのデーモンを行うことができるようにするためには、その設定ファイルのある/etc/rsyslog.confを編集する必要があります
編集のためにファイルを開き、次の2行は、最初の#文字を削除して行のコメントを解除する場所を見つけます。
$ MODLOAD imudp
$ UDPServerRun 514
これはrsysologデーモンはUDPポート514上のログメッセージを受け取ることができます--- UDPは速くTCPよりも高速ですが、TCPデータストリームの同じ信頼性を持っていません。あなたは信頼性の高い配信メカニズムを使用する必要があるのであれば、あなたは排除することによって、行をコメントすることができます。
$ MODLOAD imtcp
$ InputTCPServerRun 514
注意:TCPとUDPは、耳を傾けると同時に効果的なTCP / UDP接続することができ
ステップ3:ジャーナル・レシーバーのテンプレートを作成します
これは、次のステップで、プロセスがrsyslogdここで使用しているユーザのためのカスタムインタフェースを提供し、ディスクに記録されたログフォーマットの種類に応じて、外部クライアントのログ情報を受信します
[開くある/etc/rsyslog.conf、およびGLOBAL DIRECTIVEブロックの前に次のテンプレートを追加します。
$テンプレートRemoteLogs、 "は/ var / log /%のHOSTNAME%/%のProgramName%.logに" *
*。*?RemoteLogs
&〜
テンプレートのこの簡単な説明では、$テンプレートRemoteLogs(ここでは「RemoteLogsは、」文字列は、任意の他の記述名前にすることができます)の/ var / logの中に別のローカルログファイルに書き込まれrsyslogのデーモンログメッセージを命じますログファイルはリモートログ送信装置とログを定義するアプリケーション名のホスト名の生成に基づいている、名前を付けます。我々はRemoteLogsテンプレート受信したすべてのログに適用されますことを示唆している二行目。
記号「&〜」は、リダイレクトルールを示したログメッセージのさらなる処理を停止しrsyslogのデーモンに通知するために使用され、そしてローカルに書いていません。あなたがリダイレクトルールを使用しない場合、すべてのリモートメッセージが同時にログファイルに書き込まれローカルログファイルに上記のように書き出されるログメッセージが実際には2回書き込まれたことを意味。
このルールを使用すると、ローカルログファイルに設定ファイルを書き、ヘッダとしてマシン名に準拠している、これはディスクスペースとなじみのない人々の無駄に等しいですしますsyslogサーバのログ情報は、上記に加えて書かれている、それ自体でありますコンフィギュレーションの混乱。
あなたがしたい場合は、直接メッセージをログに記録する特定のデバイスまたは重大度レベルのための新しいテンプレートを使用して、次のモードを使用することができます。
[施設レベル]。[重大度レベル]?RemoteLogs
例えば:
RemoteLogs検証メッセージテンプレートに割り当てられたすべての優先レベルのすべての内部ユーザー:
authPrivの。*?RemoteLogs
メール、ユーザ認証とcronメッセージを開くためのプロセスに加えて、すべてのシステムプロセスのメッセージ・レベル・ログは、テンプレートとして指定RemoteLogs生成しました:
*の.info、mail.none、authpriv.none、cron.none?RemoteLogs
私たちは、リモート・クライアントからのすべてのメッセージを書きたい場合は、そのIPアドレスの名を持つ単一のファイルに受け取るには、次のテンプレートを使用することができます。ここでは、テンプレートの「IpTemplate」名前を付けます。
$テンプレートIpTemplate、 "は/ var / log /%FROMHOST-IPの%は.log"
*。*?IpTemplate
&〜
我々はrsyslogのデーモンを有効にし、設定ファイルを編集したら、デーモンを再起動する必要があります。
Windowsは、リモートサーバにログを送信しrsyslogの
私たちのrsyslogのサーバに転送Windowsのクライアント・ログ・メッセージには、Windowsのsyslogエージェントをインストールする必要があります。もちろん、多くのsyslogプロキシは、私たちがフリーソフトウェアのプログラムデータグラムSyslogAgentを使用することが可能な窓、上で実行することができますがあります。
ダウンロード後、インストールしたsyslogプロキシがサービスとして実行するように設定する必要があります。以下に示すように、データを送信するためにどのようなプロトコルを指定し、rsyslogのを使用してリモートサーバのIPアドレスとポート、最後に指定されたイベントログの種類は、送信します。
我々は、すべてのこれらの設定を完了した後、我々はサービスを開始するためにコマンドを使用することができますし、中央rsyslogのサーバラインツールテール-fでログファイルを表示します。
概要
ローカルホストとリモートホストを作成することによりrsyslogの中央サーバーを収集することができ、私たちはより良いと、これらのシステムの内部で何が起こったのか理解することができ、より簡単にそれらの間に任意の遅延や崩壊があるかどうか、彼らの問題をデバッグすることができます。
リモートCentOSのにログオンの設定rsyslogのクライアント
rsyslogのは、Linuxシステムは広く転送するために使用されるか、またはTCP / UDPプロトコルログメッセージによって受信され、オープンソースのツールです。rsyslogのデーモンはrsyslogのプロセスは、ネットワーク上の他のホストからのログデータを収集することができ、これらのホストは、別のリモートサーバにログを送信するように設定され、1がコレクションサーバーをログに記録するように構成された2つの環境に構成することができます。別の使用法をrsyslogのクライアントが内部ローカルフォルダ(例えば、は/ var / log)にログメッセージをフィルタリングし、送信するように構成されてもよい、またはリモートサーバrsyslogのにルーティングすることができるためです。
すでにネットワークがすでに設定され、rsyslogのサーバーを開始していると仮定すると、このガイドでは、どのようにリモートサーバー上のRsyslogに送らその内部CentOSのシステムログメッセージを設定する方法を説明します。これは非常にあなたが/ varパーティション別の大規模なディレクトリのための1つを持っていない場合は特に、ディスク領域を使用するようにシステムを改善します。
ステップ1:のRsyslogデーモンをインストールします。
CentOSの6と7には、rsyslogのデーモンがすでにプリインストールされています。そのrsyslogのは、あなたのCentOSシステムにインストールされていることを確認するには、次のコマンドを使用します。
#のRPM -qa | グリップrsyslogの
# rsyslogd -v
如果处于某种原因,rsyslog守护进程没有出现在你的系统中,请使用以下命令来安装:
# yum install rsyslog
步骤二: 配置Rsyslog守护进程为客户端
接下来的步骤,是要将你的CentOS机器转变成rsyslog客户端,将其所有内部日志消息发送到远程中央日志服务器上。
要实现该功能,请使用你喜爱的文本编辑器打开位于/etc路径下的rsyslog主配置文件:
# nano /etc/rsyslog.conf
开启文件用于编辑后,你需要添加以下声明到文件底部。将IP地址替换为你的远程rsyslog服务器的IP地址。
*.* @192.168.1.25:514
上面的声明告诉rsyslog守护进程,将系统上各个设备的各种日志消息路由到远程rsyslog服务器(192.168.1.25)的UDP端口514。
如果出于某种原因,你需要更为可靠的协议,如TCP,而rsyslog服务器也被配置为监听TCP连接,你必须在远程主机的IP地址前添加一个额外的@字符,像下面这样:
*.* @@192.168.1.25:514
注意,你也可以将rsyslog服务器的IP地址替换成它的主机名(FQDN)。
如果你只想要转发服务器上的指定设备的日志消息,比如说内核设备,那么你可以在rsyslog配置文件中使用以下声明。
kern.* @192.168.1.25:514
修改配置文件后,你需要重启进程以激活修改:
CentOS 7:
# systemctl restart rsyslog.service
CentOS 6:
# service rsyslog restart
非 syslog 日志的转发
在另外一种环境中,让我们假定你已经在机器上安装了一个名为“foobar”的应用程序,它会在/var/log下生成foobar.log日志文件。现在,你想要将它的日志定向到rsyslog服务器,这可以通过像下面这样在rsyslog配置文件中加载imfile模块来实现
首先,加载imfile模块,这只需做一次。
モジュール(負荷= "imfile" PollingIntervalに= "5")
その後、imfileモジュールへのログファイルのパスを検出することができます。
入力(タイプ= "imfile"
ファイル= "は/ var / log / foobar.log"
タグ= "foobarに"
重要度は=「エラー」
施設= "local7を")
最後に、リモートサーバに送らlocal7のデバイスをrsyslogの:
local7の* @ 192.168.1.25:514
ああrsyslogのプロセスを再起動することを忘れないでください!
ステップ3:のRsyslogが自動的に起動してみましょう
rsyslogのクライアントが自動的に各システムの再起動後、次のコマンドを実行して開始してみましょう:
CentOSの7:
#rsyslog.serviceを有効systemctl
CentOSの6:
#chkconfigをrsyslogの上
概要
このチュートリアルでは、私は、リモートサーバーrsyslogのにログメッセージを送信するようにクライアントをrsyslogのためにそれを強制するためにCentOSのシステムを変換する方法を実証しました。ここで私は、クライアントとサーバ間のrsyslogの接続は(例えば保護された企業ネットワークファイアウォールのように)安全であると仮定します。どのような場合には、syslogプロトコルとして前方に安全でないネットワーク上で転送rsyslogのクライアントのログメッセージを設定、または、特にインターネットを介していないかどうかは明示の合意です。安全な送信では、ログメッセージにTLS / SSL暗号化伝送を使用することを検討してください。