LogAnalyzerとRsyslogを使用して集中ログを構成する





最近では、Webインターフェイスを備えた中央ログサーバーを作成する必要がありました。この記事では、経験を共有したいと思います。 WebログビューアLogAnalyzerのインストールと構成について説明します。LogAnalyzerは、すべてのログをリモートRsyslogサーバーに送信するRsyslogクライアントであり、後者が順にログをMySQLデータベースに書き込みます。



OSとして、Ubuntu 12.04を選択しました。



テストWebアドレス:

192.168.1.51 (loganalyzer-mysql.ip)-Rsyslogサーバー、LogAnalyzerもこのホストにインストールされます

192.168.1.50 (loganalyzer-mongo.ip)-サーバーloganalyzer-mysql.ipにログを送信するRsyslog-client



Rsyslog開発者からリポジトリを追加するサーバー部分を構成します。



... # Adiscon stable repository deb http://ubuntu.adiscon.com/v7-stable precise/ deb-src http://ubuntu.adiscon.com/v7-stable precise/ ...
      
      





 # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com AEF0CF8E # gpg --export --armor AEF0CF8E | sudo apt-key add -
      
      





もちろん、標準リポジトリで利用可能なRsyslogのバージョンを使用できますが、syslogユーザーの代わりに514個のTCPポートを開く際に問題が発生しました



パッケージを更新し、将来必要になる追加のパッケージでRsyslogをインストールします。



 # apt-get update # apt-get install rsyslog rsyslog-mysql mysql-server mysql-client
      
      





上で言ったように、ローカルMySQLデータベースでロギングを設定します。 また、インストールプロセス中にいくつかの質問に答える必要があります。 構成中のrsyslog-mysqlパッケージは、将来のログを保存するためのユーザーとデータベースの作成を要求します。







最初に、データベースのrootユーザーのパスワードを指定する必要があります。 その助けにより、rsyslogベースの構造がアップロードされます。







個々のrsyslogデータベースユーザーのパスワードの説明:







MySQLサーバーがホストに存在しなかった場合、インストーラーはそれをインストールし、rootユーザーのパスワードを作成することも提案します。



RsyslogとMySQLを統合するための最終構成は次のとおりです。



 # vim /etc/rsyslog.d/mysql.conf ### Configuration file for rsyslog-mysql ### Changes are preserved $ModLoad ommysql *.* :ommysql:localhost,Syslog,rsyslog,p@ssw0rD
      
      





*。* -すべてのログをデータベースに記録します

ommysql -rsyslogがMySQLに書き込むモジュール

syslog-ベース名

rsyslog -Syslogデータベースに書き込むためのアクセス権を持つユーザー

p @ ssw0rD -rsyslogユーザーパスワード



rsyslogをリロードし、データベースを確認します。



 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Syslog | | mysql | | performance_schema | | test | +--------------------+ mysql> use Syslog; mysql> show tables; +------------------------+ | Tables_in_Syslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ mysql> select * from SystemEvents limit 2 \G *************************** 1. row *************************** ID: 1 CustomerID: NULL ReceivedAt: 2014-02-11 04:22:52 DeviceReportedTime: 2014-02-11 04:22:52 Facility: 5 Priority: 6 FromHost: loganalyzer Message: [origin software="rsyslogd" swVersion="8.1.5" x-pid="11992" x-info="http://www.rsyslog.com"] start ... InfoUnitID: 1 SysLogTag: rsyslogd: EventLogType: NULL GenericFileName: NULL SystemID: NULL *************************** 2. row *************************** ID: 2 CustomerID: NULL ReceivedAt: 2014-02-11 04:22:52 DeviceReportedTime: 2014-02-11 04:22:52 Facility: 5 Priority: 6 FromHost: loganalyzer Message: rsyslogd's groupid changed to 103 ... InfoUnitID: 1 SysLogTag: rsyslogd: EventLogType: NULL GenericFileName: NULL SystemID: NULL 2 rows in set (0.00 sec) mysql>
      
      





ログは予想どおりに書き込まれているようです。

次に、リモートホストからのログの受信を設定します。 これを行うには、Rsyslogサーバー上の構成ファイルを編集します。 行がコメントアウトされているかどうかを確認します。



 # vim /etc/rsyslog.conf ... $ModLoad imudp $UDPServerRun 514 # provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 ...
      
      





rsyslogサービスのオーバーロード。 したがって、514番目のUDPおよびTCPポートはログを受信するために開かれます。



Loganalyzerの構成に進みます。 IP 192.168.1.51のノード、つまりRsyslogサーバーのあるノードにインストールされます。 WebサーバーとしてApacheを使用するため、LogAnalyzerが機能するために必要なパッケージとパッケージをインストールします。



 # aptitude install apache2 libapache2-mod-php5 php5-mysql php5-gd
      
      





