配置glances并输出到Elasticsearch

来源:互联网 发布:搜狗输入法for ubuntu 编辑:程序博客网 时间:2024/06/05 19:56

1. 配置glances

这两天有需求需要对linux系统的各项运行参数进行监控,找到了基于python开发的一个工具————glances,介绍在这里,github上的源码及相关的文档资料在这里。软件本身的功能还是比较全面的,也能提供C/S或是web服务的方式,比较灵活。

根据github上的readme文件描述,可以通过源码来安装glances,如下:

$ wget https://github.com/nicolargo/glances/archive/  vX.Y.tar.gz -O - | tar xz  $ cd glances-*  # python setup.py install  

这里实验采用的glances版本为2.10,python版本为Python 2.7.5
为了定义自己的配置,需要制定glances运行的配置文件,如果不指定配置文件的话,glances**貌似**是采用一套内置的配置的,而不是其安装目录中的conf/glances.conf文件。
glances.conf文件中包含了glances的各种配置,里面有几项是相关的内容,可以对应修改如下:

############################################################################### Globals Glances parameters##############################################################################[global]# Does Glances should check if a newer version is available on PyPI ?check_update=false# History size (maximum number of values)# Default is 28800: 1 day with 1 point every 3 seconds (default refresh time)history_size=28800

上边check_update=false默认是true,可以不检查更新。

[ports]# Ports scanner plugin configuration# Interval in second between two scansrefresh=30# Set the default timeout (in second) for a scan (can be overwritten in the scan list)timeout=3

上边refresh=30将默认的3秒刷新改为了30秒,需求不紧急的话可以有效的节约CPU资源,只在scan的时候,会消耗。

[elasticsearch]# Configuration for the --export-elasticsearch option# Data are available via the ES Restful API. ex: URL/<index>/cpu/system# https://www.elastic.cohost=192.168.0.102port=9200index=glances

上边配置elasticsearch的服务地址和端口,还有index的名称。对应修改即可。
所有配置都OK了以后,通过命令运行glances,并加入导出到elasticsearch的参数就行。glances导出到elasticsearch只支持standalone和client模式。导出的运行参数如下:

[root@localhost conf]# glances --export-elasticsearch

注意1:如果运行报错了,说缺少elasticsearch的库(一般来说都会报这个错,如果没装过的话),那么需要安装python的elasticsearch库。
注意2:如果提示No elasticsearch configuration found那是因为没有指定elasticsearch的配置,参考运行和结果

2. 安装python的elasticsearch库

如果环境上安装了pip,那么就很简单了,直接运行

pip install elasticsearch

如果没有安装pip,希望通过源码安装,也很简单,在这里可以找到pipy上对应的各个版本的elasticsearch库,下一个源码包,按照文档上的说明进行安装,具体命令简单如下:

[root@localhost home]# tar zxf elasticsearch-X.X.X.tar.gz [root@localhost home]# cd elasticsearch-X.X.X/[root@localhost elasticsearch-X.X.X]# python setup.py install

细心的同学通过文档或是上边的安装过程可以发现,elasticsearch需要依赖一个叫做urllib3的python库,上边安装过程会自动下载,如果在离线环境的话,最后会报错,提示缺少urllib3,还是在pypi上搜索到urllib3-X.X.X.tar.gz版本,按照类似上边的方法先装好这个库,然后上边的安装就可以顺利的完成了。

3. 运行和结果

指定1中配置好的类似的配置文件并运行如下命令:

[root@localhost conf]# glances -C XXX/glances.conf --export-elasticsearch

然后会看到

