Kami mempunyai Postgres di sana, tetapi saya tidak tahu apa yang perlu dilakukan dengannya (c)

Ini adalah nukilan salah seorang kawan saya yang suatu ketika dahulu pernah mendekati saya dengan soalan tentang Postgres. Kemudian kami menyelesaikan masalahnya dalam beberapa hari dan, berterima kasih kepada saya, dia menambah: "Adalah bagus untuk mempunyai DBA yang biasa."

Tetapi apa yang perlu dilakukan jika anda tidak mengetahui DBA? Terdapat banyak pilihan jawapan, bermula daripada mencari kawan di kalangan rakan-rakan untuk mengkaji soalan itu sendiri. Tetapi apa sahaja jawapan yang terlintas di fikiran anda, saya ada berita baik untuk anda. Dalam mod ujian, kami melancarkan perkhidmatan pengesyoran untuk Postgres dan segala-galanya di sekelilingnya. Apakah ini dan bagaimana kita boleh hidup seperti ini?

Kenapa semua ni?

Postgres sekurang-kurangnya tidak mudah, dan kadang-kadang sangat sukar. Bergantung kepada tahap penglibatan dan tanggungjawab.

Mereka yang bekerja dalam operasi perlu memastikan bahawa Postgres sebagai perkhidmatan berfungsi dengan baik dan stabil - memantau penggunaan sumber, ketersediaan, kecukupan konfigurasi, menjalankan kemas kini secara berkala dan pemeriksaan kesihatan yang kerap. Mereka yang sedang dalam pembangunan dan menulis aplikasi, secara umum, perlu memantau cara aplikasi berinteraksi dengan pangkalan data dan ia tidak mewujudkan situasi kecemasan yang boleh menjatuhkan pangkalan data. Jika seseorang tidak bernasib baik untuk menjadi ketua teknikal/pengarah teknikal, maka penting baginya bahawa Postgres secara keseluruhannya berfungsi dengan pasti, boleh diramal dan tidak menimbulkan masalah, sementara dinasihatkan untuk tidak menyelam secara mendalam ke dalam Postgres untuk masa yang lama. .

Dalam mana-mana kes ini, terdapat anda dan Postgres. Untuk melayani Postgres dengan baik, anda perlu memahaminya dengan baik dan memahami cara ia berfungsi. Jika Postgres bukan pengkhususan langsung, maka anda boleh menghabiskan banyak masa mempelajarinya. Sebaik-baiknya, apabila ada masa dan keinginan, ia tidak selalu jelas di mana untuk bermula, bagaimana dan ke mana untuk bergerak.

Walaupun pemantauan diperkenalkan, yang secara teorinya sepatutnya memudahkan operasi, isu pengetahuan pakar tetap terbuka. Untuk dapat membaca dan memahami graf, anda masih perlu mempunyai pemahaman yang baik tentang cara Postgres berfungsi. Jika tidak, sebarang pemantauan bertukar menjadi gambar sedih dan spam daripada makluman pada waktu rawak dalam sehari.

Senjata hanya dibuat untuk menjadikan Postgres lebih mudah digunakan. Perkhidmatan mengumpul dan menganalisis data tentang Postgres dan membuat cadangan tentang perkara yang boleh diperbaiki.

Matlamat utama perkhidmatan ini adalah untuk memberikan cadangan yang jelas yang memberi gambaran tentang apa yang sedang berlaku dan apa yang perlu dilakukan seterusnya.

Bagi profesional yang tidak mempunyai pengetahuan pakar, cadangan menyediakan titik permulaan untuk latihan lanjutan. Untuk pakar lanjutan, cadangan menunjukkan perkara yang perlu diberi perhatian. Sehubungan itu, Weaponry bertindak sebagai pembantu yang menjalankan tugas rutin untuk mencari masalah atau kekurangan yang memerlukan perhatian khusus. Senjata boleh dibandingkan dengan linter yang memeriksa Postgres dan menunjukkan kelemahan.

Bagaimana keadaan sekarang?

Pada masa ini, Senjata berada dalam mod ujian dan percuma, pendaftaran terhad buat sementara waktu. Bersama beberapa sukarelawan, kami sedang memuktamadkan enjin pengesyoran di pangkalan berhampiran pertempuran, mengenal pasti positif palsu dan mengusahakan teks cadangan.

Ngomong-ngomong, cadangan masih agak mudah - mereka hanya mengatakan apa yang perlu dilakukan dan bagaimana untuk melakukannya, tanpa butiran tambahan - jadi pada mulanya anda perlu mengikuti pautan yang berkaitan atau Google itu. Semakan dan pengesyoran meliputi tetapan sistem dan perkakasan, tetapan Postgres itu sendiri, skema dalaman dan sumber yang digunakan. Masih terdapat banyak perkara yang perlu ditambah dalam rancangan.

Dan sudah tentu, kami sedang mencari sukarelawan yang bersedia untuk mencuba perkhidmatan dan memberi maklum balas. Kami juga mempunyai demo, anda boleh masuk dan lihat. Jika anda memahami bahawa anda memerlukan ini dan bersedia untuk mencuba, kemudian tulis kepada kami di mel.

Dikemas kini 2020-09-16. Bermula.

Selepas pendaftaran, pengguna digesa untuk mencipta projek - yang membolehkan anda menggabungkan contoh pangkalan data ke dalam kumpulan. Selepas membuat projek, pengguna diarahkan kepada arahan untuk mengkonfigurasi dan memasang ejen. Secara ringkasnya, anda perlu mencipta pengguna untuk ejen, kemudian memuat turun skrip pemasangan ejen dan menjalankannya. Dalam arahan shell ia kelihatan seperti ini:

psql -c "CREATE ROLE pgscv WITH LOGIN SUPERUSER PASSWORD 'A7H8Wz6XFMh21pwA'"
export PGSCV_PG_PASSWORD=A7H8Wz6XFMh21pwA
curl -s https://dist.weaponry.io/pgscv/install.sh |sudo -E sh -s - 1 6ada7a04-a798-4415-9427-da23f72c14a5

Jika hos mempunyai pgbouncer, maka anda juga perlu mencipta pengguna untuk menyambungkan ejen. Cara khusus untuk mengkonfigurasi pengguna dalam pgbouncer boleh menjadi sangat berubah-ubah dan sangat bergantung pada konfigurasi yang digunakan. Secara umum, persediaan datang untuk menambah pengguna statistik_pengguna fail konfigurasi (biasanya pgbouncer.ini) dan menulis kata laluan (atau cincangannya) pada fail yang dinyatakan dalam parameter fail_auth. Jika anda menukar stats_users, anda perlu memulakan semula pgbouncer.

Skrip install.sh mengambil beberapa hujah yang diperlukan yang unik untuk setiap projek, dan melalui pembolehubah persekitaran ia menerima butiran pengguna yang dibuat. Seterusnya, skrip memulakan ejen dalam mod bootstrap - ejen menyalin dirinya ke PATH, mencipta konfigurasi dengan butiran, unit systemd dan bermula sebagai perkhidmatan systemd.
Ini melengkapkan pemasangan. Dalam beberapa minit, contoh pangkalan data akan muncul dalam senarai hos dalam antara muka dan anda sudah boleh melihat pengesyoran pertama. Tetapi perkara penting ialah banyak pengesyoran memerlukan sejumlah besar metrik terkumpul (sekurang-kurangnya setiap hari).

Sumber: www.habr.com

Tambah komen