PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да наблюдавате PostgreSQL, работещ вътре в Docker контейнер:Част втора

Това е втората част от многосерийния Как да наблюдавате PostgreSQL, работещ вътре в Docker контейнер. В част 1 представих преглед на докер контейнерите, политиките и работата в мрежа. В тази част ще продължим с конфигурацията на docker и накрая ще активираме наблюдение чрез ClusterControl.

PostgreSQL е стара школа база данни с отворен код, чиято популярност все още нараства, широко използвана и приета в повечето облачни среди днес.

Когато се използва вътре в контейнер, той може лесно да се конфигурира и управлява от Docker, като се използват различни тагове за създаването и се изпраща до всеки компютър в света с инсталиран Docker, но това е всичко за Docker.

Сега ще обсъдим PostgreSQL и за начало нека изброим техните шест основни процеса, изпълняващи се едновременно в контейнер от потребителя на ОС, наречен „postgres“, който е различен от потребителя на „postgres“ в базата данни, този е супер потребител.

Не забравяйте, че синята стрелка в изображенията показва команди, въведени в контейнер.

$ ps auxww
Основни процеси на PostgreSQL

Първият процес в списъка е PostgreSQL сървърът, а останалите се стартират от него. Техните задължения са основно да анализират какво се случва в сървъра, като подпроцеси, извършващи въвеждане на статистически данни, писане на регистрационни файлове и подобни неща.

Ще използваме ClusterControl, за да наблюдаваме активността вътре в този контейнер с PostgreSQL сървъра и за да направим това, ще трябва да имаме инсталиран SSH, за да ги свържем безопасно.

Secure Shell Server (SSH)

За събиране на информация за контейнера PostgreSQL няма нищо по-добро от SSH. Той дава отдалечен достъп за един IP адрес до друг и това е всичко, от което ClusterControl се нуждае, за да изпълни задачата.

SSH трябва да бъде изтеглен от хранилището и за да го направим, трябва да сме вътре в контейнера.

$ docker container exec -it postgres-2 bash
$ apt-get update && apt-get install -y openssh-server openssh-client
Инсталиране на SSH в контейнера "postgres-2"

След инсталирането ще редактираме конфигурацията, ще стартираме услугата, ще настроим парола за root потребителя и накрая ще напуснем контейнера:

$ sed -i 's|^PermitRootLogin.*|PermitRootLogin yes|g' /etc/ssh/sshd_config
$ sed -i 's|^#PermitRootLogin.*|PermitRootLogin yes|g' /etc/ssh/sshd_config
$ service ssh start
$ passwd
$ exit
Конфигуриране на SSH в контейнера "postgres-2", част 1/2

Мониторинг с ClusterControl

ClusterControl има система за задълбочена интеграция, която може да наблюдава всички процеси на PostgreSQL в реално време, като също така идва с библиотека от съветници, за да запази данните защитени, да проследява ефективността на базата данни и, разбира се, да предоставя сигнали, когато се случат аномалии.

С конфигуриран SSH, ClusterControl може да наблюдава хардуерната активност на ОС и да дава информация както за базата данни, така и за външния слой.

Ще стартираме, като стартираме нов контейнер и ще го публикуваме на порта 5000 на нашия компютър, след което ще имаме достъп до системата през нашия браузър.

$ docker container run --name s9s-ccontrol --network bridge-docker -p 5000:80 -d severalnines/clustercontrol
Изпълнение на контейнера "s9s-ccontrol" за Severalnines ClusterControl

След като бъде разгърната, остава само SSH конфигурацията и имаме добри новини, тъй като сме в потребителски дефинирана мостова мрежа, можем да използваме DNS!

$ docker container exec -it s9s-ccontrol bash
$ ssh-copy-id postgres-2
Конфигуриране на SSH в контейнера "postgres-2", част 2/2

След като въведете „yes“ и посочите паролата, предоставена по-рано, е възможно да получите достъп до контейнера „postgres-2“ като root чрез SSH:

$ ssh postgres-2
Успешна проверка на SSH връзката

Този нов цвят, светло син, ще се използва по-долу за представяне на дейността в базата данни. В примера по-горе имаме достъп до контейнера „postgres-2“ от „s9s-ccontrol“, но той все още е root потребител. Запазете вниманието и критиките си с мен.

Така че следващата стъпка е да отидете в браузъра и да получите достъп до http://localhost:5000/clustercontrol/users/welcome/ и регистрирайте акаунт или ако вече имате такъв, посетете http://localhost:5000/clustercontrol/users/login .

