ресурс процессов
Используйте ресурс аудита processes Chef InSpec, чтобы проверить свойства выполняемых на системе программ.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v1.0.0 InSpec.
Синтаксис
Блок ресурса processes объявляет имя процесса, подлежащего проверке, и затем объявляет одну (или несколько) пару «свойство/значение»:
describe processes('process_name') do
its('property_name') { should eq ['property_value'] }
end
где
-
processes('process_name')указывает имя процесса для проверки. Если это строка, она будет преобразована в регулярное выражение. Для большей специфичности передайте регулярное выражение напрямую. Если поле оставлено пустым, будут возвращены все процессы. -
property_nameможно использовать для проверки свойств пользователя (its('users')) и состояния (its('states'))
Примеры
В следующих примерах показано, как использовать этот ресурс аудита Chef InSpec.
Проверка длины списка для процесса mysqld
describe processes('mysqld') do
its('list.length') { should eq 1 }
end
Проверка, принадлежит ли процесс конкретному пользователю
describe processes('init') do
its('users') { should eq ['root'] }
end
describe processes('winlogon') do
its('users') { should cmp "NT AUTHORITY\\SYSTEM" }
end
Проверка наличия процесса высокой приоритетности
describe processes('linux_process') do
its('states') { should eq ['R<'] }
end
describe processes('windows_process') do
its('labels') { should cmp "High" }
end
Проверка наличия процесса в системе
describe processes('some_process') do
it { should exist }
end
Поиск процесса с использованием определённого регулярного выражения
Если имя процесса слишком общее для однозначной идентификации по строке, можно использовать регулярное выражение. Возможно потребуется включить символы пробела.
describe processes(Regexp.new("/usr/local/bin/swap -d")) do
its('list.length') { should eq 1 }
end
Примечания по аудиту систем Windows
Иногда с системными свойствами нет прямого сравнения между разными операционными системами. Большинство property_name соответствуют различным ОС.
Однако существуют исключения, например, в Linux states предлагает несколько свойств. Windows не имеет прямого сравнения, которое является одним свойством, поэтому вместо states сопоставляется свойство Responding, Это флаг булевого значения true/false, помогающий определить, завис ли процесс.
Ниже приведена таблица сопоставления, чтобы помочь вам понять, какому свойству unix-поля соответствует свойство Windows Get-Process.
| unix поле ps | свойство PowerShell Windows |
|---|---|
| labels | PriorityClass |
| pids | Id |
| cpus | CPU |
| mem | PM |
| vsz | VirtualMemorySize |
| rss | NPM |
| tty | SessionId |
| states | Responding |
| start | StartTime |
| time | TotalProcessorTime |
| users | UserName |
| commands | Path |
Сопоставители
Полный список доступных сопоставителей см. на нашей странице сопоставителей.
property_name
Сопоставитель property_name проверяет указанное свойство на соответствие заданному значению:
its('property_name') { should eq ['property_value'] }
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/processes/