HA構成のFortigateに対するsnmpgetに失敗した場合の対処法

CLIから設定しないといけないみたい。

Fortinet Knowledge Base - View Document

上記リンク先に、HA構成のFortigateに対してSNMPポーリングをする場合に必要な設定のサンプルが掲載されている。

config system ha
    set ha-mgmt-status enable
    set ha-mgmt-interface "mgmt1"
    set ha-mgmt-interface-gateway 10.100.200.254
end

config system interface
    edit "mgmt1"
        set ip 10.100.200.1 255.255.255.0
        set allowaccess ping https ssh snmp fgfm
    next
end

config system snmp community
    edit 1
            config hosts
                edit 1
                    set ha-direct enable
                    set ip 10.100.100.0 255.255.255.0
                next
    next
end

set ha-direct enableの行を設定してあげなければいけないようで、この行に該当する設定箇所はGUI上は存在しない模様。

logrotateでローテートされたファイルをWindows共有フォルダに自動的にコピーする設定

CentOS7.2にて動作を確認した。

2016/02/05追記:logrotateの定義ファイルにて、翌月1日にローテートされるときにファイル名の日付を間違えて生成してしまう問題を修正しました。

検証環境の概要

まずは適当に/etc/logrotate.d配下に定義ファイルを作る。

vim/etc/logrotate.d/syslog

以下のように記述する。

/var/log/rsyslog/syslog_host0.log # ローテートしたいログファイルを指定
/var/log/rsyslog/syslog_host1.log # 同じく
{
  daily
  rotate 365
  missingok
  notifempty
  dateext
  compress
  create
  sharedscripts
  postrotate
   /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
  endscript
  lastaction
   year=`date +%Y`
   yesterday_year=`date +%Y -d '1 days ago'`
   month=`date +%m`
   yesterday_month=`date +%m -d '1 days ago'`
   today=`date +%d`
   yesterday=`date +%d -d '1 days ago'`
   for f in $*; do
     hostname=`echo $f| sed -E 's/(^\/var\/log\/rsyslog\/.*\/syslog_|\.log$)//g'`
     dir=/cifs/$hostname; [ ! -e $dir ] && mkdir -p $dir
     mv /var/log/rsyslog/$hostname/syslog_$hostname.log-$year$month$today.gz /var/log/rsyslog/$hostname/syslog_$hostname.log-$yesterday_year$yesterday_month$yesterday.gz
     cp -p /var/log/rsyslog/$hostname/syslog_$hostname.log-$yesterday_year$yesterday_month$yesterday.gz /cifs/$hostname/syslog_$hostname.log-$yesterday_year$yesterday_month$yesterday.gz
   done
  endscript
}
課題
  • ローテート対象のファイルを静的指定している。(ワイルドカードで指定したい。)
    • ワイルドカード指定するとlastaction ~ endscript内に渡される引数($*)の値がおかしくなった。(記憶曖昧なため、用再検証)
おまけ: rsyslog.conf

前述のホスト毎にディレクトリを分ける設定はrsyslog.conf内に以下のように記述した。

#Log message template
$template DynFile,"/var/log/rsyslog/%HOSTNAME%/syslog_%HOSTNAME%.log"
*.*                                                     -?DynFile