Следующая версия | Предыдущая версия |
work:zabbix:zabbix-top-proc-win [2024/07/09 16:45] – создано rolland | work:zabbix:zabbix-top-proc-win [2024/07/09 17:53] (текущий) – rolland |
---|
===== Вывод топ процессов сервера на Zabbix ===== | ===== Вывод топ процессов сервера на Zabbix ===== |
| |
Потребовалось тут как-то выяснить, что за процесс нагружет ночью сервер. Причем нагружает так, что сервер вешается. Был задан вопрос, может ли такое zabbix. Под Linux решения встречал, под Windows что-то не нашел. Пришлось придумывать самому. | Потребовалось тут как-то выяснить, что за процесс нагружает ночью сервер с Windows Server на борту. Причем нагружает так, что сервер вешается. Был задан вопрос, может ли zabbix отследить виновного. Под Linux решения встречал, под Windows что-то не нашел. Пришлось придумывать самому. |
| |
Для начала создадим узел zabbix и элемент данных в нем. | Для начала создадим узел zabbix и элемент данных в нем. |
В клиенте в файле настройки zabbix агента пропишем путь до сервера и команду, которую требуется выполнить. **ServerActive** - адрес сервера Zabbix. **UserParameter** - имя пользовательского параметра и команда, которую требуется выполнить. | В клиенте в файле настройки zabbix агента пропишем путь до сервера и команду, которую требуется выполнить. **ServerActive** - адрес сервера Zabbix. **UserParameter** - имя пользовательского параметра и команда, которую требуется выполнить. |
| |
В нашем случае UserParameter имеет вид: | В нашем случае **UserParameter имеет** вид: |
<code> | <code> |
UserParameter=proc.list,powershell -Command "(Get-Counter '\Процесс(*)\% загруженности процессора').CounterSamples | Sort-Object -Property cookedvalue -Descending| Select-Object -First 10| Where-Object InstanceName -NotMatch '^(?:idle|_total|system)$' | ft InstanceName,@{L='CPU';E={($_.Cookedvalue/100/$env:NUMBER_OF_PROCESSORS).toString('P')}}" | UserParameter=proc.list,powershell -Command "(Get-Counter '\Процесс(*)\% загруженности процессора').CounterSamples | Sort-Object -Property cookedvalue -Descending| Select-Object -First 10| Where-Object InstanceName -NotMatch '^(?:idle|_total|system)$' | ft InstanceName,@{L='CPU';E={($_.Cookedvalue/100/$env:NUMBER_OF_PROCESSORS).toString('P')}}" |