在Ubuntu上监控LNMP(Linux, Nginx, MySQL, PHP)服务的状态和性能,可以通过多种工具和方法来实现。以下是一些常用的监控方法:
systemd 服务状态检查你可以使用 systemctl 命令来检查各个服务的状态。
sudo systemctl status nginx
sudo systemctl status mysql
sudo systemctl status php-fpm
top 和 htoptop 命令可以实时显示系统进程和资源使用情况。htop 是 top 的增强版本,提供了更好的用户界面和更多功能。
top
htop
df 和 du检查磁盘空间使用情况。
df -h
du -sh /path/to/directory
free查看内存使用情况。
free -h
Prometheus 是一个开源的监控系统和时间序列数据库,Grafana 是一个开源的分析和监控平台。两者结合可以提供强大的监控和可视化功能。
安装 Prometheus 和 Grafana:
sudo apt update
sudo apt install prometheus grafana
配置 Prometheus:
编辑 Prometheus 配置文件 /etc/prometheus/prometheus.yml,添加节点 exporter 和其他监控目标的配置。
启动 Prometheus 和 Grafana:
sudo systemctl start prometheus
sudo systemctl start grafana-server
访问 Grafana:
打开浏览器,访问 http://your_server_ip:3000,配置数据源为 Prometheus,然后创建仪表盘进行监控。
Zabbix 是一个企业级的开源监控解决方案,支持多种监控方式和报警功能。
安装 Zabbix Server 和 Agent:
sudo apt update
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
配置数据库:
使用 MySQL 或 PostgreSQL 创建 Zabbix 数据库,并导入初始数据。
启动 Zabbix Server 和 Agent:
sudo systemctl start zabbix-server zabbix-agent
访问 Zabbix Web 界面:
打开浏览器,访问 http://your_server_ip/zabbix,按照向导完成配置。
Nginx 的访问日志和错误日志可以帮助你了解请求情况和错误信息。
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
MySQL 的慢查询日志和错误日志可以帮助你优化查询和排查问题。
tail -f /var/log/mysql/error.log
你还可以考虑使用第三方监控服务,如 Datadog、New Relic 等,这些服务通常提供更全面的监控和报警功能。
选择合适的监控工具和方法取决于你的具体需求和环境。对于小型项目,系统自带的工具和简单的第三方工具可能就足够了;而对于大型企业级应用,Prometheus + Grafana 或 Zabbix 这样的组合可能更为合适。