外部スクリプトでエラー「'ascii' codec can't encode character u'\u3068' in position 1207: ordinal not in range(128) parse error」
概要:
Zabbixから外部スクリプトでAWSCLIコマンドを実行しているのですが、以下のような結果となります。
(手動) 手動でZabbixユーザを利用して当該シェル(コマンド)を実行 ⇒正常終了
(自動) Zabbixが監視のため自動で同一シェルを実行 ⇒シェルは異常終了(同一コマンドで失敗)
エラー全て:
'ascii' codec can't encode character u'\u3068' in position 1207: ordinal not in range(128)
parse error: Unfinished JSON term at EOF at line 7, column 31
エラーとなるコマンド:
aws cloudtrail lookup-events --output json
Zabbixバージョン:3.0.6
OS:Linux version 4.4.35-33.55.amzn1.x86_64
補足: 当該コマンドで取得しようとしている文字列に日本語が含まれて居るときのみエラーとなります。
原因:
手動で実行するとうまく行って、zabbixが監視するときに外部スクリプトを実行するとエラーって何が問題なんでしょう?
どなたかご教示くださいませ。
(どこかのエンコード、デコード設定だと思うのですが)
zab-SR - 投稿数: 14
書き忘れました。
OSの文字コードは以下の通りUTF8です。
# cat /etc/sysconfig/i18n
LANG=en_US.UTF-8
pythonの文字コードは以下の通りです。(ascii⇒utf-8変更したけどダメでした。)
# python
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
上記を、以下の通りutf-8に変更したのですがダメでした(事象変わらず)
# python
Python 2.7.12 (default, Sep 1 2016, 22:14:00)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'