Hi, データエンジニアの大原です。
今回はAlibaba Cloudの国際サイトで提供している LogService のご紹介、およびLogtailでCSVデータをLogServiceへ収集する方法を記載します。
また、SBC Engineers' Blogの性格上、集中連載記事になります。
【Logservice連載】オフラインデータを含めた、様々なデータソースをシームレスに収集するLogServiceのご紹介
【Logservice連載】LogtailでCSVデータを収集するLogService ←本記事
【Logservice連載】SDKでExcelデータを収集するLogService
【Logservice連載】OSS、AWS S3からCSVデータを収集するLogService
【Logservice連載】SDKでTwitterデータを収集するLogService
【Logservice連載】Logstashでnetflowデータを収集するLogService
【Logservice連載】Google Apps Script(GAS)で株価データを収集し、LogServiceの機械学習で株価予測・異常検知・監視をする
【Logservice連載】NYC-Taxi on Logservice
前書き
LogServiceの可能性をこのblogにて記載しました。
LogService は、リアルタイムデータロギングサービスです。
ログの収集、消費、出荷、検索、および分析をサポートし、大量のログを処理および分析する能力を向上させます。
少し前になりますが、LogServiceについての資料をSlideShareへアップロードしていますので、こちらも参考になればと思います。
www2.slideshare.net
今回は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 success install logtail files success agent stub for telegraf has been installed systemd 219 +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN use systemd for startup Created symlink from /etc/systemd/system/default.target.wants/ilogtaild.service to /etc/systemd/system/ilogtaild.service. systemd startup done ilogtail is running install logtail success start 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へ合わせる場合は、こちらを参考にしてフォーマットを指定する必要があります。
Time formats - Data Collection| Alibaba Cloud Documentation Center
これを設定すれば、あとはcsvファイルの日付通りにデータが登録されます。以上です。
完了
Logtailを使って、csvファイルをLogServiceへ格納、可視化する方法を簡単に説明しました。
LogServiceはシンプルかつスピーディに構築することができます。この構築も、可視化まで1時間もかからないです。5分あれば見れます。
LogServiceはフルマネージド環境でありながら、様々なデータを収集し蓄積・可視化する事が可能です。
加えて、データ量や使い方に応じた課金なので、使い方次第ではコスト削減や、運用負荷の改善に効果があるのでは無いでしょうか。
最後までお読みいただきありがとうございました。