Привет всем,
Я сделал платформу, чтобы показать процессор, оперативную память и данные подкачки. Эти данные вводятся в базу данных для анализа причин.
На данный момент это написано в скрипте bash с использованием файловой системы proc.
Платформа написана на PHP с использованием фреймворка Symfony.
Должен ли я рассмотреть возможность переноса скриптов bash в мой проект PHP и использовать функции system()
, exec()
, shellExec()
Или я останусь с bash-скриптами?
Я бы знал это с точки зрения безопасности. С источниками для получения дополнительной информации.
На данный момент скрипты bash публикуют данные в URL (который взят из проекта symfony)
Серверы работают под управлением Debian.
Ваше решение является хорошей отправной точкой.
system()
, exec()
и другие должныВы можете соединить ваши bash-скрипты, которые генерируют данные, и ваше php-приложение различными способами:
bash script --> api calls --> php application
, В этом случае вам нужно сохранять данные в приложении синхронно с их генерацией (иногда вы хотите сгладить пики)bash script --> write log files
&& php application --> read log files
, В этом случае ваши bash-скрипты не должны знать о вашем php-приложении. Вам нужно только согласовать формат файлов журнала. В этом случае вы можете обрабатывать ваши данные в приложении асинхронно. Я действительно советую вам использовать Nagios или же Zabbix
Это мощные инструменты для мониторинга, также есть много бесплатных плагинов, готовых к использованию ….
Теперь, чтобы ответить на ваш вопрос:
надеюсь, это поможет
С точки зрения безопасности оба подхода можно сделать безопасными и небезопасными. Я бы выбрал ваш язык по другим причинам (например, простота написания того, что вы хотите сделать, переносимость и т. Д.), А затем сосредоточился на том, чтобы сделать скрипт безопасным на этом языке.
Преимущество Bash в простоте, если все, что вы делаете, — это выполнение команд. Но с PHP будет легче работать, если вам нужна более продвинутая логика и легче работать с базами данных.
Обратите внимание, что упомянутые вами php-вызовы содержат проблемы с безопасностью, и вы должны опасаться их использования и, как правило, стараться избегать их.
Вы можете посмотреть на influxdata стек, который звучит так, как будто он уже делает большую часть того, что вы хотите.