TL;DR influxdb で syslog ログを表示できません
環境:
OS: mac os mojave
telegraf version: 1.8
influxdb version: 1.6.4
そのため、ログインを表示し、telegraf で提供されている入力プラグインchronograf
のセットからプラグインを使用することを考え出しました。syslog
こちらの手順に従いましたが、読みやすいようにこちらにも手順を追加しました。
次のようにrsyslogをインストールしhomebrew
ました:
$ brew install rsyslog
に以下を追加しました/usr/local/etc/rsyslog.conf
。
$WorkDirectory /tmp/rsyslog # temporary directory for storing data
$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName srvrfwd # set file name, also enables disk mode
$ActionResumeRetryCount -1 # infinite retries on insert failure
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down
$ModLoad imudp #loads the udp module
#listen for messages on udp localhost:514
$UDPServerAddress localhost
$UDPServerRun 514
*.* @@(o)127.0.0.1:6514;RSYSLOG_SyslogProtocol23Format
rsyslog を再起動しました:
$ sudo brew services restart rsyslog
テレグラフを次のように構成しました。
# # Accepts syslog messages per RFC5425
[[inputs.syslog]]
# ## Specify an ip or hostname with port - eg., tcp://localhost:6514, tcp://10.0.0.1:6514
# ## Protocol, address and port to host the syslog receiver.
# ## If no host is specified, then localhost is used.
# ## If no port is specified, 6514 is used (RFC5425#section-4.1).
server = "tcp://localhost:6514"
次のようにテレグラフを再起動しました。
$ brew services restart telegraf
しかし、私の期待は、データベースsyslog
内の測定を見ることでしたtelegraf
syslog
データベースに表示されることを期待して、ログに記録する次の python スクリプトを作成しました。
import logging
import logging.handlers
my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)
handler = logging.handlers.SysLogHandler(address='/var/run/syslog')
my_logger.addHandler(handler)
my_logger.debug('this is debug')
my_logger.critical('this is critical')
しかし、役に立たない。
ここで何が問題なのですか?もしそうなら、私がチェックインできるログファイルはありますか?
編集1:
rsyslogd -N1
そこで、コマンドを使用して rsyslog のトラブルシューティングを行ったところ、いくつかの問題が見つかりました。
- 構成ファイルは にある必要があります
/etc/rsyslog.conf
。 - 構成ファイルの作業ディレクトリ。
/tmp/rsyslog
が見つからなかったので作成しました。 - rsyslog.conf ファイルにいくつかのエラーがありました (この質問の編集で確認できます)
上記のすべてを実行した後、rsyslog と influxdb および telegraf を再起動し、rsyslogd -N1
コマンドを実行してエラーがないかどうかを再度確認しました。出力は次のとおりです。
rsyslogd: version 8.37.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.
それでも同じ問題が続きます。
EDIT 2: 関連記事: syslog-plugin-from-remote-server