使用Flume轻松监控Linux进程的方法 (flume 监控linux进程)

随着互联网的发展,应用程序的数量和负载也越来越大。因此,系统管理员需要能够监控和管理Linux进程来确保系统的运行顺畅。Flume是一种流式数据收集和传输系统,可以轻松地监控和管理Linux进程。本文将介绍如何使用Flume来监控Linux进程,以提高系统性能和稳定性。

一、Flume介绍

Flume是一种流式数据收集和传输系统,可用于从各种源收集,聚合和传输大量数据。它提供了一种可扩展的,高度可用的机制来将数据从源传输到接收方。Flume主要有三个组件:Source,Channel,Sink。Source收集数据,并将其存储在Channel中。当Channel中的数据到达一定量或达到一定时间间隔时,才会将其传到Sink。

二、Flume监控Linux进程的方法

1.安装Flume

需要在Linux上安装Flume。可以使用以下命令在CentOS上安装Flume:

“`

sudo yum install flume-ng

“`

2.创建配置文件

接下来,需要创建一个配置文件来指定要监控的进程及其相关参数。在Flume中,配置文件通常使用Apache Avro格式编写。以下是一个简单的示例配置文件:

“`

#定义 Source

agent.sources = procmon

agent.sources.procmon.type = org.apache.flume.source.ExecSource

agent.sources.procmon.command = tl -F /var/log/syslog

#定义 Channel

agent.channels = memoryChannel

agent.channels.memoryChannel.type = memory

#定义 Sink

agent.sinks = loggerSink

agent.sinks.loggerSink.type = logger

#绑定 Source、Channel、Sink

agent.sources.procmon.channels = memoryChannel

agent.sinks.loggerSink.channel = memoryChannel

“`

在此配置文件中,定义了一个名为“procmon”的Source,它将监视tl命令读取的/var/log/syslog文件中的日志数据。此处Channel使用了默认的memory通道,Sink将日志消息记录到系统日志中。

3.启动Flume

一旦创建了配置文件,就可以使用以下命令启动Flume:

“`

sudo /usr/bin/flume-ng agent -c /etc/flume-ng/conf -f /path/to/flume.conf -Dflume.root.logger=DEBUG,console

“`

在启动过程中,Flume将加载配置文件,并将进程监视在日志中记录下。

4.检查日志

Flume将读取日志文件并将其记录在系统日志中(默认情况下是/var/log/messages)。要查看这些日志消息,请使用以下命令:

“`

sudo cat /var/log/messages | grep flume

“`

以上命令将输出Flume生成的所有日志消息。

5.添加监控进程

可以通过在配置文件中添加新的Source来监视其他进程。例如,要监控Apache Web服务器进程,请使用以下配置:

“`

#定义 Source

agent.sources = httpd_procmon

agent.sources.httpd_procmon.type = org.apache.flume.source.ExecSource

agent.sources.httpd_procmon.command = ps aux | grep httpd

#定义 Channel

agent.channels = memoryChannel

agent.channels.memoryChannel.type = memory

#定义 Sink

agent.sinks = loggerSink

agent.sinks.loggerSink.type = logger

#绑定 Source、Channel、Sink

agent.sources.httpd_procmon.channels = memoryChannel

agent.sinks.loggerSink.channel = memoryChannel

“`

以上配置将监视名为“httpd_procmon”的进程,并将输出发送到Flume中。需要注意的是,此处的命令将返回ps aux | grep httpd进程信息,表示读取当前正在运行的Apache进程。

6.配置自动化

可以使用Flume的API来自动化配置和监视进程。Flume提供了一个RESTful API,可用于添加,删除和更改监视器。这使得系统管理员能够轻松地管理各种监视器,并快速响应任何问题。

7.监控性能

Flume可以轻松地监视Linux进程并记录其性能指标。例如,对于Apache进程,可以监视响应时间,请求次数和错误率等性能指标。这使得管理员能够及时检测到任何性能问题,并采取相应的措施加以解决。

结论

Flume是一个强大的流式数据收集和传输系统,可以轻松地监控Linux进程。通过使用Flume,系统管理员可以快速检测到任何进程问题,并采取适当的措施。虽然Flume的学习曲线可能较陡峭,但是掌握Flume的技能可以使管理员更加轻松地管理系统。

相关问题拓展阅读:

一名优秀的Linux运维人员该掌握哪些工具

运维人员必须熟悉的运维工具汇总

某日受邀请参加了一竖液尘个BBS活动,于是有了下面的内容。

下面是在linux网站运维方向老男孩最近几年常用的免费的开源软件,临时即兴想起来的,在这里和大家分享,希望给初学者指引一点路。

linux的世界真的很精彩,还没入门的朋友赶紧进来吧!

操作系统:Centos※,Ubuntu,Redhat※,suse,Freebsd

网站服务:nginx※,apache※,lighttpd,php※,tomcat※,resin※

数据 库:MySQL※,Mysql-proxy,MariaDB,PostgreSQL

DB中间件:MyCat,amoeba,MySQL-proxy

代理相关:lvs,keepalived,haproxy,nginx,apache,heartbeat(此行都是※)