След това „Импортиране на съществуващ сървър/клъстер“ и въведете по-ранната конфигурация. Разделът „PostgreSQL &TimescaleDB“ трябва да бъде избран. В полето “SSH User” за тази демонстрация просто въведете “root”. След това накрая въведете „Име на клъстера“ и може да бъде всяко име, което искате, е просто кой ще съдържа колкото се може повече необходими PostgreSQL контейнери, които искате да импортирате и наблюдавате.

Импортиране на базата данни "postgres-2", част 1/2

Сега е време да въведете информацията за PostgreSQL контейнера, потребителя „postgres“, парола „5af45Q4ae3Xa3Ff4“ и желаните контейнери. Изключително важно е да запомните, че услугата SSH трябва да е активна вътре в контейнера PostgreSQL.

Импортиране на контейнера "postgres-2", част 2/2

След като натиснете бутона „Импортиране“, ClusterControl ще започне да управлява PostgreSQL контейнера „postgres-2“ вътре в клъстера, наречен „PostgreSQL“, и ще информира кога процесът на импортиране приключи.

Регистрирайте се за процеса на импортиране на контейнера "postgres-2"

След като приключите, системата ще бъде показана под раздела Клъстери, нашият най-скоро създаден клъстер и различни опции, разделени в секции

Първата ни стъпка за визуализация ще бъде в опцията Преглед.

PostgreSQL клъстерът е импортиран успешно

Както можете да си представите, нашата база данни е празна и тук нямаме хаос за нашето забавление, но графиката все още работи, като е ангажирана в малък мащаб, съдържащ статистически данни за SQL и процесите на базата данни.

Показване на статистически данни за SQL и активността на базата данни

Симулация на сценарий в реалния свят

За да предприема някои действия, създадох CSV файл с помощта на Python, изследвайки хранилището на GitHub на Socratica, който предоставя невероятни курсове в YouTube и те правят тези файлове достъпни безплатно.

В обобщение, създаденият CSV файл има 9 милиона, 999 хиляди и 999 записа за лица, всеки от които съдържа ID, собствено име, фамилия и рожден ден. Размерът на файла е 324 MB:

$ du -s -h persons.csv
Проверка на размера на CSV файла

Ще копираме този CSV файл в контейнера на PostgreSQL, след това ще го копираме отново, но този път в базата данни, и накрая ще проверим статистиката в ClusterControl.

$ docker container cp persons.csv postgres-2:/persons.csv
$ docker container exec -it postgres-2 bash
$ du -s -h persons.csv
$ su - postgres
$ psql
Прехвърляне на CSV файла в контейнера и въвеждане в базата данни

Добре, така че сега сме в базата данни, като супер потребител „postgres“, моля, обърнете внимание на различните цветове в стрелките.

Сега трябва да създадем базата данни, таблицата и да я попълним с данните, съдържащи се в CSV файла, и накрая да проверим дали всичко работи добре.

$ CREATE DATABASE severalnines;
$ \c severalnines;
$ CREATE TABLE persons (id SERIAL NOT NULL, first_name VARCHAR(50), last_name VARCHAR(50), birthday DATE, CONSTRAINT persons_pkey PRIMARY KEY (id));
$ COPY persons (id, first_name, last_name, birthday) FROM '/persons.csv' DELIMITER ',' CSV HEADER;
Свързване с новата база данни и импортиране на CSV файла

Този процес отнема няколко минути, за да завърши.

Добре, сега нека да въведем някои заявки:

Запитвания в базата данни "severalnines"

Ако погледнете ClusterControl сега, се случи известно движение в статистическите данни за хардуера:

Показване на статистически данни за CPU вътре в ClusterControl

Цяла секция за наблюдение на заявките е снабдена с лесен за използване потребителски интерфейс:

Показване на статистически данни за заявките в ClusterControl

Статистическите данни за базата данни PostgreSQL служат на най-добрите администратори на база данни, за да изпълнят целия си потенциал при основните си задължения, а ClusterControl е цялостна система за анализиране на всяка дейност, която се случва в реално време, предоставяща информация въз основа на всички данни, събрани от процесите на базата данни.

С ClusterControl DBA също може лесно да разшири уменията си, като използва пълен набор от инструменти за създаване на резервни копия локално или в облака, репликации, балансьори на натоварване, интеграции с услуги, LDAP, ChatOps, Prometheus и много други.

Заключение

Чрез тази статия ние конфигурирахме PostgreSQL вътре в Docker и се интегрирахме с ClusterControl, използвайки User-Defined Bridge Network и SSH, симулирахме сценарий, попълващ базата данни с CSV файл и след това направихме цялостна бърза проверка в потребителския интерфейс на ClusterControl .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да активирам php да работи с postgresql?

  2. Какво изисква този JavaScript?

  3. QPSQL драйверът не е зареден Qt

  4. Какво прави ::в PostgreSQL?

  5. Управление на замръзване в PostgreSQL