设为首页 收藏本站
查看: 1012|回复: 0

[经验分享] rsyslog 客户端监控

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-24 08:38:50 | 显示全部楼层 |阅读模式
服务端去给客户端发指令,告诉客户端我curl完了,客户端也就是rsyslog服务端
#!/usr/bin/python
import pycurl
import socket
import time

def work_socket():
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind(('10.67.15.96',9999))
    s.listen(10)
    s.setblocking(0)
    s.settimeout(10)
    conn,addr=s.accept()
    conn.send('10.67.15.96')



if __name__ == '__main__':
        common_list=['10.67.15.22','10.67.15.24','10.67.15.25','10.67.15.48']
        bigapp_list=['10.67.15.39','10.67.15.65','10.67.15.66','10.67.15.27']
        ent_list=['10.67.15.23','10.67.15.42','10.67.15.43','10.67.15.67','10.67.15.68','10.67.15.69']
        c=pycurl.Curl()
        for ia in range(100):
            for i in common_list:
                c.setopt(c.HTTPHEADER,["Host:monitorcommon1.sinaapp.com","Appname:monitorcommon1","AppVersion:3","AppHash:604","AccessKey:2ynwm3xxlm","SecretKey: lwz24z
32mm3lz0ji225x4ykwhk1x5mwkj33x1wwy","McIP: 1default;1::;1:@default:;;","MysqlPort: 3307","AppCookie: aks=4j33x1wm2n,5020k300z0,5m0lw4l3zl,o4550jjym3,o1n5kwmyx0,3ozlxlo0
jy,k40z12j23x,yyl3jxzj3x,kxjyl3llyy,,,,looz04o3my,,0oz4y4wx4k,z2wlx21240,o4lj5jl5nl,noyj200ml0;debug=1"])
                c.setopt(c.URL,'%s/monitor.html'%i)
                c.perform()
            for ii in bigapp_list:
                c.setopt(c.HTTPHEADER,["Host: monitorbigapp1.sinaapp.com","Appname: monitorbigapp1","AppVersion:3", "AppHash: 953", "AccessKey: 0y34wm3zlz", "SecretKey:
0z3mh2jwmz45mjkzkii3iw5zwyylk5mw0x500xzl", "McIP: 1default;1::;1:@default:;;", "MysqlPort: 3307", "AppCookie: aks=4j33x1wm2n,5020k300z0,5m0lw4l3zl,o4550jjym3,o1n5kwmyx
0,3ozlxlo0jy,k40z12j23x,yyl3jxzj3x,kxjyl3llyy,,,,looz04o3my,,0oz4y4wx4k,z2wlx21240,o4lj5jl5nl,noyj200ml0;debug=1"])
                c.setopt(c.URL,'%s/monitor.html'%ii)
                c.perform()
            for iii in ent_list:
                c.setopt(c.HTTPHEADER,["Host: monitorent1.sinaapp.com", "Appname: monitorent1", "AppVersion: 3", "AppHash: 156", "AccessKey: 3lyw2wky00", "SecretKey: l1
llk425x3zi0lyzllil00lh1j23z54wz11z4yiw", "McIP: 1default;1::;1:@default:;;", "MysqlPort: 3307", "AppCookie: aks=4j33x1wm2n,5020k300z0,5m0lw4l3zl,o4550jjym3,o1n5kwmyx0,3
ozlxlo0jy,k40z12j23x,yyl3jxzj3x,kxjyl3llyy,,,,looz04o3my,,0oz4y4wx4k,z2wlx21240,o4lj5jl5nl,noyj200ml0;debug=1"])
                c.setopt(c.URL,'%s/monitor.html'%iii)
                c.perform()
            time.sleep(5)
    #work_socket()

客户端,客户端监控日志中心,刚才服务端curl过来的日志,是否已经存在,如果不存在得出来
#!/usr/bin/python
import socket
import os
import time
import re



def buffer_line(monitor_log,buffer_log):
        buf = open("/home/yanchao/%s"%buffer_log).read()
        bytes=os.popen('wc -c %s'%monitor_log).read().split(" ")[0]
        if int(bytes) < int(buf):
                return 0
        else:
                return int(re.findall("^\d*", buf)[0])

def set_last_pos(pos,buffer_log):
        open("/home/yanchao/%s"%buffer_log, "w").write(str(pos))


def monitor_work(monitor_log,buffer_log):
        fh=open(monitor_log,'r')
        fh.seek(buffer_line(monitor_log,buffer_log))
        content=fh.read()
        new_total_lines=len(content)+buffer_line(monitor_log,buffer_log)
        set_last_pos(new_total_lines,buffer_log)
        new_lines=content.split("\n")
        return new_lines


if __name__ == '__main__':
    time.sleep(5)
    com_ip_list={'common':['yq48','yq22','yq24','yq25'],'bigapp':['yq27','yq39','yq65','yq66'],'ent':['yq23','yq42','yq43','yq67','yq68','yq69']}
    com_now_list=[]
    com_hh_list=[]
    now_time=time.strftime('%Y-%m-%d',time.localtime(time.time()))
    common_log='/data1/saelog/'+now_time+'/access/604/monitorcommon1-3-access_log'
    bigapp_log='/data1/saelog/'+now_time+'/access/953/monitorbigapp1-3-access_log'
    ent_log='/data1/saelog/'+now_time+'/access/156/monitorent1-3-access_log'
    dict_list={'common':common_log,'bigapp':bigapp_log,'ent':ent_log}
    c=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    c.connect(('10.67.15.96',9999))
    rec=c.recv(1024)
    if rec == '10.67.15.96':
        for iiii in dict_list.keys():
            lines=monitor_work(dict_list[iiii],iiii)
            for ii in lines:
                if ii:
                  com_hh_list.append(ii)
            print iiii,len(com_hh_list),len(com_ip_list[iiii])
            if len(com_hh_list) < len(com_ip_list[iiii]):
                for i in com_hh_list:
                    com_now_list.append(i.split(" ")[-1])
                print com_now_list
                aa=set(com_ip_list[iiii]) ^ set(com_now_list)    注:com_ip_list[iiii]和com_now_list两个列表进行对比,得出不同的字段,set是一种字符类型,要想调用需要转换成列表
                for iii in list(aa):
                    if iii:
                        print iii
            com_hh_list=[]
            com_now_list=[]


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-25236-1-1.html 上篇帖子: Ubuntu衍生版本大推荐 五虎将各显神通 下篇帖子: 如何往rsyslog日志中心发送日志 客户端 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表