# [rsyslog](https://www.rsyslog.com/doc/index.html) やんごとなき理由により某組織のネットワーク管理を予算ほぼゼロで保守する必要性があり, 数百のネットワーク機器のlogの収集・検索・可視化等を1箇所で行うため,rsyslogを使いsyslog受信からlogstashへlogをforwardingに関する備忘録である. ChatGPTとかがない時代に試行錯誤して構築したので,最適化されていないと思うがデータフローの概念図はこんな感じ. ![](elasticstack.jpg) 当然ならがらsyslogをUTPで受信できるようにファイヤーウォールには穴あけしている. ## rsyslog.conf デフォルトの設定から変更したもののうちlogstashへのforwaidingに関するもののみ記載している. まず,ログの取りこぼしがないようにburstとintervalを無制限にする. ``` module(load="imjournal" StateFile="/var/lib/rsyslog/imjournal.state" ratelimit.burst="0" ratelimit.interval="0" ) ``` 私の環境ではrsyslogとlogstashは同じホスト上で動いているので,転送先を"0.0.0.0"として logstashの設定ファイルで定義した適当な待ち受けポートに転送する. ``` if ($fromhost-ip == "xxx.yyy.www.zzz") then { action( type="omfwd" target="0.0.0.0" port="5044" protocol="udp" ) } ``` ドメイン(192.168.11.0/24)で設定する場合は ``` if ($fromhost-ip startswith "192.168.11.") then { *.* action( type="omfwd" target="0.0.0.0" port="6647" protocol="udp" ) } ``` のようにすれば良い. geminiに設定に関してたづねるとどうやら最近は新しいRainerScript形式が採用されているらくし, 以下のように提案してきた.これが正しいかは未検証であるが参考までに ``` if ($fromhost-ip startswith "192.168.11.") then { action( type="omfwd" target="0.0.0.0" # LogstashのIP port="6647" protocol="udp" ) stop # これより下の処理(ローカルファイル保存など)を行わない場合は追加 } ``` ```{toctree} :maxdepth: 1 another_page