| Процесс | CPU % | RAM % |
|---|---|---|
| falco | 7.4 | 5.6 |
| mysqld | 4.4 | 7.3 |
| crowdsec | 2.6 | 15.6 |
| apache2 | 1.4 | 4.5 |
| fail2ban-server | 0.7 | 17.1 |
| Процесс | CPU % | RAM % |
|---|---|---|
| apache2 | 18.0 | 9.3 |
| mysqld | 12.8 | 14.0 |
| clamd | 8.9 | 14.3 |
| falco | 6.2 | 11.0 |
| suricata | 2.8 | 18.4 |
Команда top отвечает на вопрос о текущей секунде, а спрашивают обычно о прошлой ночи: почему в три часа всё встало и вернулось само. К этому моменту смотреть уже нечего — данные нигде не сохранились. Разворачивать ради одного VPS связку Prometheus и Grafana тоже сомнительно: наблюдающий стек выходит тяжелее наблюдаемого сервера.
Коллектор раз в пять минут дописывает строку в базу, а страница рисует по ней последние сутки. Load average, загрузка CPU и отдельно I/O wait, RAM и swap, приём и передача по сети, чтение и запись диска, число установленных TCP-соединений, процессы, заполнение раздела, inodes и файловые дескрипторы в процентах от лимита, соединения MySQL. Всё на одной странице и в одном масштабе времени, так что совпадения видно глазами.
Читать эти графики стоит парами. Высокий I/O wait при спокойном CPU означает, что сервер ждёт диск, и добавлять процессорных ядер бессмысленно. Swap, который однажды вырос и не вернулся к нулю, говорит, что пик памяти уже случился, даже если сейчас всё выглядит спокойно. Дескрипторы, подошедшие к сотне процентов, — это будущая ошибка too many open files за несколько часов до того, как она произойдёт. А inodes на большинстве серверов кончаются заметно раньше свободного места.