[What]使用LEP来观察linux系统状态

LEP(Linux Easy Profiling)项目是 宋宝华老师团队 开发的可以通过网页图形化展示linux系统的全局视图, 可以运行在X86-64的PC机以及ARM内核的的开发板上,简直是神器!

LEP架构

LEP软件是CS架构,分为LEPD(LEP Daemon,资源占用少,用于运行在目标机上)和LEPV(LEP Viewer运行在客户机上)两个部分。

所以这个软件一般的使用方式为:

  • 在嵌入式板或服务器中运行 LEPD,在普通PC上运行LEPV以远程查看目标运行状态。
  • 在PC本机运行LEPD和LEPV,以监视自身的状态。
    • 对于监视一些占用量比较大的程序时,建议在其它设备上连接LEPV服务,因为浏览器也要占用不少资源。

准备工作

使能 TASKSTATS

General setup --->

CPU/Task time and stats accounting --->

[*] Export task/process statistics through netlink

[*] Enable per-task delay accounting

[*] Enable extended accounting over taskstats

[*] Enable per-task storage I/O accounting

LEP在 ubuntu16.04 上运行步骤

编译并运行LEPD

  • 首先安装必要的依赖库:
sudo apt install libev-dev
sudo apt install linux-tools-common linux-tools-generic linux-tools-`uname -r`
sudo apt install libncurses5-dev
  • 获取库并编译:
git clone https://github.com/linuxep/lepd
cd lepd
#######对于PC上运行来说#############
#使用 make 即可生成可执行文件 "lepd"#
make
#使用root权限启动以获得访问权限
sudo ./lepd

###注意:有的时候启动lepd会失败,所以需要使用命令行来检查一下输出是否正确,
# 其中 “127.0.0.1” 为LEPD运行机的IP地址,此命令列出可以使用的所有方法
echo '{"method":"ListAllMethod"}' | nc 127.0.0.1 12307
#比如获取内存信息
echo '{"method":"GetProcMeminfo"}' | nc 127.0.0.1 12307
##如果没有数据返回,则使用以下方式杀死进程,然后再次启动并测试
ps -aux | grep lepd
sudo kill -s 9 <lepd PID>

#######对于嵌入式ARM上运行来说#######
#需要特别指定目标板类型来编译,默认Makefile中指定的编译器为 arm-linux-gnueabi-,
#目前仅支持软件浮点编译器!!!!! 最简单粗暴的安装方式 : sudo apt install gcc-arm-linux-gnueabi
make ARCH=arm 
#然后将生成的文件 lepd 拷贝到嵌入式Linux的文件系统中并启动

运行LEPV

  • 如果没有Docker,需要先安装并配置好Docker
  • 获取库并启动
git clone https://github.com/linuxep/lepv
cd lepv

#从Docker仓库中下载镜像
./buildImage.sh
#启动容器
./runContainer.sh

连接并查看

在浏览器中输入 127.0.0.1:8889 便可连接,然后在LEPV地址栏中输入 运行lepd设备的IP (无论是本机还是其它设备) 便可连接LEPD并查看系统信息。

Last Updated 2018-10-14 日 19:32.
Render by hexo-renderer-org with Emacs 26.1 (Org mode 9.1.14)