■ ルータでサーバ！？ ～OpenWrt上で軽量Syslogサーバ～

![Network_banner3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/4b9f7070-2e81-48e0-afa7-1c8ed222d30e.png)
<br>

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

<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/ec08f703-4a5c-46d9-8c78-a7527b229e57.png">

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

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

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

# １．準備/パッケージ
　・「`rsyalog`」のインストール
　　メニュー→「`System/システム`」タブ→「`Software/ソフトウェア`」を選択。
  
　　<img width="400" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/2aa0e4ef-0e56-47b6-bd3a-559b8ef58cab.png">
  
　　「`Update Lists/リスト更新`」を押して最新情報にした後
　　「`Filter/フィルタ`」から「**`rsyslog`**」を探します。
  
　　<img width="600" target="_blank" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049822/bf011c3e-80f7-4d67-b385-4e3bdb9312fe.png">


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

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

# ２．設定
#### 　▼設定ファイルを開く
　・コマンドが必要になります。TeratermなどのTerminalソフトで接続するか
　　「`ttyd`」のパッケージを入れている場合は、
　　メニュー→「`Service/サービス`」タブ→「`Terminal`」からログインできます。
　・コマンド画面で、以下コマンドを入力
 ```
 vi /etc/rsyslog.conf
 ```
　　「`vi`」というエディタで、「`/etc/`」ディレクトリの「`rsyslog.conf`」を開く
 　というコマンドになります。

:::note info
　 ※「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`**」キーで保存終了します。

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

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

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

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

　　溜まったSyslogを確認できます。
　　日時と、OpenWrtのホスト名のログがあれば成功です。
  
　　※サンプル載せようとしたんですが、見せられない情報ばかりでしたので
　　　スクショは割愛します。

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

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

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

 
# ４．備考
　・ここから更に弄るとしたら、ログを定期的に別フォルダに移動するとか
　　定期的にログを圧縮するとか、スクリプトを組む必要があります。
  
　・わざわざルータにSyslogサーバを立てる方は少ないと思います。
　　そもそもOpenWrtルータは、性能的にも容量的にも厳しいルータが多く
　　Syslogのようなログを大量に貯めこむ用途には全く向いていません。

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

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

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

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