(1)ec2自建的mongo,把mongostat数据实时输出到cloudwatch,并且做成条形图,方便查看。
首先在装有mongo的ec2机器上安装awslogs,参考,然后根据提示设置采集相关配置。
然后把mongostat数据传到cloudwatch,类似于:
mongostat --host xxxxx:28017 --username root --password xxxx --authenticationDatabase admin --json > /var/log/mongostat.json &
也可以直接做成系统进程,cloudwatch日志输出为json格式的数据。
(2)在cloudwatch上写表达式,比如我的:
parse @message /delete":"D*(?<delete_c>[0-9.%]*).*dirty":"D*(?<dirty_c>[0-9.%k]*).*flushes":"D*(?<flushes_c>[0-9.%]*).*insert":"D*(?<insert_c>[0-9.%]*).*query":"D*(?<query_c>[0-9.%]*).*time":"D*(?<time>[0-9.%:]*).*update":"D*(?<update_c>[0-9.%]*)/ |sort time desc|display time,query_c,insert_c,update_c,delete_c,flushes_c
(3)做成的条形图稍微要修改下表达式,例如:
fields @timestamp|parse @message /delete":"D*(?<delete_c>[0-9.%]*).*dirty":"D*(?<dirty_c>[0-9.%k]*).*flushes":"D*(?<flushes_c>[0-9.%]*).*insert":"D*(?<insert_c>[0-9.%]*).*query":"D*(?<query_c>[0-9.%]*).*time":"D*(?<time>[0-9.%:]*).*update":"D*(?<update_c>[0-9.%]*)/ |display flushes_c,delete_c,insert_c,query_c,update_c |stats sum(insert_c),sum(delete_c),sum(query_c),sum(update_c) by bin(1min)
最后显示效果为: