zabbix--结合saltstack推送自定义key实践

一、软件版本

操作系统:CentOS-6.5-x86_64

salt版本:2015.5.2(直接yum源码安装)

zabbix版本:3.0.3

二、部署环境规划


名称


IP


主机名


配置


Slat-master


192.168.63.205


Zabbix_server


2核、2G


Salt-client


192.168.63.184


Zabbix_client


2核、2G

三、zabbix-server(slat-master)架构图如下:

架构思路:zabbix server先安装有一个agnet端,然后测试模板和key没有问题之后,再从/usr/local/zabbix/etc/zabbix_agentd.conf.d 目录下推送所有的key到客户端,并重启zabbix服务即可。

第一种实现方式结合state实现自定义推送:

四、Zabbix-agent配置好自定义key存放的路径:

Vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf   ###定义自定义key存放路径。

UnsafeUserParameters=1                      ###开启自定义监控

五、master 上配置state具体路径。

[[email protected]_server ~]# vim /etc/salt/master

file_roots:

base:

- /srv/salt/                      ###sls配置文件存放路径

- /usr/local/zabbix/etc/zabbix_agentd.conf.d/          ####key推送的文件路径

#####################

六、切换到目录下,执行sls的配置操作:

1、环境具体配置:

[[email protected]_server zabbix]# cd /srv/salt

[[email protected]_server salt]# ls

top.sls  zabbix

2、看一下入口文件:

base:

‘*‘:

- zabbix

3、切换到zabbix目录下看入口文件:

[[email protected]_server salt]# cd zabbix/

[[email protected]_server zabbix]# ls

file.sls  init.sls  server.sls

4、初始文件init.sls:

[[email protected]_server zabbix]# cat init.sls

include:

- zabbix.file

- zabbix.server

5、由于salt是基于python编写的,所以我们也可以写成一下形式:

config:

file.managed:

{% for item in [‘mysql.conf‘]%}

- name: /usr/local/zabbix/etc/zabbix_agentd.conf.d/{{item}}

- source: salt://{{item}}

{% endfor %}

6、推送完成之后,重启zabbix—agent:

[[email protected]_server zabbix]# cat server.sls

include:

- zabbix.file

server:

service.running:

- name: zabbix_agentd

- enable: True

- reload: True

7、查看目录下要推送的文件:

[[email protected]_server files]# pwd

/usr/local/zabbix/etc/zabbix_agentd.conf.d

[[email protected]_server zabbix_agentd.conf.d]# ls

mysql.conf  tcp.conf

七、执行推送操作:

[[email protected]_server zabbix]# salt ‘zabbix_client‘ state.highstate -v

**zabbix_client ####表示主机名

查看到第一次已经推送了,mysql.conf这个文件

客户端查看:

[[email protected]_client zabbix_agentd.conf.d]# ls

mysql.conf  tcp.conf

**最后在web界面添加相关模板即可

第二种方式:使用file模块直接推送,配置我们保留不变:

[[email protected]_server files]# salt ‘zabbix_client‘ cp.get_file salt://tcp.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/tcp.conf

zabbix_client:

/usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql.conf

salt ‘zabbix_client‘ cp.get_dir salt://zabbix /tmp/

直接用命令推送即可,推荐使用下面命令的方法来推送文件或者目录。

运维平台开源项目地址:https://github.com/roncoo/roncoo-cmdb

时间: 2025-01-01 14:40:13

zabbix--结合saltstack推送自定义key实践的相关文章

zabbix专题:第九章 自定义key(案例:监控内存,监控nginx状态)

第九章 自定义key 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 为什么要自定义KEY 有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter. 语法如下: UserParameter=key,command 用户自定义参数包含一个key和一个命令,ke

远程(离线)推送自定义推送声音,友盟、极光

一.极光推送很容易可以看到自定义推送声音的设置,名字不对了可以尝试添加格式后缀,如"shegnyin.m4a" 二.友盟的推送:已开始还真没找到,,,后台用参数一试,擦 友盟声音只支持:PCM.m4a (IMA/ADPCM).?Law.aLaw必须是这4种格式之一,添加声音 必须是带后缀的"shengyin.m4a" 三.以友盟为例,执行相应事件 1.点击通知 处理事件 //iOS10以后接收的方法 -(void)userNotificationCenter:(UN

Android极光推送自定义通知

private void showInspectorRecordNotification() { RemoteViews customView = new RemoteViews(context.getPackageName(), R.layout.view_custom); customView.setTextViewText(R.id.tvName_inspectPlan, planInfo.convertlineId2lineName(context, MyApplication.getI

zabbix自定义KEY监控服务状态[不需要端口]

zabbix监控Windows下的服务并实现告警和重启服务 首先 创建获取服务状态的脚本 一.Windows脚本 @echo off set srvname=%1 for /f "skip=3 tokens=4" %%i in ('sc query %srvname%') do set "zt=%%i" &goto :next :next if /i "%zt%"=="RUNNING" ( :服务运行正常,返回1. e

友盟消息推送初试

注册与下载sdk略过,直接贴代码 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.monta.paopao" android:versionCode="1" android:versionName=

PHP基于websocket的前台及后台实时推送

PHP websocket实时消息推送   实现步骤如下: 1.        获取GoEasy appkey. 在goeasy官网上注册一个账号,并新建一个app. APP创建好后系统会为该app自动生成两个key, 一个既可以用来接收又可以用来推送 (supper key),另一个只可以用来接收(subscriber key). 2.        客户端订阅一个channel. a.        在客户端引入goeasy.js, js地址:http://cdn.goeasy.io/goe

PHP Web实时消息后台服务器推送技术---GoEasy

PHP websocket实时消息推送 在这里我记录一下之前如何实现服务器端与客户端实时通信: 实现步骤如下: 1.        获取GoEasy appkey. 在goeasy官网上注册一个账号,并新建一个app. APP创建好后系统会为该app自动生成两个key, 一个既可以用来接收又可以用来推送 (supper key),另一个只可以用来接收(subscriber key). 2.        客户端订阅一个channel. a.        在客户端引入goeasy.js, js地

PHP 基于websocket的前台及后台实时推送

PHP websocket实时消息推送   实现步骤如下: 1.        获取GoEasy appkey. 在goeasy官网上注册一个账号,并新建一个app. APP创建好后系统会为该app自动生成两个key, 一个既可以用来接收又可以用来推送 (supper key),另一个只可以用来接收(subscriber key). 2.        客户端订阅一个channel. a.        在客户端引入goeasy.js, js地址:http://cdn.goeasy.io/goe

C(++) 基于websocket的前台及后台实时推送---GoEasy

 C(++) websocket实时消息推送   实现步骤如下: 1.        获取GoEasy appkey. 在goeasy官网上注册一个账号,并新建一个app. APP创建好后系统会为该app自动生成两个key, 一个既可以用来接收又可以用来推送 (supper key),另一个只可以用来接收(subscriber key). 2.        客户端订阅一个channel. a.        在客户端引入goeasy.js, js地址:http://cdn.goeasy.io/