Комментарии 13
echo "["|tr -d '\r\n'
echo -n "["
Где-то после таких статей начинает плакать "безопасник"...
/etc/passwd имеет обычную разметку с разделителем полей, можно его превратить в json с помощью препроцессинга в забиксе
И не нужно колхозить ничего на баш.
Я буду очень благодарен, если вы покажите пример.
Потом обрабатываете в препроцессинге через JavaScript
output = [];
users = value.split("\n")
for (index in users) {
user = users[index].split(':',1).toString()
output.push ( {"{#USER}": user } )
}
return JSON.stringify(output)
как-то так
Ну или еще вариант: распарсить в csv и конвертнуть в json уже в заббиксе
Там достаточно 1 препроцессинга (csv to json) и все, дальше все делается через LLD.
Можете скачать мой шаблон, но он под Zabbix 5.4. Под 5.0 или даже 4.4 можно легко переписать.
В любой современной системе с systemd
на борту, например соберём только юзернеймы всех настоящих пользователей сразу в json...
userdbctl -j|jq '.|select(.uid >=1000)|select(.uid < 65534)|{"#USER": .userName}'
Ну и так далее. Глючик -j
выводит базу пользователей сразу в json
, а дальше, при помощи jq
можно вертеть информацию как вздумается.
userdbctl: command not found
Ubuntu 18.04.6 LTS
видать не современная?
так что уж лучше /etc/passwd
В 237.* ветке вроде ещё не было этой утилиты. Но вот в 245.*, которая в убунте 20.04 LTS, уже должно быть... Только не в убунте. По неведомым, видимо религиозным, причинам, systemd
в убунте собирается без этого бинарника. Чудеса! Тогда, да. Только страдать башизмами.
Если касательно этой задачи, то не нужно страдать башизмами и даже что-то писать на javascript, в Zabbix все делается тыканьем мышки и не более. Выше я выложил готовый шаблон для 5.4
Даем почву для авто обнаружения пользователей Linux для Zabbix