localhost (CentOS Linux 7.3.1611 64bit / Linux 3.10.0-514.21.1.el7.x86_64)                                                                               Uptime: 18:57:21CPU  [|                                                       1.8%]   CPU       1.8%  nice:     0.0%   MEM     25.2%  active:     544M   SWAP      0.5%   LOAD    8-coreMEM  [||||||||||||||                                         25.2%]   user:     0.3%  irq:      0.0%   total:  3.69G  inactive:   605M   total:   3.87G   1 min:    0.00SWAP [                                                        0.5%]   system:   0.8%  iowait:   0.0%   used:    953M  buffers:      4K   used:    19.0M   5 min:    0.03                                                                      idle:    98.9%  steal:    0.0%   free:   2.76G  cached:     748M   free:    3.86G   15 min:   0.21NETWORK     Rx/s   Tx/s   TASKS 289 (624 thr), 1 run, 288 slp, 0 oth sorted automatically by cpu_percent, flat view_67d799e6     0b     0bdocker0       0b     0b   Systemd          4    Services active: 168 loaded: 168 ens33        2Kb   46Kblo          248b   248b     CPU%  MEM%  VIRT   RES    PID USER        NI S     TIME+   R/s   W/s Command _h128506f     0b     0b    108.8   0.7  615M 25.7M  69204 root         0 R   0:01.42     0     0 /usr/bin/python /usr/bin/glances -C glances.conf --export-elasticsearch_h1c31995     0b     0b     43.8   0.4  936M 15.2M   2131 root         0 S  12:18.70     0     0 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-contain_h24a3400     0b     0b      0.0   0.0     0     0     75 root       -20 S   0:00.00     0     0 kthrotld_h620ce94     0b     0b      0.0   0.0     0     0   2663 root       -20 S   0:00.00     0     0 xfs-conv/dm-7_h71d8139     0b     0b      0.0   0.0     0     0     80 root       -20 S   0:00.00     0     0 ipv6_addrconf_he18dab5     0b     0b      0.0   0.0     0     0  56030 root         0 S   0:00.10     0     0 xfsaild/dm-12_hedaee18     0b     0b      0.0   0.0     0     0  68902 root         0 S   0:00.33     0     0 kworker/3:4_hf923e0b     0b     0b      0.0   0.0     0     0   2625 root       -20 S   0:00.00     0     0 kdmflush_hfc783b2     0b     0b      0.0   0.0     0     0  81805 root       -20 S   0:00.00     0     0 xfs-conv/dm-11                             0.0   0.0     0     0    461 root       -20 S   0:00.00     0     0 xfs-eofblocks/dDISK I/O     R/s    W/s      0.0   0.0     0     0   2615 root       -20 S   0:00.00     0     0 xfs-log/dm-6dm-0           0    11K      0.0   0.0     0     0    691 root       -20 S   0:00.00     0     0 xfs-cil/dm-2dm-1           0      0      0.0   0.0     0     0     51 root       -20 S   0:00.00     0     0 kintegrityddm-10          0      0      0.0   0.0     0     0   2614 root       -20 S   0:00.00     0     0 xfs-reclaim/dm-dm-11          0      0      0.0   0.0     0     0    688 root       -20 S   0:00.00     0     0 xfs-buf/dm-2dm-12          0      0      0.0   0.0     0     0     31 root         0 S   0:00.11     0     0 watchdog/5dm-2           0      0      0.0   0.0 33.6M  872K  65827 root         0 S   0:00.20     0     0 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 61209 -contdm-3           0      0      0.0   0.1  267M 2.83M   2685 root         0 S   0:00.40     0     0 docker-containerd-shim 2bd489bd62e8d04cb92d0ab82fa64e21c5b66cf13031d67bedm-4           0      0      0.0   0.0     0     0   2612 root       -20 S   0:00.00     0     0 xfs-conv/dm-6dm-5           0      0      0.0   0.0     0     0      8 root         0 S   0:00.00     0     0 rcu_bhdm-6           0      0      0.0   0.0     0     0   2509 root       -20 S   0:00.00     0     0 xfs-log/dm-5dm-7           0      0      0.0   0.0     0     0   3200 root         0 S   0:00.00     0     0 xfsaild/dm-9dm-8           0      0      0.0   0.0     0     0   2739 root       -20 S   0:00.00     0     0 xfs-cil/dm-8dm-9           0      0      0.0   0.0     0     0 102854 root       -20 S   0:00.18     0     0 kworker/0:1Hsda1           0      0      0.0   0.0     0     0  24239 root         0 S   0:00.50     0     0 kworker/u256:2sda2           0    11K      0.0   0.0     0     0    663 root       -20 S   0:00.00     0     0 xfs-log/sda1sr0            0      0      0.0   0.0     0     0    333 root       -20 S   0:00.00     0     0 mpt_poll_0                             0.0   0.0     0     0   2661 root       -20 S   0:00.00     0     0 xfs-buf/dm-7FILE SYS    Used  Total      0.0   0.0     0     0   2466 root       -20 S   0:00.00     0     0 xfs-reclaim/dm-/          39.0G  50.0G      0.0   0.0     0     0  65813 root       -20 S   0:00.00     0     0 xfs-eofblocks/d/boot       169M   497M      0.0   0.0     0     0  56029 root       -20 S   0:00.00     0     0 xfs-eofblocks/d/home       114M  45.5G      0.0   0.0     0     0   3199 root       -20 S   0:00.00     0     0 xfs-eofblocks/d_cemapper  39.0G  50.0G      0.0   0.0     0     0    612 root       -20 S   0:00.00     0     0 nfit_a6dd3b13   758M  9.99G      0.0   0.0     0     0   2613 root       -20 S   0:00.00     0     0 xfs-cil/dm-6_75a5f8b1  47.7M  9.99G2017-07-11 17:24:36       No warning or critical alert detected

这样的一大坨监控结果,那么就运行成功了,同时,通过访问elasticsearch的REST接口,可以看到导出的结果。浏览器中打开:http://192.168.0.102:9200/glances/cpu/system,这是elasticsearch监听的地址和端口,可以获得的内容类似如下:

{  "_index": "glances",  "_type": "cpu",  "_id": "system",  "_version": 20,  "found": true,  "_source": {    "timestamp": "2017-07-11T15:38:51.717794",    "value": "1.1"  }}

由于博主对elasticsearch不了解,相关的elk整合高端玩法就不提了。

4. 其他

对于elasticsearch的python库安装时候需要特别注意,不同的版本很可能运行不了。

elasticsearch的python库pypi上有如下一段:

# Elasticsearch 5.xelasticsearch>=5.0.0,<6.0.0# Elasticsearch 2.xelasticsearch>=2.0.0,<3.0.0# Elasticsearch 1.xelasticsearch>=1.0.0,<2.0.0# Elasticsearch 0.90.xelasticsearch<1.0.0

一定要对应着版本使用,否则会出现莫名奇妙的问题。

glances自定义的导出插件存放的位置在源码包中: XXX/glances-x.x/glances/exports/,其中可以查看elasticsearch等的插件内容。

原创粉丝点击