zoukankan      html  css  js  c++  java
  • SaltStack安装zabbix-agent-第九篇

    环境

    node1  192.168.56.11   角色 salt-master 

    node2  192.168.56.12   角色  salt-minon

    实现内容

    使用salt远程安装zabbix-agent

    步骤

    环境是基于前几篇博客基础上Master和minion已经配置完成

    一,创建zabbix项目文件夹,用于存放状态文件
    [root@linux-node1 base]# mkdir /srv/salt/base/zabbix -p
    [root@linux-node1 base]# mkdir /srv/salt/base/init/files -p #用于存放系统相关初始化的信息
    二,配置salt的epel源文件
    [root@linux-node1 files]# pwd
    /srv/salt/base/init/files
    [root@linux-node1 files]# wget http://mirrors.aliyun.com/repo/epel-7.repo
    --2017-10-22 19:50:35--  http://mirrors.aliyun.com/repo/epel-7.repo
    ......
    三,拷贝zabbix配置文件作为salt的zabbix源文件
    [root@linux-node1 zabbix]# yum list |grep zabbix22-agent
    zabbix22-agent.x86_64                    2.2.20-1.el7                   epel   
    
    [root@linux-node1 zabbix]# ll  /etc/zabbix/zabbix_agentd.conf 
    lrwxrwxrwx 1 root root 22 Oct 22 20:03 /etc/zabbix/zabbix_agent.conf -> /etc/zabbix_agent.conf
    
    [root@linux-node1 zabbix]# mkdir /srv/salt/base/zabbix/files
    [root@linux-node1 zabbix]# cp /etc/zabbix_agentd.conf /srv/salt/base/zabbix/files
    四,添加jiaja模板变量到salt的zabbix源文件
    [root@linux-node1 files]# grep ^[a-Z] zabbix_agentd.conf
    PidFile=/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server={{ ZABBIX_SERVER }} 
    Hostname={{ AGENT_HOSTNAME }}
    Include=/etc/zabbix_agentd.conf.d/
    五,配置epel状态文件管理
    [root@linux-node1 init]# pwd
    /srv/salt/base/init
    [root@linux-node1 init]# vim yum-repo.sls
    [root@linux-node1 init]# cat yum-repo.sls 
    /etc/yum.repos.d/epel-7.repo:
      file.managed:
        - source: salt://init/files/epel-7.repo
        - user: root
        - group: root
        - mode: 644
    六,写zabbix-agent的状态文件
    [root@linux-node1 zabbix]# pwd
    /srv/salt/base/zabbix
    [root@linux-node1 zabbix]# cat zabbix-agent.sls 
    include:   #支持include功能
      - init.yum-repo
    
    zabbix-agent:
      pkg.installed:
        - name: zabbix22-agent
        - require: 
          - file: /etc/yum.repos.d/epel-7.repo
      file.managed:
        - name: /etc/zabbix_agentd.conf
        - source: salt://zabbix/files/zabbix_agentd.conf
        - user: root
        - group: root
        - mode: 644
        - template: jinja
        - defaults:
          ZABBIX_SERVER: 192.168.56.12
          AGENT_HOSTNAME: {{ grains['fqdn'] }}
        - require:
          - pkg: zabbix-agent
      service.running:
        - name: zabbix-agent
        - enable: True
        - watch:
          - file: zabbix-agent
          - pkg: zabbix-agent
    
    zabbix_agentd.conf.d:
      file.directory:
        - name: /etc/zabbix_agentd.conf.d
        - watch_in:
          - service: zabbix-agent
        - require:
          - pkg: zabbix-agent
          - file: zabbix-agent
    七,测试
    [root@linux-node1 files]# salt 'linux-node2*' state.sls zabbix.zabbix-agent test=True
    linux-node2.example.com:
    ----------
              ID: /etc/yum.repos.d/epel-7.repo
        Function: file.managed
          Result: None
         Comment: The file /etc/yum.repos.d/epel-7.repo is set to be changed
         Started: 20:26:12.939665
        Duration: 10.114 ms
         Changes:   
                  ----------
                  newfile:
                      /etc/yum.repos.d/epel-7.repo
    ----------
              ID: zabbix-agent
        Function: pkg.installed
            Name: zabbix22-agent
          Result: None
         Comment: The following packages are set to be installed/updated: zabbix22-agent
         Started: 20:26:13.254634
        Duration: 2867.494 ms
         Changes:   
    ----------
              ID: zabbix-agent
        Function: file.managed
            Name: /etc/zabbix_agentd.conf
          Result: None
         Comment: The file /etc/zabbix_agentd.conf is set to be changed
         Started: 20:26:16.122685
        Duration: 15.872 ms
         Changes:   
                  ----------
                  newfile:
                      /etc/zabbix_agentd.conf
    ----------
              ID: zabbix_agentd.conf.d
        Function: file.directory
            Name: /etc/zabbix_agentd.conf.d
          Result: None
         Comment: The following files will be changed:
                  /etc/zabbix_agentd.conf.d: directory - new
         Started: 20:26:16.139640
        Duration: 0.401 ms
         Changes:   
    ----------
              ID: zabbix-agent
        Function: service.running
          Result: None
         Comment: Service is set to be started
         Started: 20:26:16.206765
        Duration: 79.412 ms
         Changes:   
    
    Summary
    ------------
    Succeeded: 5 (unchanged=5, changed=2)
    Failed:    0
    ------------
    Total states run:     5
    salt 'linux-node2*' state.sls zabbix.zabbix-agent test=True
    八,执行
    [root@linux-node1 init]# salt 'linux-node2*' state.sls zabbix.zabbix-agent 
    
    linux-node2.example.com:
    ----------
              ID: /etc/yum.repos.d/epel-7.repo
        Function: file.managed
          Result: True
         Comment: File /etc/yum.repos.d/epel-7.repo updated
         Started: 20:33:54.907929
        Duration: 14.348 ms
         Changes:   
                  ----------
                  diff:
                      New file
                  mode:
                      0644
    ----------
              ID: zabbix-agent
        Function: pkg.installed
            Name: zabbix22-agent
          Result: True
         Comment: The following packages were installed/updated: zabbix22-agent
         Started: 20:33:55.228682
        Duration: 20540.866 ms
         Changes:   
                  ----------
                  zabbix22:
                      ----------
                      new:
                          2.2.20-1.el7
                      old:
                  zabbix22-agent:
                      ----------
                      new:
                          2.2.20-1.el7
                      old:
    ----------
              ID: zabbix-agent
        Function: file.managed
            Name: /etc/zabbix_agentd.conf
          Result: True
         Comment: File /etc/zabbix_agentd.conf updated
         Started: 20:34:15.771609
        Duration: 34.695 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      +++ 
                      @@ -78,7 +78,7 @@
                       # Default:
                       # Server=
                       
                      -Server=127.0.0.1
                      +Server=192.168.56.11
                       
                       ### Option: ListenPort
                       #    Agent will listen on this port for connections from the server.
                      @@ -130,7 +130,7 @@
                       # Default:
                       # Hostname=
                       
                      -Hostname=Zabbix server
                      +Hostname=linux-node2.example.com
                       
                       ### Option: HostnameItem
                       #    Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
                      @@ -240,7 +240,7 @@
                       # Include=
                       
                       # Include=/etc/zabbix_agentd.userparams.conf
                      -# Include=/etc/zabbix_agentd.conf.d/
                      +Include=/etc/zabbix_agentd.conf.d/
                       
                       ####### USER-DEFINED MONITORED PARAMETERS #######
                       
    ----------
              ID: zabbix_agentd.conf.d
        Function: file.directory
            Name: /etc/zabbix_agentd.conf.d
          Result: True
         Comment: Directory /etc/zabbix_agentd.conf.d updated
         Started: 20:34:15.824436
        Duration: 1.088 ms
         Changes:   
                  ----------
                  /etc/zabbix_agentd.conf.d:
                      New Dir
    ----------
              ID: zabbix-agent
        Function: service.running
          Result: True
         Comment: Service zabbix-agent has been enabled, and is running
         Started: 20:34:15.825810
        Duration: 443.184 ms
         Changes:   
                  ----------
                  zabbix-agent:
                      True
    
    Summary
    ------------
    Succeeded: 5 (changed=5)
    Failed:    0
    ------------
    Total states run:     5
    salt 'linux-node2*' state.sls zabbix.zabbix-agent
    九,登陆到node2上面,zabbix 已正常启动
    [root@linux-node2 ~]# ps aux |grep zabbix
    zabbix     4595  0.0  0.0  77792  1364 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd
    zabbix     4596  0.0  0.0  77792  1320 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
    zabbix     4597  0.0  0.0  77792  1012 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
    zabbix     4598  0.0  0.0  77792  1012 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
    zabbix     4599  0.0  0.0  77792  1012 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
    zabbix     4600  0.0  0.0  77792  1340 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
    root       4645  0.0  0.0 112652   976 pts/1    S+   20:35   0:00 grep --color=auto zabbix

    总结

    1.Jinja模板变量名不支持中横线 -

    2.状态文件可以根据项目或服务进行分类管理

    3.状态文件支持include功能,支持正则匹配minion id

    4.在编写状态文件之前需要先查清楚相关的软件包名称及配置文件名称

    5.要习惯先用test=True进行测试,避免不必要的故障

    6.基础的东西(jdk,web应用等) 通用的安装全放在一个目录,然后使用include功能

    7.做好状态模块之间的依赖关系,避免不必要的状态执行


    附 赵班长的 GitHub saltbook-code网址

    https://github.com/unixhot/saltbook-code/tree/master

  • 相关阅读:
    不要在构造中做太多事情,不然有时候会出现有意思的代码~
    对称加密和非对称加密
    关于WebAPI安全认证的问题
    Dojo和jQuery区别
    跨域访问解决方案:JSONP
    MyEclipse中提示SpringMVC的XML配置文件出错解决方法
    什么是跨域请求
    Hadoop的初步理解
    数据库读写分离的初步理解
    前端渲染和后端渲染
  • 原文地址:https://www.cnblogs.com/xiewenming/p/7713660.html
Copyright © 2011-2022 走看看