ansible-playbook roles 安装zabbix-agent 监控 php

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible-playbook roles 安装zabbix-agent 监控 php相关的知识,希望对你有一定的参考价值。

Ansible为了层次化、结构化地组织Playbook,使用了角色(roles)。Roles能够根据层次型结构自动装载变量文件、task以 及handlers等。简单来讲,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地 include它们,roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。 创建roles时一般需要以下步骤:首先创建以roles命名的目录。然后在roles目标下分别创建以个角色名称命令的目录,如 websevers等,在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用 不到的目录可以创建为空目录。最后在Playbook文件中调用各角色进行使用 roles内各目录含义解释 files:用来存放由copy模块或script模块调用的文件。 templates:用来存放jinjia2模板,template模块会自动在此目录中寻找jinjia2模板文件。 tasks:此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的 task文件。 handlers:此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作。 vars:此目录应当包含一个main.yml文件,用于定义此角色用到的变量。 defaults:此目录应当包含一个main.yml文件,用于为当前角色设定默认变量。 meta:此目录应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系 目录结构 [root@baiduyun zabbix]# tree /etc/ansible/roles/ /etc/ansible/roles/ ├── zabbix-agent │?? ├── files │?? │?? ├── check_service.conf │?? │?? ├── php-fpm_status.sh │?? │?? │?? ├── tasks │?? │?? ├── main.yml │?? │?? └── zabbix-agent.yml │?? ├── templates │?? │?? └── zabbix_agentd.j2 │?? └── vars cat check_service.conf UserParameter=php[*],/etc/zabbix/scripts/php-fpm_status.sh $1 [root@baiduyun files]# cat php-fpm_status.sh ######################################################################### # File Name: php-fpm_status.sh ######################################################################### #!/bin/bash listenqueue() #处于等待状态中的连接数,如果不为0,需要增加php-fpm进程数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "listen queue:"|grep -vE "len|max"|awk ‘print$3‘ listenqueuelen() #处于等待连接队列的套接字大小 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "listen queue len" |awk ‘print$4‘ idle() #处于空闲状态的进程数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "idle processes" |awk ‘print$3‘ active() #处于活动状态的进程数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "active" |awk ‘print$3‘|grep -v "process" total() #进程总数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "total processes" |awk ‘print$3‘ mactive() #从php-fpm启动到现在的进程处于活动状态数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "max active processes:" |awk ‘print$4‘ $1 [root@baiduyun tasks]# cat main.yml - include: zabbix-agent.yml tags: zabbix-agent [root@baiduyun tasks]# cat zabbix-agent.yml - name: Install Zabbix-Agent RPM yum: name: https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm state: installed - name: Install zabbix-agent register: zabbix-agent yum: name: zabbix-agent ignore_errors: true - name: create zabbix scripts directory file: path: /etc/zabbix/scripts state: directory mode: 0755 - name: Sync zabbix-agentd.conf template: src: /etc/ansible/roles/zabbix-agent/templates/zabbix_agentd.j2 dest: /etc/zabbix/zabbix_agentd.conf owner: root group: root mode: 0644 - name: php status copy: src: /etc/ansible/roles/zabbix-agent/files/php-fpm_status.sh dest: /etc/zabbix/scripts owner: root group: root mode: 0644 - name: php moban copy: src: /etc/ansible/roles/zabbix-agent/files/check_service.conf dest: /etc/zabbix/zabbix_agentd.d/ owner: root group: root mode: 0644 - name: zabbix-server start and enable systemd: name: zabbix-agent enabled: yes state: started [root@baiduyun templates]# cat zabbix_agentd.j2 PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=139.9.72.161 ListenPort=10050 ServerActive=139.9.72.161 Hostname=agent_hostname Timeout=30 Include=/etc/zabbix/zabbix_agentd.d/*.conf 执行 ansible-playbook /etc/ansible/zabbix-agent.yml -i /etc/ansible/ssh/hosts -e "hosts=baidu agent_hostname=baiduyun" -b

以上是关于ansible-playbook roles 安装zabbix-agent 监控 php的主要内容,如果未能解决你的问题,请参考以下文章

Ansible-Playbook基础

[ansible]牛刀小试,使用ansible-playbook role方式部署jdk环境

ansible-playbook基于role的配置一键安装zabbix客户端以及拉取自定义监控脚本

ansible roles

ansible-playbook

ansible-playbook