Shift-JISログファイルを文字化けさせずにNewRelicへ連携する。

# 概要
* Shif-JISのログファイルを単純に収集すると、NewRelic上では文字化けしてしまいます。<br>回避策はいくつかありますが、以下NewRelic社のナレッジを参考に、Flutendを導入する事で連携を行う。
 [fluentdを用いたNew RelicプラットフォームへのShift_JISログの連携方法](https://newrelic.com/jp/blog/how-to-relic/log-management-for-shift-jis-logs-with-fluentd) 
![pasted-2024.01.16-14.40.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/2d9ada62-3b60-008c-08a8-560544b1037b.png)

# 検証環境
* OS:Windows Server 2019
* ログファイル：test.log <br> ※Windowsサービスをのステータスを取得するPowershellスクリプトをNewRelic-Flexで実行させたアウトプットのファイル。
* システムロケール：Shift-JIS
![mstsc_5615xDoFF8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/a04ca13a-f71b-0d33-15e2-507ef4acd868.png)
![mstsc_yCmWBfn0fR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/334ad920-d248-9ce9-9b78-89cd1e178eb2.png)
![mstsc_c9rZNB2CTJ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/762a40c7-6584-1544-f083-47291eca4988.png)

# 方法

1. NewRelicのアカウントからAPIキー（INGEST - LICENSE）を作成し、キーを控えておく。<br>※後のFluentdのコンフィグファイルで使用する。<br>![ApplicationFrameHost_dSZCDzDCfM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/bf7d4afd-9383-c8e1-7c4f-8470b4268381.png)



2. Fluentdをインストーラーをダウンロード [Download Fluentd](https://www.fluentd.org/download) <br>※FlutendでもTd-agentでも問題ない。検証環境ではTd-agentを選択
3. Fluentdをインストール<br>インストールウィザードの内容はデフォルトで問題なし
4. FluentdにNewRelicのプラグインをインストールする。<br>4-1.アプリから「Td-agent Command Prompt]を起動<br>![mstsc_PIcyrMt7ge.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/04b375c5-4869-a5f4-77cd-98178bddb250.png)
 <br>以下コマンドを実行<br>※基本的にはどちらか一方で良い<br>`fluent-gem install fluent-plugin-newrelic`<br>`td-agent-gem install fluent-plugin-newrelic`
5. Flutend（td-agent）のコンフィグファイルを設定する。<br>※td-agentの場合：デフォルトパス 
C:\opt\td-agent\etc\td-agent\td-agent.conf<br>→基本的な設定値はNewRelic社のナレッジを参考 [ログフォワーディングのためのFluentdプラグイン](https://docs.newrelic.com/jp/docs/logs/forward-logs/fluentd-plugin-log-forwarding/#fluentd-plugin) <br>以下、今回の検証環境における設定<br>5-1.収集するログファイルを指定し、文字コードのエンコーディングを記述する<br>![mstsc_70GOV0ww8W.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/ad1d4fd3-edeb-6182-a68f-3e9bf64ba398.png)
 <br>5-2.filterに前述のタグ名を付与<br>![mstsc_uqzqAo6DGs.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/e5e478be-8bb6-fd16-edd9-e1d324bd4edc.png)
 <br>5-3.手順1で取得したNewrelicのライセンスキーを指定する。<br>![mstsc_meoLB1pBbo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/ee5bfee4-dae9-fc92-3f2f-2785ccde77fb.png)
 <br>5-4.上記設定後、コンフィグファイルを保存
6. Fluentd(td-agent)のサービスを再起動する。<br>![mstsc_T6oRPd0uDZ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/a614a496-e3be-f2fd-882d-4987a65bbee8.png)


# 結果
*以下のようにFluentdで収集したログがAPMServiceとして認識され、且つログファイルの内容が文字化けせずに出力される<br>※[plugin.type]もFluentd<br>![ApplicationFrameHost_KIRNxNnQ3t.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/a9c21f67-5d5f-f464-389a-2e633ed2d008.png)




# 補足

* システムロケールの設定で「ベータ：ワールドワイド言語サポートでUnicode UTF-8を使用」にチェックを入れると、Fluentd未導入でもShift-JISの文字化けが防げる。<br>※変更する場合はOS再起動が必要のため要注意。またベータ版機能である点と他アプリなどへの影響範囲などは十分に確認する必要有<br>![pasted-2024.01.16-14.38.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774397/d5f65763-61f3-ebff-271c-8414ae5b31f4.png)