文档章节

python修改zabbix中的ip

落叶刀
 落叶刀
发布于 2016/08/16 16:31
字数 455
阅读 10
收藏 0

 ansible web -m raw -a "rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm"

ansible web -m raw -a "yum install zabbix-agent  zabbix-sender zabbix-get"

#!/usr/bin/env python
#coding:utf-8
import re  
import socket
import fcntl
import struct

def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])

file_name='/etc/zabbix/zabbix_agentd.conf'
server="192.168.19.137"
fp=open(file_name,'r')  
alllines=fp.readlines()  
fp.close()

  
fp=open(file_name,'w') 
for eachline in alllines:
    cs_ip=re.sub("Zabbix server",get_ip_address("eth0"),eachline)  
    fp.writelines(cs_ip)
for eachline in alllines:
    ss_ip=re.sub("Server",server,eachline)  
    fp.writelines(ss_ip)
fp.close()

#firewall
cmd1="iptables -A INPUT -s 192.168.19.137/32 -p tcp -m tcp --dport 10050:10051 -j ACCEPT"
cmd2="iptables -A INPUT -s 192.168.19.137/32 -m udp -p udp --dport 10050:10051 -j ACCEPT"
cmd3="/etc/init.d/iptables save"
cmd4="/etc/init.d/iptables restart"
commands.getoutput(cmd1)
commands.getoutput(cmd2)
commands.getoutput(cmd3)
commands.getoutput(cmd4)
 

-A INPUT -s 192.168.19.137/32 -p tcp -m tcp --dport 10050:10051 -j ACCEPT
-A INPUT -s 192.168.19.137/32 -m udp -p udp --dport 10050:10051 -j ACCEPT

 

 

#!/usr/bin/env python
#coding:utf-8
import re  
import socket
import fcntl
import struct
def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])
cs_ip=get_ip_address('eth0')
print cs_ip
server="192.168.19.137"

file_name='/etc/zabbix/zabbix_agentd.conf'  
fp=open(file_name,'r')  
alllines=fp.readlines()  
fp.close()  
fp=open(file_name,'w')  
for eachline in alllines:  
    a=re.sub('Zabbix server',get_ip_address('eth0'),eachline)  
    fp.writelines(a) 
for eachline in alllines:  
    b=re.sub('127.0.0.1',server,eachline)  
    fp.writelines(b)  
fp.close()

 

函数的形式

def modifyip(tfile,sstr,rstr):

    try:

        lines=open(tfile,'r').readlines()

        flen=len(lines)-1

        for i in range(flen):

            if sstr in lines[i]:

                lines[i]=lines[i].replace(sstr,rstr)

        open(tfile,'w').writelines(lines)

        

    except Exception,e:

        print e

modifyip('a.txt','a','A')把文件中的所有小a换成A

直接修改某一行

#!/usr/bin/python

import sys,os

f=open('hi.txt','r+')
flist=f.readlines()
flist[4]='hi\n'
f=open('hi.txt','w+')
f.writelines(flist)

终极版

#!usr/bin/env python
#coding:utf-8
import socket
import fcntl
import struct

def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(s.fileno(),0x8915,struct.pack('256s', ifname[:15]))[20:24])
cs_ip=get_ip_address('eth0')
print cs_ip

def modifyip(tfile,sstr,rstr):
    try:
        lines=open(tfile,'r').readlines()
        flen=len(lines)-1
        for i in range(flen):
            if sstr in lines[i]:
                lines[i]=lines[i].replace(sstr,rstr)
        open(tfile,'w').writelines(lines)
    except Exception,e:
        print e
modifyip('zab.txt','172.16.43.40','127.0.0.1')
modifyip('zab.txt','Zabbix server',cs_ip)
 

© 著作权归作者所有

共有 人打赏支持
落叶刀
粉丝 41
博文 126
码字总数 107596
作品 2
浦东
运维
私信 提问
ZABBIX-API采集(zabbix3.4)

版权声明:知识就是为了传播! https://blog.csdn.net/weixin_36171533/article/details/85113211 1,WEB API 2,python Zabbix SDK 1,WEB API 特点: 远程管理zabbix配置 远程检索配置和历...

JESSE_JAVA
2018/12/20
0
0
添加自定义监控项目、配置邮件警告

添加自定义监控项目 需求:监控某台wev的80端口连接数,并出图 两步:(1)zabbix监控弄中心创建监控项目;(2)针对该监控项目以图形展现 服务端ip:192.168.159.131 客户端ip:192.168.159...

豆渣锅
2018/06/26
0
0
linux centos安装zabbix 4.0服务端

linux centos安装zabbix 4.0服务端 1、服务器安装docker sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo http://mirrors.aliyun.co......

优惠券活动
03/19
0
0
结合Zabbix与Ansible打造自动化数据库监控体系

本文根据dbaplus社群第162期线上分享整理而成。 随着业务的飞速发展,数据库服务器量级飞速增长,比如Oracle、MySQL、Redis、MongoDB的使用更加普及,对数据库运维人员的要求也越来越高,构建...

刘宇
2018/10/10
0
0
zabbix监控的维信报警设置线上落地经验

微信接收zabbix监控信息脚本和配置 微信企业号的申请 1、注册的地址https://qy.weixin.qq.com/ 2、创建用户和应用 zabbix server配置脚本的路径 #vim zabbix_server.conf AlertScriptsPath=/...

拎壶冲冲冲
2018/07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【机器学习PAI实战】—— 玩转人工智能之商品价格预测

摘要: 我们经常思考机器学习,深度学习,以至于人工智能给我们带来什么?在数据相对充足,足够真实的情况下,好的学习模型可以发现事件本身的内在规则,内在联系。我们去除冗余的信息,可以...

zhaowei121
9分钟前
0
0
Spring拓展接口之FactoryBean,我们来看看其源码实现

是什么 FactoryBean的源码比较简单,大家可以细读下其注释,我做了简单的如下翻译 /** * 实现此接口的bean不能用作普通bean。此bean暴露的对象是通过getObject()创建的对象,而不是它自身...

java菜分享
13分钟前
1
0
Pod在多可用区worker节点上的高可用部署

一、 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可用...

阿里云官方博客
19分钟前
0
0
深入理解 Hive 分区分桶 (Inceptor)

分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描其他不关心的分区,快速定位,提高查...

hblt-j
27分钟前
0
0
数据结构

什么是数据结构 1、数据 数据是描述客观世界的数字、字符以及一切能够输入到计算机中,并且能够被计算机程序处理的符号集合。简言之,数据就是计算机加工处理的原料,是信息的载体。 2、数据...

stars永恒
37分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部