Zabbixでホストグループを一度に沢山追加する時に使うスクリプト
使い方
ruby hosgroups_massCreate.rb "追加したいホストグループ名1" "追加したいホストグループ名2" "追加したいホストグループ名3"
あまり使い道はないな。。
SNMPのMIBオブジェクト名からOIDを取得する
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日にローテートされるときにファイル名の日付を間違えて生成してしまう問題を修正しました。
検証環境の概要
- host0とhost1という2つのホストからsyslogを受信している。
- syslog側の設定として、受信したsyslogデータ内のホスト名を見て、動的にホスト毎のディレクトリを生成する設定をしている。
- samba,cifs-util等のWindows共有フォルダへのアクセスに必要なパッケージ、設定は完了済み。
まずは適当に/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