Splunk 外部pythonでファイルをダウンロードして取り込む
これのベストプラクティスはなんなんだろう?
とりあえずできたので、紹介します。
前提条件
前回のCSV
を利用するためにApps seika
を作成。
ディレクトリ構成はこんな感じ
├── bin
│ ├── README
│ ├── dl.py
│ └── seika_dl.sh
├── data
│ ├── seika_20210113.csv
│ └── seika_20210114.csv
├── default
│ ├── app.conf
│ └── data
│ └── ui
│ ├── nav
│ │ └── default.xml
│ └── views
│ └── README
├── local
│ ├── app.conf
│ ├── inputs.conf
│ └── props.conf
└── metadata
├── default.meta
└── local.meta
inputs.conf
inputs.conf
[script://$SPLUNK_HOME/etc/apps/seika/bin/seika_dl.sh]
disabled = false
index = main
interval = 0 20 * * *
sourcetype = csv
[monitor:///Applications/Splunk/etc/apps/seika/data]
disabled = false
sourcetype = seika_csv
crcSalt= /Applications/Splunk/etc/apps/seika/data
[script://$SPLUNK_HOME/etc/apps/seika/bin/seika_dl.sh]
disabled = false
index = main
interval = 0 20 * * *
sourcetype = csv
[monitor:///Applications/Splunk/etc/apps/seika/data]
disabled = false
sourcetype = seika_csv
crcSalt= /Applications/Splunk/etc/apps/seika/data
seika_dl.sh
のinterval
は午後8時に実施
検証の時にはinterval = 0 * * * *
毎分0秒に実施に変更していました。
ここのsourcetype
は使われないので適当
monitor
のsoucetype
は今回のため作成したものを使用
crcSalt
をつけることで、ファイルができたら強制的に読み込むようにしている。
seika_dl.sh
bin/
配下の二つのスクリプトはchmod 755
済
cd $SPLUNK_HOME/etc/apps/seika/data
/opt/anaconda3/bin/python ../bin/dl.py
データ格納用フォルダーに移動したのち、ダウンロード用scriptを起動しているだけのもの
/usr/bin/env/ python
で行けるかと思ったら、Splunk内のpythonが起動してしまうため、フルパスで記載。
dl.py
は前回のにシバンをつけただけ。
pandas
入れて欲しいよ〜
props.conf
props.conf
[seika_csv]
INDEXED_EXTRACTIONS = csv
KV_MODE = none
LINE_BREAKER = ([\r\n]+)
NO_BINARY_CHECK = true
SHOULD_LINEMERGE = false
TIMESTAMP_FIELDS = date
TIME_FORMAT = %Y-%m-%d
category = Structured
disabled = false
pulldown_type = true
[seika_csv]
INDEXED_EXTRACTIONS = csv
KV_MODE = none
LINE_BREAKER = ([\r\n]+)
NO_BINARY_CHECK = true
SHOULD_LINEMERGE = false
TIMESTAMP_FIELDS = date
TIME_FORMAT = %Y-%m-%d
category = Structured
disabled = false
pulldown_type = true
読み込みやすいようにpython側で加工しているのでシンプル
python側でdate
列を一番左にしておくと時間の設定も多分いらない。
検索
SPL
miyagi.spl
index=main sourcetype=seika_csv area="宮城" category="野菜"
| stats sum(*_price) as *_price by date, product_name
結果
index=main sourcetype=seika_csv area="宮城" category="野菜"
| stats sum(*_price) as *_price by date, product_name
解説
-
trellis表示は
stats by
の引数を第1:X軸 第2:カテゴリーとすると、このように綺麗に表示できる。 - ['high_price','middle_price','low_price']の3つをグラフにするので
(*_price) as *_price
で省略して記述している。
まとめ
まだ二日分なのでつまらないけど、データが集まってくるといろいろ使えそうな感じまで持っていけた。
本格運用するのであれば、データそのものはローカルに保存しない方法を検討したほうがいいんだろうなと思いました。
Author And Source
この問題について(Splunk 外部pythonでファイルをダウンロードして取り込む), 我々は、より多くの情報をここで見つけました https://qiita.com/toshikawa/items/a3912ce69eac63e9fece著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .