はじめまして
関西でインフラエンジニアをしている、新卒3年目の コンニャクンです!(※蒟蒻君って書きます) しゅうペーです!※改名しました。
業務の中で技術的に詰まった問題やTipsを忘備として書いていきたいと思っています。
初投稿なので、Markdown記法もなれないですが、私の記事が誰かの手助けになれば幸いです。
今回の経緯
業務の中でWinsyslogといった、Windows上でSyslogを管理するサーバを構築しました。
このWinsyslogでは、Linux仮想マシンに加え、仮想化基盤であるESXiや各種NW機器からのSyslogをこのサーバに集め、管理を行いました。
その際にLinuxの仮想マシンからSyslogを、このWinsyslogに飛ばす設定をそれそれのLinux仮想マシンに入れる必要があったのでいろいろ調べた際の作業記録になります。
(実はログローテーションでもかなりてこずったので、それはまたの機会に...)
ざっくりログ収集イメージ
画像上部のログソースとしては右から、Linuxの仮想マシン、仮想化基盤(サーバ機器)、一番左はFW機器の図のイメージですが、実際はもっといろいろのNW機器からのSyslogを集めました。
ちなみにWindows仮想マシンがログソースにいないのは、Windowsのログ形式がSyslogではなく「Windows イベントログ」といった別の形式のためです。
(Windows仮想マシンのログ管理は、各マシンのイベントログ出力先の保存先容量を変更することで、対応しました。)
Linux仮想マシン側の設定方法(Syslog転送設定)
さて、この記事の本題になります。つらつらと手順を記載していきます。
1.管理者ユーザにてLinuxマシンにログインをします。
2.以下のコマンドを入力し、UDP514ポートが開いていることを確認します。
firewall-cmd --list-all
UDP514ポートが開いていない場合は以下のコマンドを実行し、ポートを開きます。
firewall-cmd --add-port=514/udp --permanent
firewall-cmd --reload
3.以下のコマンドを入力し、rsyslog.confの変更を行います。
(rsyslogはログを管理するデーモンです。詳しくは調べてみてください!)
vi /etc/rsyslog.conf
4.rsyslog.conf内の以下の内容を変更します。(画像は変更後となります。)
- 「
#$ModLoad imudp
」を「$ModLoad imudp
」に変更 - 「
#$UDPServerRun
」を「$UDPServerRun
」に変更 - 「
#*.* @@remote-host:514
」を「*.* @(WinsyslogのIP):514
」
5.viモードを終了保存します。
:wq
6.以下のコマンドを入力し、サービス再起動と起動の確認を行います。
systemctl restart rsyslog
systemctl status rsyslog
State:runningとなっていることを確認できれば、仮想マシン側の設定は完了です!
参考 (Syslog転送確認)
Syslogが転送されることの確認もしておきましょう。
以下のコマンドで、ログを出力できます。(コマンドの詳しい内容は調べみてください)
logger -p syslog.info -t test "Hello!WinSyslog!"
正常にSyslogが出力されているかは、以下のコマンドで確認します。
tail /var/log/messages
Syslogサーバ側の確認はそれぞれでご確認下さい。
さいごに
今回が初投稿で、時間をかけて丁寧に記事を作成してみました。
今後は空いた時間に多くの記事をかけるよう、スピードアップしながら、質のいいものを書いていきたいです。
質問があればコメントしていただければと思います。
それではまたどこかで。