最新のLoganalyzerをダウンロードして解凍し、構成スクリプトに必要な権限を設定します。



 # mkdir /tmp/loganalyzer # cd /tmp/loganalyzer # wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz # tar zxvf loganalyzer-3.6.5.tar.gz # mkdir /var/www/loganalyzer # mv loganalyzer-3.6.5/src/* /var/www/loganalyzer # mv loganalyzer-3.6.5/contrib/* /var/www/loganalyzer # chmod +x /var/www/loganalyzer/configure.sh /var/www/loganalyzer/secure.sh # ./configure.sh && ./secure.sh # chown -R www-data:www-data /var/www/loganalyzer
      
      





この記事の公開時点で、Loganalyzerログビューアーの最新バージョンは3.6.5です。

少なくとも、ServerNameパラメーターとDocumentRootパラメーターを変更することを忘れてはならない仮想ホストを作成します。



 # cd /etc/apache2/sites-available # cp default loganalyzer.conf # vim loganalyzer.conf
      
      





 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName loganalyzer-mysql.ip #<<---insert your domainname here DocumentRoot /var/www/loganalyzer #<<---insert root directory of unpacked Loganalyzer <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
      
      





仮想ホストをアクティブにし、構成ファイルを確認して、Apacheを再起動します。



 # a2ensite loganalyzer.conf # a2dissite 000-default # apachectl configtest # service apache2 restart
      
      





loganalyzer-mysql.ip / install.phpリンクを開きます(私の場合、loganalyzer-mysql.ipから/ etc / hostsはIPアドレス192.168.1.51にバインドされています)。 提起された質問に答えます:







ディレクトリのアクセス許可を確認します。







データベースのユーザー構成といくつかの追加オプション。 ここで、上で書いた構成ファイル/etc/rsyslog.d/mysql.confから値を入力します。 これにはMySQLデータベースのみを使用できます。







提供されたログイン/パスワードを使用してデータベースへのアクセスを確認し、LogAnalyzerが動作するテーブルの構造を入力します。







LogAnalyzer Webインターフェースの管理者を作成します。







表示するログソースを追加します。 LogAnalyzerは、テキストファイル、MongoDBまたはMySQLデータベースのレコードを表示できます。 データベースにアクセスするためのオプションについて説明します(以下のスクリーンショットに示すとおりにすべてを記述します。大文字と小文字も重要です)。











すべて準備完了です! ユーザー名/パスワードを使用してログインします。







LogAnalyzerのインターフェイスは次のとおりです。







彼はまた、いくつかのグラフを描く方法を知っています。







Chromeブラウザのユーザーは、[ポップアップを使用してメッセージの詳細をすべて表示する]チェックボックスをオフにすることをすぐにアドバイスします。そうしないと、重大なグラフィックバグが目立ちます。







LogAnalyzerは、1つのホスト、つまりrsyslogが収集するホストからのログのみを反映します。 したがって、リモートサーバーからのログの送信を構成します。このために、ホスト192.168.1.50のrsyslog構成を編集し、オプションを追加します。



 # vim /etc/rsyslog.conf ... *.* @@192.168.1.51 ...
      
      





*。* -重要度別のすべてのログの説明とそれらを書き込むプログラム。

@@ -TCP経由でログを送信

@ -UDP経由でログを送信

192.168.1.51-ログの送信先のサーバー。



syslogへの書き込み方法がわからないサービスのログを送信したい場合があります。 したがって、 同様の構成が役立つ場合があります。



 # vim /etc/rsyslog.d/mongo.conf $ModLoad imfile $InputFileName /var/log/mongodb/mongodb.log $InputFileTag mongodb: $InputFileStateFile stat-mongo-error $InputFileSeverity error $InputFileFacility daemon $InputRunFileMonitor error.* @@192.168.1.51
      
      





ディレクトリ/etc/rsyslog.d/およびconfの末尾にあるものはすべて、メイン構成/etc/rsyslog.confに含まれています。 この場合、テキストファイル/var/log/mongodb/mongodb.logからのログが送信され、エラーとしてマークされます。 /var/log/mongodb/mongodb.logファイル内のすべてが一般的なsyslogに送信され、次のようになります。



 Feb 17 17:27:05 loganalyzer - mongo mongodb : Sun Feb 16 7:26:13 [ clientcursormon ] mem (MB ) res : 15 virt : 624 mapped : 0
      
      





LogAnalyzerの結果ビューは次のとおりです。







ログを保存するためのベースとして、他のオプションを使用できます。 LogAnalyzerとRsyslogの両方がデータベースとの連携をサポートしているため、非リレーショナルMongoDBデータベースが理想的な選択肢となります。



参考文献:

www.k-max.name/linux/rsyslog-na-debian-nastrojka-servera

rtfm.co.ua/debian-log-syslog-mysql-loganalyzer

www.unixmen.com/install-and-configure-rsyslog-in-centos-6-4-rhel-6-4

terraltech.com/syslog-server-with-rsyslog-and-loganalyzer

rogovts.ru/opensource/rsysloganalyzer.html

lists.adiscon.net/pipermail/rsyslog/2013-March/031884.html

loganalyzer.adiscon.com/articles/using-mongodb-with-rsyslog-and-loganalyzer

www.rsyslog.com/sending-messages-to-a-remote-syslog-server



All Articles