网站缓存:squid※,nginx※,varnish

NOSQL库:memcached※,memcachedb,TokyoTyrant※,MongoDB※,Cassandra※,redis※,CouchDB

存储相关:Nfs※,Moosefs(mfs)※,Hadoop※,glusterfs※,lustre,FastDFS

版本管理:svn※,git※

监控报警:nagios※,cacti※,zabbix※,munin,hyperic,mrtg,graphite

域名解析:bind※,powerdns,dnasq※

同步软件:rsync※,inotify※,sersync※,drbd※,csync2,union,lsyncd,scp※

批量管理:ssh+rsync+sersync※,Saltstack※,expect※,puppet※,ansible,cfengine

虚拟 化:kvm※,xen※

云计 算:openstack※,docker,cloudstack

内网软件:iptables※,zebra※,iftraf,ntop※,tc※,iftop

邮件软件:qmail,posfix※,sendmail

远程拨号:openvpn※,pptp,openswan※,ipip※

统一认证:openldap(可结合微软活动目录)※

队列工具:ActiveMQ,RabbitMQ※,Metaq,MemcacheQ,Zeromq

打包发布:mvn※,ants※,jenkins※,svn

测试软件:ab,okeping,siege,JMeter,Webbench,LoadRunner,http_load(都是※)

日志相关:syslog,rsyslog,Awstats,flume logstash scribe kafka,storm,ELK(Elasticsearch+Logstash+Kibana)DB代理:mysql-proxy,amoeba(更多还是程序实现读写分离)

搜索软件:Sphinx,Xapian(大公司会自己开发类似百度的小规模内部搜索引擎)

提示余禅:

1)以上所有软件都是老男孩用过或测试过的。

2)带※的为老男孩最近几年用的比较多,可信任使用的。也是近年来linux运维的大众。

3)埋耐有了功能分类和软件名,大家有需求,可以按功能找软件直接G就知道了。

4)学习要有舍有得,什么都抓必然短时间都不会精,希望大家能抓重点,抓精髓,大众软件(带※)先熟练了,这是基础加提高,在研究小众软件(不带※),这是高手之路,最后在研究偏门的,世外高手之路,当然前提是先掌握前面的大众和小众。

5)当然还有一些没有大众开源的有一些也很棒,如审计堡垒机程序。

1、Nethogs:查询进程占用带宽情况

Nethogs是一个终端下的网络流量监控工具,它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况,它支持IPv4和IPV6协议、支持本地网卡及ppp链接。

2、IOZone:硬盘读取性能测试

IOZone是一款Linux文件系统性能测试工具,可以测试不同的操作系统文件系统的读写性能。

3、IOTop:实时监控磁盘IO

IOTop命令是一个用来监控磁盘IO使用状况的TOP类工具。IOTop具有与top类似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,而使用iotop命令可以很方便的查看。

4、IPtraf:网络流量监控

IPtraf是一个网络监控工具,功能比nload更强大,可以监控所有的流量,ip流量,按协议分的流量,还可以设置过滤器等。

5、IFTop:网络流量监控

IFTop是类似于Linux下面top的实时流量监控工具。iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。

6、HTop:进程实时监控

HTop是一个Linux下的交互式的进程浏览器,可以用来替换Linux下的TOP命令。

7、NMON:系统资源监控

Nigel’s Monitor简称nmon,是由Nigel

Griffiths开发的监控Linux系统性能的常用工具。通过nmon可以获取的信息有:处理器利用率、内存利用率、运行队列信息、磁盘I/O统计和网络I/O统计、进程指标等。

8、MultiTail:监控多个日志

MultiTail是个用来实现同时监控多个文档、类似tail命令功能的软件。他和tail的区别就是他会在控制台中打开多个窗口,这样使同时监控多个日志文档成为可能。

9、Tmux:连接会话终端持续化

Tmux是一个优秀的终端复用软件类似樱胡睁GNU Screen,比Screen更加方面、灵活和高效。为了确保连接SSH时掉线不影响任务运行。

10、NMap:安全扫描脊岁工具

Nmap,也就是Network

Mapper,最早是Linux下的网络扫描和嗅探工具包。nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服做告务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

哪位大侠有linux下监控多个进程是否死掉。如果死掉就kill掉重启,没有该进程的话也重启的shell脚本。

我以监控一个进程:“vmstat”命令的进程为例子。

#!/bin/bash

PROSS=`ps -el | grep vmstat | awk ‘{ print $14 }’`

STAT=`ps -el | grep vmstat | awk ‘{ print $2 }’`

PID=`ps -el | grep vmstat | awk ‘{ print $4 }’`

if

then

if

then

echo “脊信掘$PROSS has dead”

echo “Now, killing it”

kill -9 $PID

echo “Now, restart”

vmstat 2 5 >樱核> /tmp/vmstat.txt &

else

echo “$PROSS is running healthy”

fi

else

echo “The programm has dropped”

echo “Now, restart”

vmstat 2 5 >>坦灶 /tmp/vmstat.txt &

fi

你这个死掉如何来判断的?

关于flume 监控linux进程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 使用Flume轻松监控Linux进程的方法 (flume 监控linux进程)