博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
salt 使用state文件来配置zabbix客户端文件
阅读量:6500 次
发布时间:2019-06-24

本文共 6186 字,大约阅读时间需要 20 分钟。

salt 调用pillar数据配置zabbix_agentd的配置文件

先拷贝zabbix的安装包到minion端
[root@cong-33 src]# scp zabbix-3.0.12.tar.gz 192.168.1.126:/usr/local/src/           ##我的机器做了密钥互信,所以不用密码

这里先不用salt安装zabbix,(还不会。。。。)

解压,编译安装zabbix
 
[root@cong-55 src]# tar xf zabbix-3.0.12.tar.gz[root@cong-55 src]# cd zabbix-3.0.12[root@cong-55 zabbix-3.0.12]# ./configure --prefix=/usr/local/zabbix/ --enable-agent[root@cong-55 zabbix-3.0.12]# make && make install

 

在master的file_roots目录下配置好zabbix_agentd的配置文件

[root@cong-33 salt]# cat /srv/salt/file/zabbix/zabbix_agentd.confEnableRemoteCommands=1LogRemoteCommands=1Server=192.168.1.33ServerActive=192.168.1.33Hostname={
{ hostname }}UnsafeUserParameters=1Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.confPidFile=/var/run/zabbix/zabbix_agentd.pidLogFile=/var/log/zabbix/zabbix_agentd.logLogFileSize=0[root@cong-33 salt]#

再编写pillar文件设置获取minion的hostname内容

[root@cong-33 salt]# cat /srv/salt/pillar/top.slsbase:  '*':  - ip  - user  - uid  - httpd  - hostname[root@cong-33 salt]# cat /srv/salt/pillar/hostname.slshostname: {
{ grains['nodename'] }}[root@cong-33 salt]# salt 'cong-55' pillar.item hostname ##记得刷新pillar到minion端cong-55: ---------- hostname: cong-55[root@cong-33 salt]#

master端编写sls文件来拷贝zabbix_agentd的配置文件到minion

[root@cong-33 salt]# cat /srv/salt/zabbix_agentd.slszabbix_agentd:  ##sls的执行ID,可自定义  file.managed:  - source: salt://file/zabbix/zabbix_agentd.conf  ##源文件路径  - name: /usr/local/zabbix/etc/zabbix_agentd.conf  ##目标文件路径  - template: jinja  - defaults:       hostname: {
{ pillar['hostname'] }}  ##设置hostname的key,在文件中可以调用这个key的值[root@cong-33 salt]#

单独执行sls文件

[root@cong-33 salt]# salt 'cong-55' state.sls zabbix_agentd      ##后面的文件名可以不加sls的后缀cong-55:----------  ID: zabbix_agentd  Function: file.managed  Name: /usr/local/zabbix/etc/zabbix_agentd.conf  Result: True  Comment: File /usr/local/zabbix/etc/zabbix_agentd.conf updated  Started: 12:17:57.332941  Duration: 184.585 ms  Changes:  ----------  diff:      ##因为编译好的zabbix_agentd配置文件是有内容的,salt把文件替换会显示增加和减少的内容  ---。。。。。。。。  -# TLSPSKFile=  +EnableRemoteCommands=1  +LogRemoteCommands=1  +Server=192.168.1.33  +ServerActive=192.168.1.33  +Hostname=cong-55  +UnsafeUserParameters=1  +Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.confSummary for cong-55------------Succeeded: 1 (changed=1)Failed: 0------------Total states run: 1Total run time: 184.585 ms[root@cong-33 salt]#

 

在minoin端查看
文件已经替换了,而且hostname也填充进去了
[root@cong-55 salt]# cat /usr/local/zabbix/etc/zabbix_agentd.confLogFile=/tmp/zabbix_agentd.logEnableRemoteCommands=1LogRemoteCommands=1Server=192.168.1.33ServerActive=192.168.1.33Hostname=cong-55UnsafeUserParameters=1Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf[root@cong-55 salt]#

 

