linux代码实现进程监控,01、Linux进程监控-Moint(示例代码)

1.  监控工具Moint安装及其使用

1.1 Monit安装及其配置

方式1:yum安装

安装相关命令如下

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

rpm -ivh epel-release-latest-6.noarch.rpm

yum install -y monit

方式2:tar安装

安装相关命令如下

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

rpm -ivh epel-release-latest-6.noarch.rpm

tar -zxvf monit-5.25.1-linux-x64.tar.gz

配置项修改

注意:yum下载后需要修改文件:/etc/monit.conf

tar下载后需要修改文件:解压缩目录/conf/monitrc

需修改相关命令如下:

# 1.间隔30秒检查服务

set daemon  30              # check services at 30 seconds intervals

# 2.设置日志地址

set log /root/monit/logs

# 3.设置monit的启动端口PID

set pidfile /root/monit/var/monit.pid

# 4.设置monit状态地址

set statefile /root/monit/var/monit.state

# 5.设置web监控

set httpd port 2812 and

use address localhost  # only accept connection from localhost or ip

allow 0.0.0.0/0.0.0.0   # allow all ip conect to the server

allow admin:monit      # require user ‘admin‘ with password ‘monit‘

# 6. 加入需要监控的内容目录

include /root/monit/etc/*

服务监控配置文件格式

配置好监控文件放在“# 6.加入需要监控的内容目录”中

详细配置规则如下:

如果指定的 path 不存在, 而且配置块里包含 start 方法, 会调用这个 start 方法

如果 path 指定的文件类型不对, Monit 不能监控这个项目

相关语句如下:

Process

CHECK PROCESS | MATCHING >

pid-file 的绝对路径. 不存在 pid-file 文件或者 pid-file 文件没有对应的正在运行的程序, Monit 会执行 start 方法

进程名称的正则表达来监控进程, 可以通过命令行测试正则是否写对了: monit procmatch "regex-pattern"

File

CHECK FILE PATH

file 的绝对路径.

Fifo

CHECK FIFO PATH

fifo 的绝对路径.

Filesystem

CHECK FILESYSTEM PATH

设备/磁盘, 挂载点的路径 或 NFS/CIFS/FUSE 链接字符串. 如果文件系统不可用, Monit 会执行 start 方法

Directory

CHECK DIRECTORY PATH

目录问价的绝对路径

Remote host

CHECK HOST ADDRESS

可以是域名或者 IP 地址. eg: "tildeslash.com" or "64.87.72.95".

System

CHECK SYSTEM

通常来说是本机名称(可以用 $HOST), 也可以是其他名称. 用于邮件报警或者 M/Monit 的初始化名称

这类配置可以监控系统资源(CPU, memory, load average...)

Program

CHECK PROGRAM PATH [TIMEOUT SECONDS]

可执行程序或脚本的绝对路径. 允许检查程序退出状态.如果程序没能在 秒内执行完成, Monit 会终结这个程序, 默认是 300s

程序的输出会被记录, 用于用户界面或者报警, 默认 512 bytes(可以通过 set limits 修改)

Network

CHECK NETWORK

| INTERFACE >

# 是被监控的 IPv4/IPv6 网卡地址. 用 eth0 也是可以的

举例:注意说明

# 需要提供进程pid文件信息

check process nginx with pidfile /var/run/nginx.pid

# 进程启动命令行,注:必须是命令全路径

start program = "/etc/init.d/nginx start"

# 进程关闭命令行

stop program  = "/etc/init.d/nginx stop"

# nginx进程状态测试,监测到nginx连不上了,则自动重启

if failed host www.example.com port

80 protocol http then restart

# 多次重启失败将不再尝试重启,这种就是系统出现严重错误的情况

if 3 restarts within 5 cycles then timeout

# 可选,设置分组信息

group server

1.2 Monit启停

方式1:yum后启停

开启服务:./monit

停止服务:./stop.sh

stop.sh 脚本

kill -9 `ps -ef | grep

monit | grep -v "grep" | awk ‘{print $2}‘ `

方式2:tar解压缩后启停

开启服务:./start.sh

start.sh 脚本

pwd=$(cd `dirname $0`;

pwd)

$pwd/bin/monit -c

$pwd/conf/monitrc

停止服务:./stop.sh

stop.sh 脚本

kill -9 `ps -ef | grep

monit | grep -v "grep" | awk ‘{print $2}‘ `

2. 监控工具MMoint安装及其使用(30天后收费)

MMoint可以监控已经部署的Moint的设备运行状态

如所有状态

20200608142419948559.png

相关图表分析

20200608142420175084.png

部署:

Monit部署

修改conf文件,所在目录参考“2.1 Monit安装及其配置”章节

需要修改信息如下:

# 设置MMonit的监控

set mmonit http://monit:monit@ip(MMonit的ip ):port/collector

MMoint安装及其使用

wget https://mmonit.com/dist/mmonit-3.7.3-linux-x64.tar.gz

tar xf mmonit-3.7.3-linux-x64.tar.gz

cd mmonit-3.7.3/conf

vi server.xml

  //修改监听端口

cd mmonit-3.7.3/bin

./ mmonit //启动

MMoint 用户和密码

登录Web: http:// ip(MMonit的ip ):port

20200608142420256125.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值