【前情提要】 PromQL 入门了,小林能查出 CPU、内存、磁盘的使用率了。老周说:“现在你能查数据了,但数据是一堆数字,没人愿意看。你得把它变成图。”小林打开 Grafana 官网,准备装 Grafana。但他不知道,数据源配置、Dashboard 导入、Panel 查询,每一个都可能让他折腾。
一、老周的审美第二击
早上到工位,小林打开 Prometheus 的查询框,得意地敲了一串 PromQL:
1 - avg(rate(node_cpu_seconds_total{mode="idle"}[1m]))
结果:
{} 0.0234
“周哥,你看,CPU 使用率 2.34%。”
老周看了一眼,沉默了三秒。
“你知道这玩意儿像什么吗?”
“像什么?”
“像医院的心电图——全是数字,只有医生能看懂。”老周说,“你老板要看服务器状态,你给他看这个?”
小林想了想:“那给他看什么?”
“图。”老周说,“老板要的不是数字,是红绿黄。绿色正常,黄色警告,红色告警。一眼看懂。”
“那用什么画?”
“Grafana。”老周说,“Prometheus 负责存数据,Grafana 负责把数据变成图。你以后做监控,Prometheus 是后台,Grafana 是前台。老板只看前台。”
小林打开 Grafana 官网。
二、安装 Grafana
“Ubuntu 上装 Grafana,最标准的方式是加官方源。”老周说,“比二进制简单,而且自带 systemd 服务。”
“那跟 apt 装一样?”
“对,但要先加 Grafana 的官方源。”老周说,“你跟着敲。”
小林先装依赖:
sudo apt update
sudo apt install -y apt-transport-https software-properties-common wget
“这几个是啥?”
“apt-transport-https 让 apt 支持 HTTPS 源,software-properties-common 提供 add-apt-repository 命令,wget 下载工具。”老周说,“基础依赖,先装上。”
然后加 Grafana 的 GPG 密钥:
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
“GPG 密钥是啥?”
“软件源的签名验证。”老周说,“你从 Grafana 源下载软件,得验证这个源是不是官方的。GPG 密钥就是‘官方盖章’。没有它,apt 不敢装。”
然后加源:
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
“signed-by 指定密钥路径,stable main 表示稳定版主仓库。”老周说,“现在更新源,装 Grafana。”
sudo apt update
sudo apt install -y grafana
安装完成。
“启动。”
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo systemctl status grafana-server
输出:
● grafana-server.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled; vendor "=== 5. lsof ==="
ssh devops@192.168.1.x "sudo lsof -i :80"
echo "=== 6. nginx -t ==="
ssh devops@192.168.1.x "sudo nginx -t"
echo "=== 7. error.log ==="
ssh devops@192.168.1.x "sudo tail -30 /var/log/nginx/error.log"
echo "=== 8. curl ==="
ssh devops@192.168.1.x "curl -I http://localhost"
echo "=== 9. ufw ==="
ssh devops@192.168.1.x "sudo ufw status"
} > ~/troubleshoot_log.txt
cat ~/troubleshoot_log.txt
十、下集预告
全链路排错做完了,小林第一次体验了“从浏览器查到服务器”的完整流程。老周说:“你排查能力有了,但你还缺一样东西——预判。”小林问:“预判什么?”老周说:“预判下一次故障。”下一集,老周带小林做最后的综合复盘和结语。
下一集:《完结篇:从“会敲命令”到“能扛事”》