回線、クラウドサービスなどの障害、メンテナンス情報など
何かと重宝するRSS!
しかし、都度確認するのは面倒、、、
っという事でコマンドラインでRSSを受信しテキストに保存を行う、
Perlのツールを作ってみました!!
出力したテキストを監視ツールでテキスト監視をすると、
事件発生時に自動的に連絡が届きます。
では、早速中身ですが、
作りとしては、Perlのライブラリで
XML::TreePPとXML::FeedPPを使って、RSSを読み取り
YAML::Tinyを使って、最後に取得したRSSアイテムを
ハッシュ値として保存します。
また、汎用的なRSSリーダーとなるように、
収集するRSSアドレスなどは引数として扱ってみました。
では、実際にJVN iPediaのインシデント情報を取得すると
<<JVN iPediaの取得サンプル>>
では、実行手順ですが、
まずは、rss_jvnipedia.plを実行!!!
すると同じディレクトリに必要なファイルが勝手に作成され、RSSの取得に励みます。
# 実行例:perl 'rss_jvnipedia.pl' ipedia http://jvndb.jvn.jp/ja/rss/jvndb.rdf jvn_ipedia.log info
# 実行内容
# <実行ファイル> [引数1] [引数2] [引数3] [引数4]
# 引数1:サービス名(後から検索でき易くする名前)
# 引数2:収集URL(RSSを収集するURL)
# 引数3:出力ファイル(出力ファイルのパス)
# 引数4:ハッシュ配列名(ハッシュ値を保存する名前)
実際に取得した内容としては、↓こんな感じで出力されます。
---
[title]: GNU bash における任意のコマンドを実行される脆弱性
[desc]: GNU bash は、環境変数の値の関数定義を適切に解析しないため、任意のコマンドを実行される脆弱性が存在します。
本脆弱性は、CVE-2014-6271、CVE-2014-7169、および CVE-2014-6277 に対する修正が不十分だったことによる脆弱性です。
[severity:score]: High : 10.0
[vector]: (AV:N/AC:L/Au:N/C:C/I:C/A:C)
[identifier]: JVNDB-2014-004476
[link]: http://jvndb.jvn.jp/ja/contents/2014/JVNDB-2014-004476.html
[pubData]: 2014-10-01T13:40+09:00
[lastData]: 2014-12-26T10:00+09:00
---
で、Zabbixで監視すると↓のような画面となります。

サンプルとしてIPAから配信されているJVN iPediaを取得するスクリプトとしていますので、
実際に使ってみる場合は、取得先のRSS形式に合わせて、
RSSアイテムをカスタマイズする必要はありますよ。
では今回使用したPerlでRSSを取得するサンプルコードです。
RSS取得サンプルコード
<<JVN iPediaの取得サンプル>>
Cron用のバッチシェル
<<実行シェルのサンプル>>
ちょっと説明が不十分かも知れませんが、
気になった方は「JVN iPediaの取得サンプル」をご覧ください。
ではでは。
0 件のコメント:
コメントを投稿