csvファイル監視 小数点値のカラムの数値チェック方法
zabbix初心者です。
どなたかご教授ください。
■やりたいこと
csvファイルを監視し、小数点を含む数値がセットされるカラム
の値がある値を超えた場合にアラートメールを送信する。
■できていること
小数点ではなく整数の値は条件判定でき、アラートも送信できている。
<設定例>
test_001.csv中の3カラム目が1の場合アラート
トリガー条件式
{Zabbix server:logrt["/csv/test_[0-9]+.csv"].regexp("^[^,]+,[^,]+,1,")}=1
■こまっていること
カラム値の小数点数値の条件判定方法がわからないです。
たとえば、250.1以上の場合、などです。(桁数は任意)
正規表現の知識もまだまた乏しく行き詰っています。
手段はそこまでこだわらないのでどなたか良案教えていただきたく
お願いします。
:-(
heya - 投稿数: 319
こんにちは。
250.1以上にマッチする正規表現を考えてみました。
0*(([1-9][0-9]{3,}|[3-9][0-9]{2}|2[6-9][0-9]|25[1-9])(\.[0-9]*)?|250\.[1-9][0-9]*)
でも、試してはないので、間違っていたらごめんなさい。あと、{ と } の直前には \ が必要かもしれません。
分かりにくいですが、分解するとこんな感じです。
0* 先頭の0(あれば)
[1-9][0-9]{3,} 1000以上のときの整数部分
[3-9][0-9]{2} 300〜999のときの整数部分
2[6-9][0-9] 260〜299のときの整数部分
25[1-9] 251〜259のときの整数部分
(\.[0-9]*)? 251以上のときの小数部分(あれば)
250\.[1-9][0-9]* 250.1〜251の直前
これを上のトリガー条件式に当てはめるとこうなるんですかね。
{Zabbix server:logrt["/csv/test_[0-9]+.csv"].regexp("^[^,]+,[^,]+,0*(([1-9][0-9]{3,}|[3-9][0-9]{2}|2[6-9][0-9]|25[1-9])(\.[0-9]*)?|250\.[1-9][0-9]*),")}=1
でも、こんなふうに無理やり正規表現を使おうとすると訳分からなくなると思うので、何か別の方法が使えるならそっちの方がいいだろうなと思います(ぱっと思い浮かばないんですが)。
t-kmr - 投稿数: 12
heya様
お世話になります。投稿者です。
ご返信遅くなりました。
ご回答いただきありがとうございます。
お教えいただいたやり方でやりたいことができるようになりました!またかなり正規表現の勉強にもなりました。
工夫すればなんでも判定できるのですね。
かなり行き詰っていたので、本当に感謝しています。どうもありがとうございました。