LogtailでCSVデータを収集するLogService
本記事では、LogServiceを使ってLogtailでCSVデータをLogServiceへ収集する方法を記載します。
前書き
LogService は、リアルタイムデータロギングサービスです。 ログの収集、消費、出荷、検索、および分析をサポートし、大量のログを処理および分析する能力を向上させます。
少し前になりますが、LogServiceについての資料をSlideShareへアップロードしていますので、こちらも参考になればと思います。
https://www2.slideshare.net/sbcloud/alibaba-cloud-log-service
今回はLogtailを使ってAlibaba Cloud LogServiceへ収集、蓄積、可視化してみましょう。構成図で、こんな感じです。
プロジェクト作成(LogService全体で共通事項)
まずはプロジェクトを作成します。LogServiceコンソールから 「Create Project」を選択し、起動します。
Project Nameをここでは「techblog」にし、プロジェクトを作成します。
その直後に "Do you want to create a Logstore for log data storage immediately?"、「Log Storeを作成しますか?」とポップアップが出ます。 Log StoreはLog Serviceでデータを蓄積するものなので、「OK」を選定します。
LogStore Nameをここでは「logtail_logstore」と入力し、LogStoreを作成します。
その後、「LogStoreが作成されました。今すぐデータアクセスしますか?」とポップアップが出ますが、これは必要に応じて選定すると良いです。 ちなみに「Yes」を選択した場合、50を超える様々なデータアクセス手法のコンソールが表示されます。
データ格納について
(再掲)このシナリオでは 以下の図のように、logtailを使ってcsvファイルを登録します。
ポイントは logserviceはデータが登録された時点で、自動でtimestampが付与されますが、csvファイルなどにてtimestampがあった場合、それをベースに反映する方法です。
STEP1: Logtailの導入
helpドキュメント に沿ってECSインスタンスを作成・起動します。
※LogServiceと同じリージョンである必要があります。著者は今回日本(東京)リージョンを選定します。
※OSはなんでも良いですが、今回はLinux、CentOS 7.8を選択します。
ECSインスタンス起動直後は以下コマンドを実施します。
[root@sts ~]# yum -y upgrade[root@sts ~]# wget http://logtail-release-ap-northeast-1.oss-ap-northeast-1.aliyuncs.com/linux64/logtail.sh -O logtail.sh; chmod 755 logtail.sh; ./logtail.sh install ap-northeast-1-internet〜略〜logtail-linux64.tar.gz download successinstall logtail files successagent stub for telegraf has been installedsystemd 219+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDNuse systemd for startupCreated symlink from /etc/systemd/system/default.target.wants/ilogtaild.service to /etc/systemd/system/ilogtaild.service.systemd startup doneilogtail is runninginstall logtail successstart logtail success{"UUID" : "B3CAFD71-CD5F-41EE-9AA0-F650B7328756","hostname" : "sts","instance_id" : "343FD796-2DFE-11EB-95D8-00163E005CFC_192.168.0.195_1606185538","ip" : "192.168.0.195","logtail_version" : "0.16.50","os" : "Linux; 3.10.0-1127.19.1.el7.x86_64; #1 SMP Tue Aug 25 17:23:54 UTC 2020; x86_64","update_time" : "2020-11-24 10:38:58"}
これでlogtailが無事インストールされたと思います。
試しに2つのコマンドで確認しましょう。
[root@sts ~]# cat /usr/local/ilogtail/app_info.json[root@sts ~]# cat /usr/local/ilogtail/ilogtail_config.json
app_info.jsonはlogtailのバージョンなどの情報、ilogtail_config.jsonはlogtailでデータを収集するパラメータです。
[root@sts ~]# cat /usr/local/ilogtail/app_info.json{"UUID" : "B3CAFD71-CD5F-41EE-9AA0-F650B7328756","hostname" : "sts","instance_id" : "343FD796-2DFE-11EB-95D8-00163E005CFC_192.168.0.195_1606185538","ip" : "192.168.0.195","logtail_version" : "0.16.50","os" : "Linux; 3.10.0-1127.19.1.el7.x86_64; #1 SMP Tue Aug 25 17:23:54 UTC 2020; x86_64","update_time" : "2020-11-24 10:38:58"}[root@sts ~]#[root@sts ~]# cat /usr/local/ilogtail/ilogtail_config.json{"config_server_address" : "http://logtail.ap-northeast-1.log.aliyuncs.com","data_server_list" :[{"cluster" : "ap-northeast-1","endpoint" : "ap-northeast-1.log.aliyuncs.com"}],"cpu_usage_limit" : 0.4,"mem_usage_limit" : 384,"max_bytes_per_sec" : 20971520,"bytes_per_sec" : 1048576,"buffer_file_num" : 25,"buffer_file_size" : 20971520,"buffer_map_num" : 5,"streamlog_open" : false,"streamlog_pool_size_in_mb" : 50,"streamlog_rcv_size_each_call" : 1024,"streamlog_formats":[],"streamlog_tcp_port" : 11111}[root@sts ~]#
ローカルからECSにcsvファイルをアップロードします
PS C:\Users\1200358> scp /Users/hironobu.ohara/Desktop/logservice-test-data.csv root@<ecs ip address>:/root/
ecsにファイルがあることを確認したら、logtail設定します。
[root@sts ~]# ll合計 79020-rw-r--r-- 1 root root 80886700 11月 24 14:12 logservice-test-data.csv-rwxr-xr-x 1 root root 28176 10月 26 14:48 logtail.sh[root@sts ~]#
STEP2: インポート作業
今度はコンソールに戻り、データのインポートをします。
Delimiter Mode、区切り文字モードを選定します。
道なりに登録します
「Heartbeat Status of Machine Groups」でHeartbeatをOKにします。もし失敗した場合(NG、False)は「Automatic Retry」ボタンをクリックし再実行すると良いです。
ここで注意したいのが、[START_DT]フィールドを、Use System Timeとして登録するところです。
ちなみにcsvファイルの日付 - 時間のフォーマットをLog Serviceへ合わせる場合は、こちらを参考にしてフォーマットを指定する必要があります。
これを設定すれば、あとはcsvファイルの日付通りにデータが登録されます。以上です。
最後に
Logtailを使って、csvファイルをLogServiceへ格納、可視化する方法を簡単に説明しました。
LogServiceはシンプルかつスピーディに構築することができます。この構築も、可視化まで1時間もかからないです。5分あれば見れます。
LogServiceはフルマネージド環境でありながら、様々なデータを収集し蓄積・可視化する事が可能です。
加えて、データ量や使い方に応じた課金なので、使い方次第ではコスト削減や、運用負荷の改善に効果があるのでは無いでしょうか。