0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

■ ルータでサーバ!? ~OpenWrt上で軽量Syslogサーバ~

Posted at

皆様こんにちは。
夕方になると仕事が捗り始めるエンジニア 零壱(ゼロイチ)テクトです。

最近弄った、OpenWrtを入れたFG52E。
色々なパッケージをインストールして
ゲーミングルータとほぼ同じ機能を再現しているのですが
それでもスペックに余裕があります。

以前から、ログ監視をしたいと思っていたので
OpenWrtへSyslogサーバを立てたところ
思った以上に負荷が少なかったので備忘を兼ねて記事にしました。

僕の環境では、syslog-ngをインストールがうまくいかなかったので
今回は、「rsyslog」で構築しました。

1.準備/パッケージ

 ・「rsyalog」のインストール
  メニュー→「System/システム」タブ→「Software/ソフトウェア」を選択。

  

  「Update Lists/リスト更新」を押して最新情報にした後
  「Filter/フィルタ」から「rsyslog」を探します。

  

  検索結果に出てきたら、「rsyslog」の右側の「install/インストール」ボタンを押します。

  これで「rsyslog」がインストール完了と共に
  syslogサーバとして起動します。

2.設定

 ▼設定ファイルを開く

 ・コマンドが必要になります。TeratermなどのTerminalソフトで接続するか
  「ttyd」のパッケージを入れている場合は、
  メニュー→「Service/サービス」タブ→「Terminal」からログインできます。
 ・コマンド画面で、以下コマンドを入力

vi /etc/rsyslog.conf

  「vi」というエディタで、「/etc/」ディレクトリの「rsyslog.conf」を開く
 というコマンドになります。

  ※「vi」はLinuxで標準的なエディタソフトですが
   癖がめっちゃ強いので、きちんと勉強してから挑みましょう。

 ▼設定ファイルの修正

 ・僕の場合、設定ファイルは以下になっていました。

# module(load="imuxsock")
# module(load="imklog")
# module(load="imudp")
# input(type="imudp" port="514")

# $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# *.info;mail.none;authpriv.none;cron.none  /var/log/messages
# authpriv.*                                /var/log/secure
# mail.*                                    /var/log/maillog
# cron.*                                    /var/log/cron
# local7.*                                  /var/log/boot.log

 「#」はコメントアウトですね。
 また、各種ログがそれぞれ別々のファイルに保存されています。

 僕は、最終的にSyslogを一つで扱いたいので
 「#」を外して、ログファイル名も以下に統一します。

module(load="imuxsock")
module(load="imklog")
module(load="imudp")
input(type="imudp" port="514")

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

*.info;mail.none;authpriv.none;cron.none  /var/log/syslog.log
authpriv.*                                /var/log/syslog.log
mail.*                                    /var/log/syslog.log
cron.*                                    /var/log/syslog.log
local7.*                                  /var/log/syslog.log

 「」キーを押して編集モードにします。
 上記のように修正。

 「Escキー」を押して編集モードを解除
 「:」キー→「w」キー→「q」キーで保存終了します。

※ログを分割管理したい方やデフォルト管理したい方は
 そのままデフォルトでも問題ないです。
 ログを見る時に面倒なくらいです。

 syslogの送受信のデフォルト規格は
  プロトコル:UDP
  ポート:514
 なので、上記の設定で問題なさそうです。

※バージョンによってはTCPの設定もあるみたいです。
 syslogは基本udpなので、
 tcpの設定があった場合、コメントアウトのままの方が良いです。

3.確認/ログ

 ・「/var/log/syslog.log」にログを保存するようにしたので
  ターミナル画面で以下のコマンドを実行します。

cat /var/log/syslog.log

  溜まったSyslogを確認できます。
  日時と、OpenWrtのホスト名のログがあれば成功です。

  ※サンプル載せようとしたんですが、見せられない情報ばかりでしたので
   スクショは割愛します。

 ・Syslogサーバが立ったので
  その他のNW機器がある方は、各機器のSyslogサーバの設定を
  OpenWrtルータのIPアドレスに設定します。

 ・僕の場合、Wifiアクセスポイントのsyslogサーバ設定を
  OpenWrtルータのIPアドレスに設定しました。
  設定後、上記ログ確認にてAPからもsyslogが届いていました。

 ・以上でSyslogサーバの導入完了です。
  お疲れ様でした。

4.備考

 ・ここから更に弄るとしたら、ログを定期的に別フォルダに移動するとか
  定期的にログを圧縮するとか、スクリプトを組む必要があります。

 ・わざわざルータにSyslogサーバを立てる方は少ないと思います。
  そもそもOpenWrtルータは、性能的にも容量的にも厳しいルータが多く
  Syslogのようなログを大量に貯めこむ用途には全く向いていません。

 ・今回、僕の場合はFG52Eというストレージとメモリに恵まれた
  OpenWrt化したルータであった為、実験的に入れてみました。

 ・Rsyslogサーバを立てる前後で、メモリ量やCPU使用率で
  目に見える増加はありませんでした。

 ・Syslogを吐いている機器が、そもそも自身とAP2台で
  ログも1日3MB前後にも満たないからだと思います。

    それでは
         どこかの誰かの何かの足しになれば幸いです。
                     01000010 01011001 01000101

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?