• 日志与监控
    • 日志配置
    • 监控
      • 主节点
      • 从节点

    日志与监控

    Mesos 自身提供了强大的日志和监控功能,某些应用框架也提供了针对框架中任务的监控能力。通过这些接口,用户可以实时获知集群的各种状态。

    日志配置

    日志文件默认在 /var/log/mesos 目录下,根据日志等级带有不同后缀。

    用户可以通过日志来调试使用中碰到的问题。

    一般的,推荐使用 --log_dir 选项来指定日志存放路径,并通过日志分析引擎来进行监控。

    监控

    Mesos 提供了方便的监控接口,供用户查看集群中各个节点的状态。

    主节点

    通过 http://MASTER_NODE:5050/metrics/snapshot 地址可以获取到 Mesos 主节点的各种状态统计信息,包括资源(CPU、硬盘、内存)使用、系统状态、从节点、应用框架、任务状态等。

    例如查看主节点 10.0.0.2 的状态信息,并用 jq 来解析返回的 json 对象。

    1. $ curl -s http://10.0.0.2:5050/metrics/snapshot |jq .
    2. {
    3. "system/mem_total_bytes": 4144713728,
    4. "system/mem_free_bytes": 153071616,
    5. "system/load_5min": 0.37,
    6. "system/load_1min": 0.6,
    7. "system/load_15min": 0.29,
    8. "system/cpus_total": 4,
    9. "registrar/state_store_ms/p9999": 45.4096616192,
    10. "registrar/state_store_ms/p999": 45.399272192,
    11. "registrar/state_store_ms/p99": 45.29537792,
    12. "registrar/state_store_ms/p95": 44.8336256,
    13. "registrar/state_store_ms/p90": 44.2564352,
    14. "registrar/state_store_ms/p50": 34.362368,
    15. ...
    16. "master/recovery_slave_removals": 1,
    17. "master/slave_registrations": 0,
    18. "master/slave_removals": 0,
    19. "master/slave_removals/reason_registered": 0,
    20. "master/slave_removals/reason_unhealthy": 0,
    21. "master/slave_removals/reason_unregistered": 0,
    22. "master/slave_reregistrations": 2,
    23. "master/slave_shutdowns_canceled": 0,
    24. "master/slave_shutdowns_completed": 1,
    25. "master/slave_shutdowns_scheduled": 1
    26. }

    从节点

    通过 http://SLAVE_NODE:5051/metrics/snapshot 地址可以获取到 Mesos 从节点的各种状态统计信息,包括资源、系统状态、各种消息状态等。

    例如查看从节点 10.0.0.10 的状态信息。

    1. $ curl -s http://10.0.0.10:5051/metrics/snapshot |jq .
    2. {
    3. "system/mem_total_bytes": 16827785216,
    4. "system/mem_free_bytes": 3377315840,
    5. "system/load_5min": 0.11,
    6. "system/load_1min": 0.16,
    7. "system/load_15min": 0.13,
    8. "system/cpus_total": 8,
    9. "slave/valid_status_updates": 11,
    10. "slave/valid_framework_messages": 0,
    11. "slave/uptime_secs": 954125.458927872,
    12. "slave/tasks_starting": 0,
    13. "slave/tasks_staging": 0,
    14. "slave/tasks_running": 1,
    15. "slave/tasks_lost": 0,
    16. "slave/tasks_killed": 2,
    17. "slave/tasks_finished": 0,
    18. "slave/executors_preempted": 0,
    19. "slave/executor_directory_max_allowed_age_secs": 403050.709525191,
    20. "slave/disk_used": 0,
    21. "slave/disk_total": 88929,
    22. "slave/disk_revocable_used": 0,
    23. "slave/disk_revocable_total": 0,
    24. "slave/disk_revocable_percent": 0,
    25. "slave/disk_percent": 0,
    26. "containerizer/mesos/container_destroy_errors": 0,
    27. "slave/container_launch_errors": 6,
    28. "slave/cpus_percent": 0.025,
    29. "slave/cpus_revocable_percent": 0,
    30. "slave/cpus_revocable_total": 0,
    31. "slave/cpus_revocable_used": 0,
    32. "slave/cpus_total": 8,
    33. "slave/cpus_used": 0.2,
    34. "slave/executors_registering": 0,
    35. "slave/executors_running": 1,
    36. "slave/executors_terminated": 8,
    37. "slave/executors_terminating": 0,
    38. "slave/frameworks_active": 1,
    39. "slave/invalid_framework_messages": 0,
    40. "slave/invalid_status_updates": 0,
    41. "slave/mem_percent": 0.00279552715654952,
    42. "slave/mem_revocable_percent": 0,
    43. "slave/mem_revocable_total": 0,
    44. "slave/mem_revocable_used": 0,
    45. "slave/mem_total": 15024,
    46. "slave/mem_used": 42,
    47. "slave/recovery_errors": 0,
    48. "slave/registered": 1,
    49. "slave/tasks_failed": 6
    50. }

    另外,通过 http://MASTER_NODE:5050/monitor/statistics.json 地址可以看到该从节点上容器网络相关的统计数据,包括进出流量、丢包数、队列情况等。获取方法同上,在此不再演示。