На няколко пъти сме говорили за мащабируемостта, която Linux дистрибуциите ни предлагат, като имаме хиляди приложения с отворен код, които могат да бъдат инсталирани в тях и по този начин значително разширяват капацитета за използване и развитие на услуги и роли.
Можем да намерим приложения за всички видове задачи на лично или корпоративно ниво и днес Solvetic ще анализира подробно една, която е поразителна поради потенциалната си динамика, когато става въпрос за събиране на множество видове показатели и предлагане на подробни отчети, които ще бъдат много полезни когато става въпрос за нашето управление и поддръжка.
Това приложение се нарича Prometheus и днес ще видим как да го инсталираме в Ubuntu 17.04 по практичен начин.
Какво е ПрометейPrometheus е мощна система за мониторинг с отворен код, която събира показателите на нашите услуги и ги съхранява в база данни с времеви редове. Той ни предлага многоизмерен модел на данни, гъвкав език за заявки и различни възможности за визуализация чрез инструменти като Grafana.
По подразбиране Prometheus експортира само показатели за себе си, например броя на получените заявки, консумацията на памет и др. Възможно е обаче да се разшири Prometheus чрез инсталиране на износители, които са незадължителни програми, които генерират допълнителни и подробни показатели за други аспекти, които трябва да бъдат анализирани.
Тези износители са фокусирани върху инфраструктура, бази данни и уеб сървъри в системи за съобщения, API и много други.
Някои от износителите, които Прометей ни предлага, са:
node_exporterТози износител създава показатели за инфраструктурата на оборудването, включително текущото използване на процесора, паметта и твърдия диск, както и I / O и мрежова статистика (като броя на байтовете, прочетени от диск или средното натоварване на диск). Сървър)
blackbox_exporterС този износител ще можем да генерираме показатели, получени от протоколи за сърфиране като HTTP и HTTPS, за да определим наличността на крайните точки, времето за отговор и др.
mysqld_exporterФункцията на този износител е да събира показатели, свързани с MySQL сървър, като например броя на изпълнените заявки, средното време за отговор на заявките и състоянието на репликация на клъстера.
rabbitmq_exporterТози износител генерира показатели за системата за съобщения RabbitMQ, включително подробности като броя на публикуваните съобщения, броя на съобщенията, готови за доставяне, и размера на всички съобщения в опашката.
nginx-vts-износителС този износител ние ще получим показатели на уеб сървър на Nginx, използвайки модула Nginx VTS, който включва броя на отворените връзки, броя на изпратените отговори (групирани по кодове на отговорите) и общия размер на заявките, изпратени или получени в байтове.
Характеристики на ПрометейНякои от най -забележителните характеристики на Прометей са:
- Измерване на данни, тъй като Prometheus съхранява всички данни като времеви редове, използвайки потоци от времеви стойности, които принадлежат към една и съща метрика и същия набор от маркирани измерения. Освен това, Prometheus може да генерира времеви редове, получени във времето в резултат на заявки.
- Динамични заявки: В тази връзка Prometheus предлага функционален език за изразяване, чрез който потребителят може да избира и обобщава данни от времеви редове в реално време. Резултатът от израз може да се покаже като графика, да се разглежда като таблични данни в браузъра за изрази на Prometheus или да се изпълнява от външни системи чрез HTTP API.
- Различни опции за показване, тъй като Prometheus включва Grafana, която се предлага от Grafana 2.5.0 (2015-10-28).
- Ефективно съхранение, тъй като Prometheus има сложна локална подсистема за съхранение. За индексите използва LevelDB. За групови примерни данни той има свой собствен персонализиран слой за съхранение, който организира примерните данни на парчета с постоянен размер (1024 байта полезен товар). Тези парчета се съхраняват на диск в един файл за времеви ред.
- Проста работа, тъй като Prometheus се конфигурира чрез параметри на командния ред и конфигурационен файл. Докато подканите от командния ред конфигурират неизменни системни параметри (като места за съхранение, количество данни за запазване на диск и в паметта), конфигурационният файл дефинира всичко, свързано с остъргването на задания и техните екземпляри, както и файловете с правила, заредени с приложението .
- Прецизно предупреждение, като имате възможност да създадете правила за предупреждение, които ни позволяват да дефинираме условия за предупреждение въз основа на езиковите стойности на израза на Prometheus и да изпращаме известия за сигнали за задействане до външна услуга в даден момент и по този начин да сме наясно с всяка промяна.
- Множество библиотеки, благодарение на факта, че Prometheus ни предлага серия от съвместими библиотеки като Java или Scala, Python, Rubí, Bash, C ++, Common Lisp, Elixir, Erlang, Haskell, Lua за Nginx, Lua за Tarantool,. NET / C #, Node.js, PHP и Rust.
- Множествена интеграция, тъй като имаме няколко библиотеки и сървъри, които помагат за експортиране на съществуващи показатели от системи на трети страни към показатели Prometheus, някои от тях са Aerospike износител, ClickHouse износител, износител консул, износител CouchDB, износител ElasticSearch, износител Memcached, MongoDB износител, MSSQL износител на сървър, износител на сървър MySQL, износител на OpenTSDB, износител на PgBouncer, износител на PostgreSQL или износител на ProxySQL.
Сега ще видим как да инсталираме Prometheus на Ubuntu 17.04.
1. Инсталиране на nginx
Етап 1
Първият момент, който трябва да имате предвид, е, че Nginx трябва да бъде инсталиран в Ubuntu, ако го нямаме, ще изпълним следната команда:
sudo apt инсталирате nginx
Стъпка 2
Там ще въведем буквата S, за да потвърдим изтеглянето и инсталирането на необходимите пакети. След като бъде инсталиран, ще е необходимо да конфигурирате настройките на защитната стена на Ubuntu, за да разрешите достъп до услугата Nginx, за това ще изпълним следния ред, за да изброим конфигурациите на приложенията на ufw:
sudo ufw списък с приложения
На ниво Nginx имаме следните опции
- Nginx Full: Този профил отваря както порт 80 (нормален, некриптиран уеб трафик), така и порт 443 (шифрован TLS / SSL трафик)
- Nginx HTTP: Този профил отваря само порт 80 (нормален, некриптиран уеб трафик)
- Nginx HTTPS: Този профил отваря само порт 443 (шифрован TLS / SSL трафик)
Стъпка 3
За този случай ще изпълним следния ред:
sudo ufw позволяват „Nginx HTTP“
Стъпка 4
Можем да видим, че състоянието на защитната стена е неактивно в някои случаи и трябва да е необходимо да го активирате, за това изпълняваме следното:
sudo ufw enable
След като конфигурираме тези параметри в защитната стена, продължаваме с инсталацията на Prometheus.
Вход Присъединете се!