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
wget http://mmonit.com/monit/dist/ monit-5.25.1-linux-x64.tar.gz
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 <unique name> <PIDFILE <path> | MATCHING <regex>>
<path> pid-file 的绝对路径. 不存在 pid-file 文件或者 pid-file 文件没有对应的正在运行的程序, Monit 会执行 start 方法
<regex> 进程名称的正则表达来监控进程, 可以通过命令行测试正则是否写对了: monit procmatch "regex-pattern"
- File
CHECK FILE <unique name> PATH <path>
<path> file 的绝对路径.
- Fifo
CHECK FIFO <unique name> PATH <path>
<path> fifo 的绝对路径.
- Filesystem
CHECK FILESYSTEM <unique name> PATH <path>
<path> 设备/磁盘, 挂载点的路径 或 NFS/CIFS/FUSE 链接字符串. 如果文件系统不可用, Monit 会执行 start 方法
- Directory
CHECK DIRECTORY <unique name> PATH <path>
<path> 目录问价的绝对路径
- Remote host
CHECK HOST <unique name> ADDRESS <host>
<host> 可以是域名或者 IP 地址. eg: "tildeslash.com" or "64.87.72.95".
- System
CHECK SYSTEM <unique name>
<unique name> 通常来说是本机名称(可以用 $HOST), 也可以是其他名称. 用于邮件报警或者 M/Monit 的初始化名称
这类配置可以监控系统资源(CPU, memory, load average...)
- Program
CHECK PROGRAM <unique name> PATH <executable file> [TIMEOUT <number> SECONDS]
<path> 可执行程序或脚本的绝对路径. 允许检查程序退出状态.如果程序没能在 <number> 秒内执行完成, Monit 会终结这个程序, 默认是 300s
程序的输出会被记录, 用于用户界面或者报警, 默认 512 bytes(可以通过 set limits 修改)
- Network
CHECK NETWORK <unique name> <ADDRESS <ipaddress> | INTERFACE <name>>
# <ipaddress> 是被监控的 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 port80 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 | grepmonit | 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 | grepmonit | grep -v "grep" | awk ‘{print $2}‘ `
2. 监控工具MMoint安装及其使用(30天后收费)
MMoint可以监控已经部署的Moint的设备运行状态
如所有状态
相关图表分析
部署:
Monit部署
修改conf文件,所在目录参考“2.1 Monit安装及其配置”章节
需要修改信息如下:
# 设置MMonit的监控
set mmonit http://monit:(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
<Connector address="*" port="8181" processors="10" /> //修改监听端口
cd mmonit-3.7.3/bin
./ mmonit //启动
MMoint 用户和密码
登录Web: http:// ip(MMonit的ip ):port