【やりたい事】
様々な機器のログを一括管理したり、(特にNW機器では)ログの保存容量が少なく、古いログから消えたりするので
syslogサーバーにログを転送して一定期間保存を行っている。
しかしながら、(特にNW機器では)syslog転送機能を有していても、転送先サーバーの指定は1か所しか送信出来ない
機器もあり、syskigサーバーが障害時やメンテナンス時など、ログ受信出来ない場合がる。
syslogサーバーを2台用意して、pacemakerにてViryualIPを付与して転送する。
※ 今回はVIP切替わり時のラグ(ARPリフレッシュまでの切替遅延)に関しては、無視する。
pacemaker及び関連ソフトのバージョンを合わせる必要がある。
プライマリ: RaspberryPI 2B (RaspberryPi OS-Lite 5.15.84-v7+ armv7l syslog-pm01) 192.168.100.1
セカンダリ: RaspberryPI 2B (RaspberryPi OS-Lite 5.15.84-v7+ armv7l syslog-pm02) 192.168.100.2
(1) ~ (7) までは、pacemakerを使ったdnsサーバー構築と同じ為、説明を割愛。
systemdのログは、イマイチ、ログが見づらかったりするのでsyslogアプリケーションを導入する。
syslogアプリケーションは、これまでデフォルトでrsyslogが使われるケースが多かったが、
ローカル(syslogサーバー自身の)ログと外部から受信するログを分割したいので、syslog-ngを採用した。
以下の方針にて作業を進める。
[syslog-pm01] # apt install syslog-ng
[syslog-pm02] # apt install syslog-ng
pacemakerのサンプルファイルとして、syslog-ng用が存在した為、そのまま利用させて頂く。
・/usr/lib/ocf/resource.d/heartbeat/syslog-ng
よって、/usr/lib/ocf/resource.d/heartbeat/syslog-ng は、修正の必要はない。
設定ファイル : /var/lib/pacemaker/cib/cib.xml
※ 設定ファイルの直接編集は行わないのがセオリーらしい。よって、pcsコマンドで設定登録を行う
[syslog-pm01] # pcs resource create rs-vip-1 ocf:heartbeat:IPaddr2 ip=192.168.100.3 cidr_netmask=24 nic=eth0 –group rg-01
[syslog-pm01] # pcs resource create monitor-syslog-ng ocf:heartbeat:syslog-ng configfile=“/etc/syslog-ng/remote.cfg” –group rg-01
[syslog-pm01] # pcs constraint location rs-vip-1 prefers syslog-pm01=200
[syslog-pm01] # pcs constraint location rs-vip-1 prefers syslog-pm02=100
[syslog-pm01] # pcs status
Cluster name: clst-01 Cluster Summary: * Stack: corosync * Current DC: syslog-pm01 (version 2.0.5-ba59be7122) - partition with quorum * Last updated: Sun Mar 12 11:39:33 2023 * Last change: Sun Mar 12 10:13:16 2023 by root via cibadmin on syslog-pm01 * 2 nodes configured * 2 resource instances configured Node List: * Online: [ syslog-pm01 syslog-pm02 ] Full List of Resources: * Resource Group: rg-01: * rs-vip-1 (ocf::heartbeat:IPaddr2): Started syslog-pm01 * monitor-syslog-ng (ocf::heartbeat:syslog-ng): Started syslog-pm01 Daemon Status: corosync: active/disabled pacemaker: active/enabled pcsd: active/enabled
[syslog-pm01] # pcs constraint location
score値が大きいほうが優先される
Location Constraints: Resource: rs-vip-1 Enabled on: Node: syslog-pm01 (score:200) Node: syslog-pm02 (score:100)
この設定を忘れるとフェイルオーバーされないので注意
[syslog-pm01] # pcs resource defaults
No defaults set
[syslog-pm01] # pcs resource defaults migration-threshold=1
デフォルト設定定義。すべてのリソース定義で有効となる。
すべてのリソースに定義したくない場合は、別途個別に定義が必要。
Warning: This command is deprecated and will be removed. Please use 'pcs resource defaults update' instead. Warning: Defaults do not apply to resources which override them with their own defined values
[syslog-pm01] # pcs resource defaults
Meta Attrs: rsc_defaults-meta_attributes migration-threshold=1
1. 稼働中のサーバーのOSが停止やネットワーク切断等が発生すると、スタンバイ機へVIPが移動します。
[稼働中] syslog-pm01: PriIP 192.168.100.1 SecIP: 192.168.100.3 syslog-pm02: PriIP 192.168.100.2 [syslog-pm01のLAN線を抜く] syslog-pm01: ネットワーク切断中 syslog-pm02: PriIP 192.168.100.2 SecIP: 192.168.100.3
2. syslog-pm01が復活すると、フェイルバックが行われます。
syslog-pm01: PriIP 192.168.100.1 SecIP: 192.168.100.3 syslog-pm02: PriIP 192.168.100.2