美文网首页
OPmanager报表自动导出

OPmanager报表自动导出

作者: 小蛇君 | 来源:发表于2020-12-17 11:46 被阅读0次

    背景

    OPmanager监控功能强大,但在制作运维月报中却发现每次只能手工导出报表,用OP自带的计划任务要么导出空表、要么导出了的是所有系统,而非指定系统。下面介绍一种自动导出报表的方式

    准备工作

    1、首先还要根据需求创建系统用户,比如4个系统每个系统都要导出报表,则要创建4个用户,每个用户权限只有各自系统;

    2、在首页添加一个仪表板,选定需要导出的报表内容,如CPU、内存、硬盘使用率排行,点击下一步后选择查看用户,默认会勾选当前登录用户,之后完成创建即可。

    选择窗件

    3、选择一个仪表板,点击编辑按钮。由于是月报需要的图表,将时间范围设置为“上月”,时间段设置为业务时段

    CPU排行窗件 编辑窗件

    4、现在CPU的窗件已经是我们想要的报表了,点击嵌入窗件,可以看到一个url,使用这个url即可直接访问到该窗件,注意“OPmanager-12”要替换成IP地址

    设置时间范围后的窗件 窗件URL

    自动获取报表

    用selenium访问URL并截图,就可实现报表自动获取的功能了。

          虽然显示“不需要登录就能访问”,但如果新开一个浏览器访问窗件的URL,会以admin权限来显示内容,即全系统的CPU排行。于是需要先登录用户,再访问URL才可以。

    代码实现

    1、登陆OP

    loginurl = 'http://192.168.4.230:8060/apiclient/ember/Login.jsp'

    option=webdriver.ChromeOptions()

    option.add_argument('headless')  #后台静默执行

    driver = webdriver.Chrome(path + r"\chromedriver.exe",options=option)

    driver.get(loginurl)

    time.sleep(3)

    userinput = driver.find_element_by_id('userName')

    pwdinput = driver.find_element_by_id('password')

    userinput.click()

    userinput.clear()

    userinput.send_keys('你的用户名')   #输入用户名

    time.sleep(1)

    pwdinput.click()

    pwdinput.clear()

    pwdinput.send_keys('密码')  #输入密码 

    time.sleep(1)

    driver.find_element_by_id('btnSubmit').click()  #点击登录

    2、获取报表并保存

    urlcpu = 'http://192.168.4.230:8060/embedView.do?type=widget&widgetID=3303&authKey=22d445b5-0ff5-492c-89db-b8b6a4b9b6d5'

    driver.get(urlcpu)  #访问CPU窗件

    time.sleep(30)  #要等一会才能刷出图像

    driver.get_screenshot_as_file('cpu.png')

    print("%s:截图成功!!!")

    driver.quit()

    相关文章

      网友评论

          本文标题:OPmanager报表自动导出

          本文链接:https://www.haomeiwen.com/subject/mzpagktx.html