页面“Zabbix 调用API 批量添加主机”与“Laradock”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第1行: 第1行:
[[category:ops]]  [[category:zabbix]]
+
=Note=
=pre=
+
laradock 是为 Docker 提供的完整 PHP 本地开发环境,和 Homestead 一样提供了一系列打包好(包括配置)的 Docker Image
  
已有 salt
+
如果连外网pull非常慢  用8.8.4.4 就会快了 
 +
=php-worker=
  
可以见 批量添加 salt  Salt-ssh批量自动安装被控端minion
+
[[Php.ini修改ondocker]]
  
=批量添加zabbix agent=
 
==直接用cmd.run==
 
  salt 'prod-mq03' cmd.run 'yum install  -y zabbix-agent' #systemctl  restart zabbix-agent  systemctl  enable zabbix-agent
 
 
==zabbix state.sls ==
 
有空要试一下
 
 
 
 
 
 
[https://www.cnblogs.com/LYCong/p/7879805.html salt 使用state文件来配置zabbix客户端文件]
 
 
[https://blog.csdn.net/u011075143/article/details/78615691 salt 使用state文件来配置zabbix客户端文件]
 
 
[https://www.cnblogs.com/Jackie-Chen/articles/10795003.html SaltStack批量安装zabbix-agent(yum安装)]
 
 
[https://www.cnblogs.com/xiewenming/p/7713660.html SaltStack安装zabbix-agent-第九篇]
 
 
[https://www.cnblogs.com/python-study/p/5504501.html SaltStack 使用pillar安装配置管理zabbix]
 
 
[https://blog.csdn.net/reblue520/article/details/76286843 saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix]
 
 
[https://www.cnblogs.com/LYCong/p/7879805.html salt 使用state文件来源码安装和配置zabbix客户端文件]
 
 
=批量修改zabbix agent配置=
 
<pre>
 
Server=148.66.11.55
 
ServerActive=148.66.11.55
 
Hostname=prod-sns-mq01
 
 
 
 
sed -i '/^Hostname/ s/.*/Hostname=zabbix_hk/' /etc/zabbix/zabbix_agentd.conf
 
 
#zbx hostname
 
salt 'prod-mq03' cmd.run 'hostname'
 
prod-mq03:
 
    prod-mq03
 
 
 
#这里可以取出 hostname 作变量 和作循环
 
Server=148.66.01.05
 
ServerActive=148.66.01.05
 
 
myhost=`salt 'prod-mq03' cmd.run 'hostname' |sed -n '2p' |awk '{print $1}'`
 
salt 'prod-sns-mq02' cmd.run "sed -i '/^Hostname/ s/.*/Hostname=$myhost/'  /etc/zabbix/zabbix_agentd.conf"
 
 
#这个替换太多了 不太好写匹配  要如下添加 =  or  直接 inser 就是了
 
salt 'prod-mq03' cmd.run "sed -i '/^Server=/ s/.*/Server=$Server/'  /etc/zabbix/zabbix_agentd.conf"
 
salt 'prod-mq03' cmd.run "sed -i '/^ServerActive=/ s/.*/ServerActive=$ServerActive/'  /etc/zabbix/zabbix_agentd.conf"
 
 
 
注意  ""  结果不太对的
 
salt 'prod-sns-mq02' cmd.run "hostname |sed -n '2p' |awk '{print $1}'"
 
prod-sns-mq02:
 
 
</pre>
 
=利用api批量添加主机 =
 
zbx_server version 4.0
 
 
== get token ==
 
 
<pre>
 
<pre>
cat aip.sh
 
# -*- coding:utf-8 -*-
 
import urllib2
 
import json
 
 
url = 'http://zabbix.com/zabbix/api_jsonrpc.php'
 
header = {'Content-Type': 'application/json'}
 
 
req = json.dumps(
 
    {
 
        "jsonrpc": "2.0",
 
        "method": "user.login",
 
        "params": {
 
            "user": "Admin",
 
            "password": "123456"
 
        },
 
        "id": 0,
 
    }
 
)
 
 
def auth():
 
    r = urllib2.Request(url=url, headers=header, data=req)
 
    response = urllib2.urlopen(r)
 
    token = json.loads(response.read())
 
    print(token)
 
 
if __name__ == '__main__':
 
  
    auth()
+
es01服务器  /data/docker-for-services/php-worker/supervisord.conf  文件增加以下配置
 +
files = /var/www/api.sns.com/supervisord.d/production1.*.conf /var/www/apistatistical.com/supervise/production1.*.conf
  
#token
+
然后检查是否生效,去到php-worker容器 查看/etc/supervisor/supervisord.conf 这个文件
{u'jsonrpc': u'2.0', u'result': u'1794bcbe6d818069bff5aa499a07a960', u'id': 0}
 
 
 
</pre>
 
[https://blog.51cto.com/freshair/2132748 Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌]
 
 
 
[https://www.jianshu.com/p/7a014f316e35 zabbix api token获取]
 
== 我们获取必要的相关信息 ,eg所有主机list信息==
 
===groupid ===
 
<pre>
 
cat getgroupid
 
#获取指定groupid
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "hostgroup.get",
 
    "params": {
 
        "output": "extend",
 
        "filter": {
 
            "name": [
 
                "Zabbix servers",
 
                "Linux servers",
 
                "sns servers"
 
            ]
 
        }
 
    },                                       
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}'  http://zbx.com/zabbix/api_jsonrpc.php | python3 -m json.tool
 
 
</pre>
 
</pre>
[https://www.cnblogs.com/zdoubly/p/9777122.html zabbix--api学习之路--get_hostgroup获取]
 
  
=== templateid===
+
=composer=
 
<pre>
 
<pre>
#!/bin/bash
+
** php composer ins
#跑在我的freebsd12
+
composer install
#获取指定groupid
+
php artisan migrate
curl -s -X POST -H 'Content-Type:application/json' -d '
+
php artisan db:seed
{
+
php artisan storage:link
    "jsonrpc": "2.0",
 
    "method": "hostgroup.get",
 
    "params": {
 
        "output": "extend",
 
        "filter": {
 
            "name": [
 
                "Zabbix servers",
 
                "Linux servers"
 
            ]
 
        }
 
    },                                       
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}'  http://148.66.11.55/zabbix/api_jsonrpc.php | python3 -m json.tool
 
 
 
 
 
#output
 
"result": [
 
        {
 
            "groupid": "2",
 
            "name": "Linux servers",
 
            "internal": "0",
 
            "flags": "0"
 
        },
 
        {
 
            "groupid": "4",
 
            "name": "Zabbix servers",
 
  
 +
mkdir bootstrap/cache
 +
mkdir storage/framework
 +
mkdir storage/framework/cache
 +
mkdir storage/framework/views
 +
mkdir storage/framework/sessions
 
</pre>
 
</pre>
  
=== hostadd===
+
==php-worker==
<pre>
 
批量添加版  用法  分别添加 ip and hostname
 
  
  
#!/bin/bash
 
#注释中文导致不成功
 
#"host": "'prod-sns-mq02'",    #这里一般改为你要的hostname
 
IP=(
 
40.243.52
 
41.102.111
 
40.218.197
 
40.216.19
 
)
 
HOSTNAME=(
 
prod-sns-php01
 
prod-sns-php02
 
prod-sns-mq01
 
prod-sns-mq03
 
)
 
  
for  no in `seq 0 echo ${#a[@]}'
+
[https://segmentfault.com/a/1190000018966783 laradock 使用 php-worker 配置 supervisor]
#for  no in `seq 2 3` #这个是手工决定 数量
 
do
 
  
curl -s -X POST -H 'Content-Type:application/json' -d '
+
=other=
{
+
[https://blog.csdn.net/qq_37035946/article/details/99854126 Laradock 更改 mysql 版本及其重建]
    "jsonrpc": "2.0",
 
    "method": "host.create",
 
    "params": {
 
        "host": "'${HOSTNAME[$no]}'", 
 
 
 
        "interfaces": [
 
            {
 
                "type": 1,
 
                "main": 1,
 
                "useip": 1,
 
                "ip": "'${IP[$no]}'",
 
                "dns": "",
 
                "port": "10050"
 
            }
 
        ],
 
        "groups": [
 
            {
 
                "groupid": "2",
 
                "groupid": "16"
 
            }
 
        ],
 
        "templates": [
 
            {
 
                "templateid": "10001"
 
            }
 
        ]
 
      },
 
    "auth": "1794bcbe6d818069bff5aa4207a960",
 
    "id": 1
 
}' http://zbx.com/zabbix/api_jsonrpc.php | python -m json.tool
 
 
done
 
  
#要添加多一个群组
+
[https://blog.csdn.net/hoooooly/article/details/80629442 laradock mysql安装失败 Please provide a source image with `from` prior to commit]
  
 +
=see also=
 +
https://laradock.io/
  
  
  
 +
[https://blog.csdn.net/its_my_dream/article/details/77990482 Docker搭建Laravel开发环境]
  
 +
[https://blog.csdn.net/f2130793/article/details/82179716 Laradock配置安装踩坑]
  
  
#!/bin/bash
+
[https://segmentfault.com/a/1190000017205616 Laradock 使用说明 ---- 不是很详细]
#注释中文导致不成功
 
#"host": "'prod-sns-mq02'",    #这里一般改为你要的hostname
 
IP="
 
121.41.103.113
 
 
for node_ip in ${IP};
 
do
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "host.create",
 
    "params": {
 
        "host": "'prod-sns-es01'", 
 
 
 
        "interfaces": [
 
            {
 
                "type": 1,
 
                "main": 1,
 
                "useip": 1,
 
                "ip": "'${node_ip}'",
 
                "dns": "",
 
                "port": "10050"
 
            }
 
        ],
 
        "groups": [
 
            {
 
                "groupid": "2",
 
                "groupid": "16"
 
            }
 
        ],
 
        "templates": [
 
            {
 
                "templateid": "10001"
 
            }
 
        ]
 
      },
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}' http://148.66.11.55/zabbix/api_jsonrpc.php | python -m json.tool
 
done
 
  
#要添加多一个群组
+
[[category:php]] [[category:Container]]
 
 
</pre>
 

2019年12月27日 (五) 03:06的版本

Note

laradock 是为 Docker 提供的完整 PHP 本地开发环境,和 Homestead 一样提供了一系列打包好(包括配置)的 Docker Image

如果连外网pull非常慢 用8.8.4.4 就会快了

php-worker

Php.ini修改ondocker


es01服务器  /data/docker-for-services/php-worker/supervisord.conf  文件增加以下配置
files = /var/www/api.sns.com/supervisord.d/production1.*.conf /var/www/apistatistical.com/supervise/production1.*.conf

然后检查是否生效,去到php-worker容器 查看/etc/supervisor/supervisord.conf 这个文件

composer

** php composer ins
composer install
php artisan migrate
php artisan db:seed
php artisan storage:link

mkdir bootstrap/cache
mkdir storage/framework
mkdir storage/framework/cache
mkdir storage/framework/views
mkdir storage/framework/sessions

php-worker

laradock 使用 php-worker 配置 supervisor

other

Laradock 更改 mysql 版本及其重建

laradock mysql安装失败 Please provide a source image with `from` prior to commit

see also

https://laradock.io/


Docker搭建Laravel开发环境

Laradock配置安装踩坑


Laradock 使用说明 ---- 不是很详细