修改sls文件,让其可以执行更多的操作
配置拷贝过去后执行zabbix_agentd启动脚本,启动zabbix_agentd 服务
[root@cong-33 salt]# cat zabbix_agentd.slszabbix_agentd_conf:  file.managed:  - source: salt://file/zabbix/zabbix_agentd.conf  - name: /usr/local/zabbix/etc/zabbix_agentd.conf  - template: jinja  - defaults:      hostname: {
{ pillar['hostname'] }}zabbix_agentd: file.managed: - source: salt://file/zabbix/zabbix_agentd ##zabbix_agentd启动脚本,拷贝到minion端 - name: /etc/init.d/zabbix_agentd - mode: 755 service.running: ##运行zabbix_agentd服务 - name: zabbix_agentd - require: ##依赖,如果下面的文件存在,才会执行启动服务 - file: /etc/init.d/zabbix_agentd[root@cong-33 salt]#
后面发现minion没有zabbix用户,zabbix不能运行在root用户上。
好,我们使用sls来添加zabbix用户,然后再启动zabbix-agentd服务
修改sls文件
[root@cong-33 salt]# cat zabbix_agentd.slszabbix_agentd_conf:      ##sls执行的一个ID,可以自定义,在添加用户的情况下,如果不知道添加用户的名称,自动会取ID的值做用户名  file.managed:           ##文件管理的函数,这里是拷贝文件到minion服务器  - source: salt://file/zabbix/zabbix_agentd.conf      ##指定源文件路径,这里是salt的file_roots的路径  - name: /usr/local/zabbix/etc/zabbix_agentd.conf      ##目标文件路径  - template: jinja  - defaults:      hostname: {
{ pillar['hostname'] }} ##设定一个变量名。在文件中可以继承这个变量的值zabbix_agentd: file.managed: - source: salt://file/zabbix/zabbix_agentd - name: /etc/init.d/zabbix_agentd - mode: 755 service.running: ##服务启动函数 - name: zabbix_agentd - require: ##依赖,如果下面的zabbix用户存在才会执行服务启动 - user: zabbix user.present: ##用户函数 - home: /usr/local/zabbix ##用户家目录 - shell: /bin/nologin ##用户shell环境 - name: zabbix ##用户名称,如果不指定,会取ID的值 - uid: 188 ##uid - gid: 188 ##gid - require: ##依赖下面的组名,组名存在才会执行这个添加用户的操作 - group: zabbix group.present: ##组函数 - name: zabbix ##组名称 - gid: 188 ##组ID - require: ##依赖,下面这个文件存在,才会执行添加组的操作 - file: /usr/local/zabbix/etc/zabbix_agentd.conf[root@cong-33 salt]#

执行sls文件

[root@cong-33 salt]# salt 'cong-55' state.sls zabbix_agentdcong-55:----------  ID: zabbix_agentd_conf  Function: file.managed  Name: /usr/local/zabbix/etc/zabbix_agentd.conf  Result: True  Comment: File /usr/local/zabbix/etc/zabbix_agentd.conf is in the correct state  Started: 15:54:28.866611  Duration: 57.703 ms  Changes:----------  ID: zabbix_agentd  Function: file.managed  Name: /etc/init.d/zabbix-agent  Result: True  Comment: File /etc/init.d/zabbix-agent is in the correct state  Started: 15:54:28.924459  Duration: 16.151 ms  Changes:----------  ID: zabbix_agentd  Function: group.present  Name: zabbix  Result: True  Comment: Group zabbix is present and up to date  Started: 15:54:28.948580  Duration: 1.704 ms  Changes:----------  ID: zabbix_agentd  Function: user.present  Name: zabbix  Result: True  Comment: User zabbix is present and up to date  Started: 15:54:28.950437  Duration: 7.137 ms  Changes:----------  ID: zabbix_agentd  Function: service.running  Name: zabbix-agent  Result: True  Comment: Started Service zabbix-agent  Started: 15:54:28.957773  Duration: 113.605 ms  Changes:  ----------  zabbix-agent:  TrueSummary for cong-55------------Succeeded: 5 (changed=1)Failed: 0------------Total states run: 5Total run time: 196.300 ms[root@cong-33 salt]#
原本自己写的zabbix_agentd启动脚本,手动可以起来,但是使用sls文件起不来,
后来就使用zabbix  rpm包的启动脚本,修改一下就可以用来,但是注意一下目录的权限的一些配置要不会报错。
先手动执行看看行不行,在用sls来启动
服务起不来就看minion的salt日志,
 
 
因为zabbix的配置中,每个机器的IP,Hostname 都不一样,如果是大批量机器,那么手动就不合适了,
 
使用pillar来获取每个机器的IP,HostName,然后填写进zabbix的配置文件中,在拷贝过去

 

 

 

 

 

转载于:https://www.cnblogs.com/LYCong/p/7879805.html

你可能感兴趣的文章
给django视图类添加装饰器
查看>>
.vimrc文件
查看>>
DVWA默认用户名密码
查看>>
简述 clearfix 的原理
查看>>
【Project Euler】530 GCD of Divisors 莫比乌斯反演
查看>>
luogu P1280 尼克的任务 序列DP
查看>>
Android 实时文件夹
查看>>
获取文件最后修改时间的VC代码
查看>>
适用于0基础小伙伴的HTML知识点总结 先到先得哟
查看>>
ThinkPHP子类继承Controller类的注意事项
查看>>
iphone UIView的一些基本方法理解
查看>>
sys.check_constraints
查看>>
vue问题
查看>>
Linux常用命令大全
查看>>
ThinkPHP 框架学习
查看>>
yii1框架,事务使用方法
查看>>
css3箭头效果
查看>>
Python学习笔记【第一篇】:认识python和基础知识
查看>>
MathType在手,公式不求人!
查看>>
测试用例设计
查看>>