Docker轻量级web图形页面管理 - Portainer部署记录
如果在日常运维工作中,想要查看某台服务器上的本地CPU,内存,网络使用状态,怎么办?这里介绍使用python脚本获取:
[root@python2 ~]# cat os.py
#!/usr/bin/python
#coding=utf-8 import os
import time
import sys
import atexit
import psutil #print "Welcome,current system is",os.name," 3 seconds late start to get data"
time.sleep(3) line_num = 1 #function of Get cpu state
def getCPUstate(interval=1):
return (" CPU:"+str(psutil.cpu_percent(interval))+"%") def getMemorystate():
phymem = psutil.virtual_memory()
line = "Memory: %5s%% %6s/%s"%(
phymem.percent,
str(int(phymem.used/1024/1024))+"M",
str(int(phymem.total/1024/1024))+"M"
)
return line
def bytes2human(n):
"""
>>>bytes2human(10000)
'9.8k'
>>>bytes2human(100001221)
'95.4M'
"""
symbols = ('K','M','G','T','P','E','Z','Y')
prefix = {}
for i ,s in enumerate(symbols):
prefix[s] = 1 << (i+1)*10
for s in reversed(symbols):
if n >=prefix[s]:
value = float(n) / prefix[s]
return '%.2f %s'%(value,s)
return '%.2fB'%(n)
def poll(interval):
"""Retrieve raw stats within an interval window."""
tot_before = psutil.net_io_counters()
pnic_before = psutil.net_io_counters(pernic=True)
#sleep some time
time.sleep(interval)
tot_after = psutil.net_io_counters()
pnic_after = psutil.net_io_counters(pernic=True)
#get cpu stats
cpu_state = getCPUstate(interval)
#get memory
memory_state = getMemorystate()
return (tot_before,tot_after,pnic_before,pnic_after,cpu_state,memory_state)
def refresh_window(tot_before,tot_after,pnic_before,pnic_after,cpu_state,memory_state):
"""print stats on screen"""
#print current time,cpu state,memory
print (time.asctime() +" | "+cpu_state+" | "+
memory_state)
#total
print(" NetStates:")
print(" total bytes: sent: %-10s received: %s"%(\
bytes2human(tot_after.bytes_sent), \
bytes2human(tot_after.bytes_recv)))
print( " total packets: sent: %-10s received: %s"%(\
tot_after.packets_sent,\
tot_after.packets_recv))
# per-network interface details: let's sort network interfaces so
# that the ones which generated more traffic are shown first
print( " ")
nic_names = pnic_after.keys()
#nic_names.sort(key=lambda x: sum(pnic_after[x]), reverse=True)
for name in nic_names:
stats_before = pnic_before[name]
stats_after = pnic_after[name]
templ = "%-15s %15s %15s"
print(templ % (name, "TOTAL", "PER-SEC"))
print(templ % (
"bytes-sent",
bytes2human(stats_after.bytes_sent),
bytes2human(stats_after.bytes_sent - stats_before.bytes_sent) +
'/s',
))
print(templ % (
"bytes-recv",
bytes2human(stats_after.bytes_recv),
bytes2human(stats_after.bytes_recv- stats_before.bytes_recv)
+ '/s',
))
print(templ % (
"pkts-sent",
stats_after.packets_sent,
stats_after.packets_sent - stats_before.packets_sent,
))
print((templ %(
"pkts-recv",
stats_after.packets_recv,
stats_after.packets_recv - stats_before.packets_recv,
)))
print( " ")
try:
interval = 0
while 1:
args = poll(interval)
refresh_window(*args)
interval = 1
except (KeyboardInterrupt,SystemExit):
pass
执行脚本:
[root@python2 ~]# chmod 755 os.py [root@python2 ~]# python os.py
Mon May 20 14:56:57 2019 | CPU:0.0% | Memory: 6.4% 286M/3790M
NetStates:
total bytes: sent: 18.51 M received: 245.65 M
total packets: sent: 125771 received: 2090611 lo TOTAL PER-SEC
bytes-sent 0.00B 0.00B/s
bytes-recv 0.00B 0.00B/s
pkts-sent 0 0
pkts-recv 0 0 ens192 TOTAL PER-SEC
bytes-sent 18.51 M 0.00B/s
bytes-recv 245.65 M 0.00B/s
pkts-sent 125771 0
pkts-recv 2090611 0
Docker轻量级web图形页面管理 - Portainer部署记录的更多相关文章
- docker:轻量级图形页面管理之Portainer
docker:轻量级图形页面管理之Portainer 原创甘兵2018-03-05 14:26:56评论(8)2586人阅读 1.介绍 docker 图形化管理提供了很多工具,有Portainer ...
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)- 负载均衡marathon-lb
之前介绍了Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)的操作,多余的废话不说了,下面接着说下在该集群环境下的负载均衡marathon-lb的部署过程: 默认情况 ...
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)
随着"互联网+"时代的业务增长.变化速度及大规模计算的需求,廉价的.高可扩展的分布式x86集群已成为标准解决方案,如Google已经在几千万台服务器上部署分布式系统.Docker及 ...
- docker:轻量级图形页面管理工具Portainer
1.介绍 docker 图形化管理提供了很多工具,有Portainer.Docker UI.Shipyard等等,本文主要介绍Portainer. Portainer是一个开源.轻量级Docker管理 ...
- svn web页面管理svnadmin部署
1.yum install subversion 创建svn目录 mdkir -p /data/svndirroot 建立svn库 svnadmin create /data/svndirroo ...
- Pupet自动化管理环境部署记录
废话不多说了,下面记录下Puppet在Centos下的部署过程: puppet是什么puppet是一种基于ruby语言开发的Lnux.Unix.windows平台的集中配置管理系统.它使用自有的pup ...
- Docker集中化web界面管理平台-Shipyard部署记录
Docker图形页面管理工具基本常用的有三种: DOCKER UI,Shipyard,Portainer.对比后发现,Shipyard最强大,其次是Portainer,最后是Docker ui.之前介 ...
- Docker 图形化页面管理工具使用
一.Docker图形化工具 docker 图形页面管理工具常用的有三种,DockerUI ,Portainer ,Shipyard .DockerUI 是 Portainer 的前身,这三个工具通过d ...
- Docker图形界面管理
之前都是使用命令行进行Docker的管理,这里简单介绍一下Docker的图形界面管理.之所以说简单介绍,是因为在生产环境都是集群,很少使用图形界面管理单台Docker主机,所以就演示记录一下,在个人测 ...
随机推荐
- Hdu 1009 FatMouse' Trade 2016-05-05 23:02 86人阅读 评论(0) 收藏
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- hive 实现类似 contain 包含查询
如何用hive sql 实现 contain 查询? 需求:判断某个字符串是否在另一个字符串中? 方法: 可以自定义函数,但是用正则匹配regexp更方便 代码如下: 首先,查看regexp正则函数的 ...
- kafka groupid
kafka 分组 简言之,就是相同分组的消费者,会分摊消费kafka中同一个topic中的数据.
- postgresql 主从 patroni
1 安装基础包 1.1 postgres yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_ ...
- petapoco 新手上路
PetaPoco是一个轻量级ORM框架 用法可参考http://www.toptensoftware.com/petapoco/ https://github.com/CollaboratingPl ...
- WPF学习笔记(4):获取DataGridTemplateColumn模板定义的内容控件
在之前的DataGrid的DataGridTemplateColumn列中,自定义了一个TextBox控件,但是在C#代码中提示找不到这个控件,导致无法对该控件进行操作.在网上搜索后,发现一些处理方法 ...
- WPF概述(硬件加速及分辨率无关性)
一.名词解释 WPF(Windows Presentation Foundation),直译为Windows表示基础,是专门用来编写程序表示层的技术和工具. 大部分程序都是多层架构的,一般至少包含三层 ...
- Lerning Entity Framework 6 ------ Defining Relationships
There are three types of relationships in database. They are: One-to-Many One-to-One Many-to-Many Th ...
- cad 关键字被保留了?选择集关键字保留了? N S W E关键字无法用?
N S W E是东南西北四个方位,s是南方270度,在设置关键字的时候必须避开这四个关键字. 设置早期的R14 也有.
- 利用CVE-2018-0950漏洞自动窃取Windows密码
i春秋作家:浅安 0×00 前言 记得还在2016年的时候,我的一个同事那时还在使用CERT BFF(自动化模糊测试工具),他向我询问到如何将微软办公软件中看起来可利用的漏洞转化成可以运行的病毒程序并 ...