このトピックでは、必要な手順について説明します。
制限事項
-
Syslog プロトコルは、標準の RFC 5424 である必要があります。他の Syslog プロトコルを使用する場合は、「Linux システムからの Syslog の収集」をご参照ください。
-
ログエントリの最大サイズは 64 KB です。
-
データ転送のセキュリティを確保するため、Transport Layer Security (TLS) 1.2 を使用して TCP 経由でデータを転送する必要があります。
設定
VPN やルーターなどのほとんどのオンプレミスデバイスは、TLS プロトコルや RFC 5424 フォーマットをサポートしていません。これらのデバイスからデータを収集するには、Logtail の Syslog プラグインを使用することを推奨します。詳細については、「Linux システムからの Syslog の収集」をご参照ください。
Syslog プロトコルを使用してログをアップロードするには、ProjectName.Endpoint:SyslogPort 形式でログアップロードアドレスを設定する必要があります。例:test-project-1.cn-hangzhou-intranet.log.aliyuncs.com:10009。プロジェクトが配置されているリージョンに基づいてエンドポイントを選択します。詳細については、「エンドポイント」をご参照ください。Syslog ポートは 10009 です。また、Simple Log Service プロジェクトや Logstore、ご利用の Alibaba Cloud アカウントの AccessKey ペアなど、STRUCTURED-DATA フィールドでパラメーターを設定する必要もあります。
|
パラメーター |
説明 |
例 |
|
STRUCTURED-DATA |
値は logservice に固定されています。 |
logservice |
|
project |
Simple Log Service プロジェクトの名前。事前にプロジェクトを作成しておく必要があります。詳細については、「プロジェクトの管理」をご参照ください。 |
test-project-1 |
|
logstore |
Logstore の名前。事前に Logstore を作成しておく必要があります。詳細については、「Logstore の作成」をご参照ください。 |
test-LogStore-1 |
|
access-key-id |
AccessKey ID。RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「承認」をご参照ください。 |
LTAI**************** |
|
access-key-secret |
AccessKey Secret。RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「承認」をご参照ください。 |
yourAccessKeySecret |
例:syslog-ng を使用したログの収集
syslog-ng は、UNIX および UNIX ライクシステム向けの Syslog プロトコルのオープンソース実装です。sudo yum install syslog-ng または sudo apt-get install syslog-ng コマンドを実行して syslog-ng をインストールできます。
Rsyslog は、デフォルトで Linux サーバーにインストールされています。Rsyslog と syslog-ng は同時に実行できません。syslog-ng を使用する場合は、まず Rsyslog をアンインストールする必要があります。
-
syslog-ng の設定ファイルを開きます。
設定ファイルは通常、/etc/syslog-ng/syslog-ng.conf にあります。
-
syslog-ng 設定ファイルの末尾に次の設定ブロックを追加し、ビジネス要件に基づいてパラメーターを設定します。
### Syslog-ng Logging Config for LogService ### template LogServiceFormat { template("<${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} [logservice project=\"test-project-1\" logstore=\"test-logstore-1\" access-key-id=\"<yourAccessKeyId>\" access-key-secret=\"<yourAccessKeySecret>\"] $MSG\n"); template_escape(no); }; destination d_logservice{ tcp("test-project-1.cn-hangzhou.log.aliyuncs.com" port(10009) tls(peer-verify(required-untrusted)) template(LogServiceFormat)); }; log { source(s_sys); # default use s_sys destination(d_logservice); }; ### END Syslog-ng Logging Config for LogService ### -
syslog-ng を再起動します。
sudo /etc/init.d/syslog-ng restart、sudo service syslog-ng restart、または sudo systemctl restart syslog-ng コマンドを実行して syslog-ng を再起動します。
-
logger コマンドを実行してテストログを生成します。
例:logger hello world! コマンドを実行してログを生成します。
ログの例
ログをアップロードした後、Simple Log Service コンソールでログを表示するには、インデックスを設定する必要があります。詳細については、「インデックスの作成」をご参照ください。
ログフィールドの詳細については、「RFC 5424」をご参照ください。
AccessKey ペアの漏洩を防ぐため、Simple Log Service はデフォルトで logservice フィールドを削除します。
03-28 11:01:01 __source__: xxx
__topic__: syslog-forwarder
_facility_: 3
_hostname_: xxx
_priority_: 30
_program_: systemd
_severity_: 6
_unixtimestamp_: 1553742061117098000
content: Started Session 59532 of user root.
03-28 11:00:15 __source__: mymachine.example.com
__topic__: syslog-forwarder
_facility_: 4
_hostname_: mymachine.example.com
_message_id_: ID47
_priority_: 34
_program_: su
_severity_: 2
_unixtimestamp_: 1553742015003000000
content: this is a test message
|
フィールド |
説明 |
|
__source__ |
生ログの hostname フィールドの値。 |
|
__topic__ |
値は syslog-forwarder に固定されています。 |
|
__facility__ |
ファシリティ情報。ログを生成したデバイスまたはモジュールを示します。 |
|
__program__ |
プロセス名。 |
|
__severity__ |
ログの重大度。 |
|
__priority__ |
ログの優先度。 |
|
__unixtimestamp__ |
生ログからのタイムスタンプ (ナノ秒単位)。 |
|
content |
生ログの msg フィールドの値。 |
よくある質問
-
テストログのアップロード
Netcat を使用してログのアップロードをテストし、ネットワーク接続を確認し、AccessKey にアップロード権限があることを確認できます。
-
ログのアップロードをテストするサーバーにログインします。
-
次のコマンドを実行して Netcat をインストールします:
sudo yum install nmap-ncat -
次のコマンドを実行して Simple Log Service に接続します:
ncat --ssl <yourProject>.<yourEndpoint> 10009コマンドの例:
ncat --ssl test-project-1.cn-hangzhou.log.aliyuncs.com 10009 -
Netcat はネットワークの切断を自動的に検出しません。ncat コマンドを実行してから 30 秒以内にログメッセージを入力し、Enter キーを押してください。
<34>1 2019-03-28T03:00:15.003Z mymachine.example.com su - ID47 [logservice project="<yourProject>" logstore="<yourLogstore>" access-key-id="<yourAccessKeyID>" access-key-secret="<yourAccessKeySecret>"] this is a test messageコマンドの例:
<34>1 2019-03-28T03:00:15.003Z mymachine.example.com su - ID47 [logservice project="trace-doc-test" logstore="doc-test-001-logs" access-key-id="<yourAccessKeyID>" access-key-secret="<yourAccessKeySecret>"] this is a test message -
Simple Log Service コンソールでログをプレビューして、ログがアップロードされたかどうかを確認します。
詳細については、「ログのプレビュー」をご参照ください。
プレビュー結果に、タイムスタンプが
2019-03-28 11:00:15で、ソースがmymachine.example.comのログエントリが表示されます。content 列の_hostname_、_severity_、_facility_、_message_id_、_unixtimestamp_、_program_、_priority_などの Syslog フィールドが解析されます。これは、ログが正常にアップロードされ、解析されたことを示します。
-
-
収集エラーの診断
手動でのログアップロードが失敗した場合、収集エラーを診断することで具体的なエラーメッセージを表示できます。詳細については、「Logtail 収集エラー情報の表示方法」をご参照ください。