环境

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
---- ::-- 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.-.el7 epel [root@linux-node1 zabbix]# ll /etc/zabbix/zabbix_agentd.conf
lrwxrwxrwx root root Oct : /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=
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-.repo:
file.managed:
- source: salt://init/files/epel-7.repo
- user: root
- group: root
- mode:
六,写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-.repo
file.managed:
- name: /etc/zabbix_agentd.conf
- source: salt://zabbix/files/zabbix_agentd.conf
- user: root
- group: root
- mode:
- 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-.repo
Function: file.managed
Result: None
Comment: The file /etc/yum.repos.d/epel-.repo is set to be changed
Started: ::12.939665
Duration: 10.114 ms
Changes:
----------
newfile:
/etc/yum.repos.d/epel-.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: ::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: ::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: ::16.139640
Duration: 0.401 ms
Changes:
----------
ID: zabbix-agent
Function: service.running
Result: None
Comment: Service is set to be started
Started: ::16.206765
Duration: 79.412 ms
Changes: Summary
------------
Succeeded: (unchanged=, changed=)
Failed:
------------
Total states run:

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-.repo
Function: file.managed
Result: True
Comment: File /etc/yum.repos.d/epel-.repo updated
Started: ::54.907929
Duration: 14.348 ms
Changes:
----------
diff:
New file
mode: ----------
ID: zabbix-agent
Function: pkg.installed
Name: zabbix22-agent
Result: True
Comment: The following packages were installed/updated: zabbix22-agent
Started: ::55.228682
Duration: 20540.866 ms
Changes:
----------
zabbix22:
----------
new:
2.2.-.el7
old:
zabbix22-agent:
----------
new:
2.2.-.el7
old:
----------
ID: zabbix-agent
Function: file.managed
Name: /etc/zabbix_agentd.conf
Result: True
Comment: File /etc/zabbix_agentd.conf updated
Started: ::15.771609
Duration: 34.695 ms
Changes:
----------
diff:
---
+++
@@ -, +, @@
# 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.
@@ -, +, @@
# 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.
@@ -, +, @@
# 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: ::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: ::15.825810
Duration: 443.184 ms
Changes:
----------
zabbix-agent:
True Summary
------------
Succeeded: (changed=)
Failed:
------------
Total states run:

salt 'linux-node2*' state.sls zabbix.zabbix-agent

九,登陆到node2上面,zabbix 已正常启动
[root@linux-node2 ~]# ps aux |grep zabbix
zabbix 0.0 0.0 ? S : : /usr/sbin/zabbix_agentd
zabbix 0.0 0.0 ? S : : /usr/sbin/zabbix_agentd: collector [idle sec]
zabbix 0.0 0.0 ? S : : /usr/sbin/zabbix_agentd: listener # [waiting for connection]
zabbix 0.0 0.0 ? S : : /usr/sbin/zabbix_agentd: listener # [waiting for connection]
zabbix 0.0 0.0 ? S : : /usr/sbin/zabbix_agentd: listener # [waiting for connection]
zabbix 0.0 0.0 ? S : : /usr/sbin/zabbix_agentd: active checks # [idle sec]
root 0.0 0.0 pts/ S+ : : 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

SaltStack安装zabbix-agent-第九篇的更多相关文章

  1. window上安装zabbix agent使用案例

    下载对应的zabbix windows版本 因为zabbix server使用的版本为3.2.0版本 所以下载window 3.2的版本 https://www.zabbix.com/download ...

  2. centos6.4安装 zabbix agent

    1.防火墙设置 允许zabbix-agent的10050端口通过  iptables -A INPUT -p tcp --dport 10050 -j ACCEPT  2.安装zabbix agent ...

  3. CentOS安装Zabbix Agent

    rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm安装存储库 yum ...

  4. 用yum rpm 快速安装zabbix agent

    用yum 快速安装zabbix agent. wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.2-1.el7 ...

  5. Zabbix 4.0.2试用(七):在Linux主机中安装zabbix agent并添加该主机(yum源安装)

    Zabbix 4.0.2试用(七):在Linux主机中安装zabbix agent并添加主机(yum源安装) 2018年12月20日, 上午6:42 之前介绍的是下载源安装包,编译安装的方式来安装ag ...

  6. Windows下安装Zabbix agent

    下载Windows版本的Zabbix agent安装包:https://www.zabbix.com/cn/download_agents#tab:40LTS 有两种安装方式: (1)需要手动安装,安 ...

  7. 快速安装zabbix agent并部署监控

    1.准备yum源: epel源:yum install -y zabbix22-agent 2.上传脚本: 上传脚本事先写好的监控脚本到/script/下面 3.修改配置文件:Server=10.10 ...

  8. zabbix agent安装与配置篇

     Zabbix监控windows部署安装 Zabbix agent 在windows上安装部署 (1)手工安装zabbix agent客户端 1.  下载与解压 地址: http://www.zabb ...

  9. zabbix agent安装(三)

    转载于https://mp.weixin.qq.com/s/33ab-JLoRfMkeI4aZDciJQ 前一篇文章介绍了zabbix server安装,这篇文章主要讲解zabbix agent安装以 ...

  10. docker 一键安装zabbix server、zabbix agent

    基本原理.须知:1.zabbix 分为zabbix server和zabbix agent,其中zabbix server需要web环境,并且其数据存储在独立的数据库中:2.docker是一种容器服务 ...

随机推荐

  1. [VS2015].NET4.0环境下使用.NET2.0程序集,使用sqlite时报异常 出现“混合模式程序集异常”

    在.net 4.0环境下使用sqlite时报异常 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集其调用的方法是从sqli ...

  2. CentOS中制作本地yum源

    1.光盘指向镜像 2.将镜像挂载到某个目录 mkdir /mnt/cdrom mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom 3.修改本机上的YUM源配置文件 ...

  3. 运用JS设置cookie、读取cookie、删除cookiev

    JS设置cookie: 假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为: document.cookie=&q ...

  4. Linux 下线程的理解

    2017-04-03 最近深入研究了下Linux线程的问题,发现自己之前一直有些许误解,特记之…… 关于Linux下的线程,各种介绍Linux的书籍都没有深入去解释的,或许真的如书上所述,Linux本 ...

  5. 通过EditText的setTransformationMethod()隐藏或显示密码

    private Button mBtnPassword; private EditText mEtPassword; private boolean mbDisplayFlg = false; /** ...

  6. 《Python入门》Windows 7下Python Web开发环境搭建笔记

    最近想尝试一下在IBM Bluemix上使用Python语言创建Web应用程序,所以需要在本地搭建Python Web的开发测试环境. 关于Python的版本 进入Python的网站,鼠标移到导航条上 ...

  7. SVM支持向量机总结

    一.拉格朗日乘子法 一般,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件.这里我们先介绍拉格朗日乘子法,后面再介绍KKT条件. 比如考虑下面的组合优化的问题, 这是一个带等式约束的优化 ...

  8. php内存溢出,出现Allowed memory size of 8388608 bytes exhausted错误的解决办法

    是因为php页面消耗的最大内存默认是为128M (在PHP的ini件里可以看到) ,如果文件太大或图片太大在读取的时候会发生上述错误. 解决办法: 1.修改 php.ini 将memory_limit ...

  9. sublime2常用设置

    设置文本字体格式 • Preferences -> Setting-User • 加入设置:"font_face" : "courier new", &q ...

  10. python 之时间模块 time

    time模块可以用于格式化日期和时间,时间间隔是以秒为单位的浮点小数.每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示. 下面是time模块常用的一些时间格式转换的函数.时间戳可以 ...