2

Мне удалось выполнить все перечисленные ниже шаги here, чтобы настроить сценарии aws, чтобы забрать использование памяти в системе и сообщить об этом в облачный режим. Проблема, с которой я сталкиваюсь, заключается в том, что она не попадает в консоль Cloudwatch.Cloudwatch Custom Metric - Использование памяти - from-cron не работает

Когда я

$ ~/aws-scripts-mon/mon-put-instance-data.pl --mem-util --verbose 

Метрика получает успешно отправлен Cloudwatch. Я забираю его в консоли

Но когда я пытаюсь сделать то же самое с помощью задания cron, он не попадает в консоль Cloudwatch.

Чтобы настроить хроны, я сделал

$ sudo crontab -e 

и добавил эту строку

*/5 * * * * ~/aws-scripts-mon/mon-put-instance-data.pl --mem-util --from-cron 

сохраненной и вышел. Когда я проверяю/var/log/syslog, он говорит, что метрика была успешно отправлена, но по какой-то причине я не поймаю ее в консоли cloudwatch. Что мне здесь не хватает?

системный журнал ниже для справки (с ф маскируется)

Jan 18 22:55:01 ip-xxx-xx-xx-xx CRON[22536]: (root) CMD (~/aws-scripts-mon/mon-put-instance-data.pl --mem-util --from-cron) 
Jan 18 22:55:01 ip-xxx-xx-xx-xx postfix/pickup[22530]: 7FF494449A: uid=0 from=<root> 
Jan 18 22:55:01 ip-xxx-xx-xx-xx postfix/cleanup[22540]: 7FF494449A: message-id=<[email protected]> 
Jan 18 22:55:01 ip-xxx-xx-xx-xx postfix/qmgr[21671]: 7FF494449A: from=<[email protected]>, size=673, nrcpt=1 (queue active) 
Jan 18 22:55:01 ip-xxx-xx-xx-xx postfix/local[22542]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled 
Jan 18 22:55:01 ip-xxx-xx-xx-xx postfix/local[22542]: 7FF494449A: to=<[email protected]>, orig_to=<root>, relay=local, delay=0.03, delays=0.02/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) 
Jan 18 22:55:01 ip-xxx-xx-xx-xx postfix/qmgr[21671]: 7FF494449A: removed 

Примечание: Абсолютный путь в хронах сделал трюк. Документировал различные икоты here.

ответ

2

Cron не использует переменные среды оболочки входа, поэтому ~ может не разрешить каталоги вашего текущего пользователя HOME, как это было бы в ваших ручных тестах. Попробуйте заменить это с абсолютным путем (например, /home/sarul/aws-script-mon/mon-put-instance-data.pl и посмотреть, если он работает скрипт правильно.

Если вы используете локальные учетные данные AWS в среде пользователя или ~/.aws/config, а не профиль экземпляра, вам может понадобиться добавить их . учетные данные где-то доступные по хронам, а

отметить также, что postfix Syslog записи показывает, что почтовое сообщение какого-то ставится в очереди. - может быть, связанно с ошибкой отчётного сценарием, вызываемыми хронами

+0

благодаря wjordan. Абсолютный путь сделал трюк! –