Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Ansible:重新启动占用内存的进程>;75%_Linux_Bash_Shell_Ansible - Fatal编程技术网

Linux Ansible:重新启动占用内存的进程>;75%

Linux Ansible:重新启动占用内存的进程>;75%,linux,bash,shell,ansible,Linux,Bash,Shell,Ansible,我不熟悉Ansible。我的任务是使用Ansible自动化基础架构级别1 上述要求如下: 登录到服务器 查找占用最多内存的进程(大于指定的阈值) 重新启动有问题的服务 如果上述步骤在非营业时间(指定)内失败,则重新启动服务器,并 等待警报清除,否则 向2级/第2层组发送电子邮件以进行进一步的故障排除 可能有助于完成上述任务的具体问题 如何获取内存消耗大于50%的所有进程,以及 迭代它们以正常地重新启动服务 如何实际使用服务模块重新启动服务以实现动态 服务名称 我无法根据内存消耗获取进程。我所能做

我不熟悉Ansible。我的任务是使用Ansible自动化基础架构级别1

上述要求如下:

  • 登录到服务器
  • 查找占用最多内存的进程(大于指定的阈值)
  • 重新启动有问题的服务
  • 如果上述步骤在非营业时间(指定)内失败,则重新启动服务器,并 等待警报清除,否则
  • 向2级/第2层组发送电子邮件以进行进一步的故障排除
  • 可能有助于完成上述任务的具体问题

  • 如何获取内存消耗大于50%的所有进程,以及 迭代它们以正常地重新启动服务
  • 如何实际使用服务模块重新启动服务以实现动态 服务名称
  • 我无法根据内存消耗获取进程。我所能做的就是列出内存消耗最多的进程。我使用了以下命令:


    ps-o pid--sort=-%mem | awk'NR要执行的任务是“重新启动服务”。问题在于确定要启动的服务。一旦完成,您就可以触发一个剧本(甚至是任务的单个临时执行)

    您需要进程名称和服务之间的映射。您的监视将引发一组违反SLO的进程,并触发您的修复。让我们假设这是一个Ansible playbook。您需要一个如下任务:

    - name: Restart services which consume to much memory
      service:
        name: "{{ item }}"
        state: restarted
      with_items: bad_services
    
    这意味着您有一个变量
    bad_services
    ,它只是一个服务名称列表。您可以注册一些变量来确定该任务是否已通过或失败,并适当处理结果。它可以作为环境变量传递:

    export BAD_SERVICES=$(get_bad_services.sh)
    ansible-playbook fix_bad_services.yml -e bad_services=$BAD_SERVICES
    
    “基础架构级别1”是什么意思?