ubuntu

ubuntu lamp监控如何实现

小樊
44
2025-11-10 16:03:32
栏目: 智能运维

Ubuntu LAMP监控实现方法
Ubuntu LAMP(Linux+Apache+MySQL+PHP)环境的监控需覆盖系统资源、Web服务、数据库、应用性能等多个维度,以下是具体的监控方案及实现步骤:

一、基础监控工具(系统自带)

1. 图形界面:系统监控工具

通过Ubuntu自带的图形化工具快速查看系统资源使用情况。操作路径:点击左上角“活动”→ 搜索“系统监控”→ 打开即可查看CPU、内存、磁盘、网络的实时利用率及进程列表。

2. 命令行工具

二、第三方监控工具(推荐)

1. Prometheus + Grafana(可视化监控组合)

2. Nagios(传统监控报警工具)

Nagios用于监控主机、服务状态,支持报警(邮件、短信)。安装:下载Nagios Core(wget http://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz),解压后编译安装(./configure --with-httpd-conf=/etc/apache2/sites-enabledmake all && make install);配置:编辑/usr/local/nagios/etc/nagios.cfg开启监控,添加LAMP服务检查(如Apache存活、MySQL响应时间);启动:sudo systemctl start nagios3,访问http://服务器IP:8080查看状态。

3. Zabbix(企业级监控解决方案)

Zabbix支持分布式监控、自动发现,适合大规模环境。安装:添加Zabbix仓库(wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1ubuntu20.04_all.debdpkg -i zabbix-release_*.debapt update),安装服务器及前端(sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent);配置数据库:创建Zabbix数据库(mysql -u root -pCREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;;授权用户),导入初始数据(zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix);修改配置文件(/etc/zabbix/zabbix_server.conf设置数据库连接),启动服务(sudo systemctl start zabbix-server zabbix-agent),访问http://服务器IP:80登录(默认账号admin/zabbix)。

三、应用层监控

1. MySQL内置工具

2. PHP性能监控

四、自定义监控(脚本+报警)

使用psutil库编写Python脚本,监控系统资源并发送报警。示例代码:

import psutil
import smtplib
from email.mime.text import MIMEText

# 获取系统资源
cpu_usage = psutil.cpu_percent(interval=1)
mem_usage = psutil.virtual_memory().percent
disk_usage = psutil.disk_usage('/').percent

# 报警阈值
thresholds = {'cpu': 80, 'mem': 85, 'disk': 90}

# 发送邮件报警
def send_alert(resource, usage):
    msg = MIMEText(f"{resource} usage exceeded threshold: {usage}%")
    msg['Subject'] = f"Alert: {resource} High Usage"
    msg['From'] = 'your_email@example.com'
    msg['To'] = 'admin@example.com'
    with smtplib.SMTP('smtp.example.com', 587) as server:
        server.starttls()
        server.login('your_email@example.com', 'password')
        server.send_message(msg)

# 检查阈值
for resource, threshold in thresholds.items():
    if locals()[f"{resource}_usage"] > threshold:
        send_alert(resource, locals()[f"{resource}_usage"])

将脚本添加到cron定时任务(crontab -e添加*/5 * * * * /usr/bin/python3 /path/to/script.py),每5分钟执行一次。

以上方案可根据需求组合使用:基础监控用系统自带工具,可视化用Prometheus+Grafana,报警用Nagios/Zabbix,应用层用MySQL/PHP工具,自定义需求用脚本。

0
看了该问题的人还看了