Cara Memasang Graylog Server pada CentOS 7
Menggunakan Sistem yang Berbeda? Graylog server adalah perangkat lunak manajemen log sumber terbuka siap pakai perusahaan. Ia mengumpulkan log dari berbagai sumber dan menganalisis
RabbitMQ adalah broker pesan sumber terbuka yang mendukung AMQP, STOMP, dan teknologi komunikasi lainnya. Ini banyak digunakan dalam aplikasi perusahaan dan arsitektur layanan mikro modern di mana ia bertindak sebagai saluran pesan tidak sinkron antara berbagai layanan mikro. Panduan ini akan menjelaskan bagaimana Anda bisa mengelompokkan RabbitMQ pada beberapa server CentOS 7 untuk membentuk broker pesan ketersediaan tinggi. Dalam tutorial ini, satu server akan bertindak sebagai server master dan server lainnya akan bertindak sebagai server cermin jika server master tidak tersedia.
CentOS firewall, ( firewalld
), tidak mengizinkan lalu lintas masuk secara default. Untuk membuat RabbitMQ tersedia untuk sistem lain di dalam dan di luar jaringan, dan untuk memungkinkan kami mengakses konsol manajemen, pertama-tama kita harus membuka beberapa port.
Konsol manajemen antarmuka web RabbitMQ mendengarkan secara default di port 15672
. Kami ingin membuat konsol manajemen tersedia untuk umum sehingga kami dapat mengaksesnya dari komputer kami. Karena itu kami akan menginstruksikan firewalld
untuk secara permanen membuka port 15672
di zona publik (yang merupakan zona default dan aktif pada instance Vultr).
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
Simpul RabbitMQ harus dapat berkomunikasi satu sama lain. Kami ingin membuka port yang diperlukan, tetapi hanya melalui jaringan internal. Kami tidak ingin siapa pun di internet dapat mengelola atau langsung menghubungi server kami. Perintah berikut menganggap bahwa server kami ada di 192.168.0.100/24
subnet.
Layanan pertama adalah layanan epmd
penemuan rekan yang mendengarkan secara default di port 4369
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="4369" accept'
Untuk komunikasi internode dan CLI, RabbitMQ harus dapat berkomunikasi melalui port 25672
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="25672" accept'
Alat CLI berkomunikasi melalui rentang port 35672-35682
.
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="35672-35682" accept'
Jika aplikasi Anda memerlukan protokol AMQP, Anda juga perlu membuka porta 5671
dan 5672
. Jika Anda harus dapat berkomunikasi melalui protokol lain, Anda dapat menemukan informasi yang diperlukan tentang persyaratan jaringan RabbitMQ pada dokumentasi resmi RabbitMQ .
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="5672" accept'
sudo firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.100/24"
port protocol="tcp" port="5671" accept'
Sekarang firewalld
sudah dikonfigurasi, kita perlu menginstruksikannya untuk memuat ulang konfigurasi.
sudo firewall-cmd --reload
Ulangi langkah-langkah dari bagian ini di semua server.
rabbitmqadmin
Plugin manajemen dilengkapi dengan alat Python yang disebut rabbitmqadmin
yang dapat dengan mudah diinstal pada sistem setelah plugin manajemen diaktifkan.
sudo wget http://localhost:15672/cli/rabbitmqadmin
sudo mv rabbitmqadmin /usr/local/bin/
sudo chmod +x /usr/local/bin/rabbitmqadmin
Anda harus menggunakan nama host server untuk mengidentifikasi server saat pengelompokan. Secara default, server tidak memiliki catatan DNS yang ditetapkan dan koneksi akan gagal. Untuk segera mengatasinya, tambahkan nama host master dan mirror ke /etc/hosts
file menggunakan editor favorit Anda.
Misalnya, file host master Anda mungkin terlihat seperti berikut. Perhatikan dua catatan terakhir, yang memungkinkan server untuk mengidentifikasi satu sama lain dengan nama host mereka. Pastikan untuk mengubah alamat IP ke alamat Anda.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 guest
::1 guest
127.0.0.1 YOUR_MASTER_SERVER_HOST_NAME
::1 YOUR_MASTER_SERVER_HOST_NAME
192.168.0.101 YOUR_MASTER_SERVER_HOST_NAME
192.168.0.102 YOUR_MIRROR_SERVER_HOST_NAME
Prasyarat impor untuk memungkinkan node bergabung satu sama lain adalah bahwa cookie Erlang dari semua node identik. Secara default, setiap node akan diberi cookie Erlang yang unik, jadi Anda harus mengkonfigurasi ulang pada semua node.
Perintah berikut akan mengatur cookie Erlang menjadi " WE<3COOKIES
", tetapi jangan ragu untuk mengubahnya sesuai keinginan Anda. Lakukan ini di semua server.
sudo sh -c "echo 'WE<3COOKIES' > /var/lib/rabbitmq/.erlang.cookie"
Mulai ulang RabbitMQ di semua server untuk memastikan bahwa cookie Erlang dimuat ulang dengan benar.
sudo systemctl restart rabbitmq-server.service
Jalankan perintah berikut pada semua server kecuali pada server master. Ini akan membiarkan node bergabung dengan server master dan membentuk sebuah cluster.
sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster "rabbit@<YOUR_MASTER_SERVER_HOST_NAME>"
sudo rabbitmqctl start_app
Verifikasi bahwa node telah bergabung dengan cluster dengan menjalankan perintah berikut.
sudo rabbitmqctl cluster_status
Semua node Anda akan muncul di bagian nodes
dan running_nodes
di output. Mulai sekarang, Anda tidak perlu lagi mengulangi langkah-langkah di setiap server, konfigurasi akan secara otomatis dicerminkan ke node lain.
Sekarang kita memiliki sekelompok node RabbitMQ, kita dapat menggunakan ini untuk membuat antrian ketersediaan tinggi dan pertukaran dengan menyiapkan kebijakan baru. Kebijakan ini dapat ditambahkan melalui RabbitMQ Management Console atau menggunakan antarmuka baris perintah.
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "all" ha ".*" '{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
Daftar berikut ini akan menjelaskan apa arti setiap bagian dari perintah.
-p "/"
: Gunakan kebijakan ini di "/"
vhost (default setelah instalasi)--priority 1
: Urutan untuk menerapkan kebijakan --apply-to "all"
: Bisa jadi "queues"
, "exchanges"
atau"all"
ha
: Nama yang kami berikan untuk kebijakan kami ".*"
: Ekspresi reguler yang digunakan untuk memutuskan antrian atau pertukaran kebijakan mana yang diterapkan. ".*"
akan cocok dengan apa pun'{ "ha-mode": "exactly", "ha-params": 2, "ha-sync-mode": "automatic"}'
: Representasi kebijakan JSON. Dokumen ini menjelaskan bahwa kami ingin - tepatnya 2 node tempat data disinkronkan secara otomatisSingkatnya, kebijakan ini akan memastikan bahwa kami akan selalu memiliki 2 salinan data pada antrian atau pertukaran selama kami memiliki minimal 2 node aktif dan berjalan. Jika Anda memiliki lebih banyak node, Anda dapat meningkatkan nilai ha-params
. Kuorum, ( N/2 + 1
), dari node disarankan. Memiliki lebih banyak salinan data Anda akan menghasilkan disk yang lebih tinggi, i / o, dan penggunaan bersih yang dapat mengakibatkan kinerja yang menurun.
Jika Anda ingin mirror data ke semua node di cluster, Anda bisa menggunakan dokumen JSON berikut.
'{ "ha-mode": "all", "ha-sync-mode": "automatic"}'
Jika Anda ingin mirror data hanya ke node tertentu, (misalnya: node-1
dan node-2
), Anda bisa menggunakan yang berikut ini.
'{ "ha-mode": "nodes", "ha-params" :["rabbit@node-1", "rabbit@node-2"], "ha-sync-mode": "automatic"}'
Anda dapat mengubah ekspresi reguler untuk menetapkan kebijakan berbeda ke antrian yang berbeda. Katakanlah kita memiliki tiga simpul berikut:
Kita kemudian dapat membuat dua kebijakan yang akan menghasilkan antrian yang memiliki nama yang dimulai dengan "klien" untuk dicerminkan ke rabbit@client-ha
simpul dan semua antrian yang memiliki nama yang dimulai dengan "produk" untuk dicerminkan ke rabbit@product-ha
node.
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "queues" ha-client "client.*" '{ "ha-mode": "nodes", "ha-params": ["rabbit@master", "rabbit@client-ha"], "ha-sync-mode": "automatic"}
sudo rabbitmqctl set_policy -p "/" --priority 1 --apply-to "queues" ha-product "product.*" '{ "ha-mode": "nodes", "ha-params": ["rabbit@master", "rabbit@product-ha"], "ha-sync-mode": "automatic"}
Sebuah komentar kecil di sini: antrian eksklusif tidak pernah dicerminkan atau tahan lama di RabbitMQ, bahkan jika kebijakan ini cocok dengan antrian tersebut. Antrian eksklusif secara otomatis dihancurkan begitu klien memutus dan, dengan demikian, tidak ada gunanya untuk mereplikasi ke server lain. Jika server gagal, klien akan memutuskan dari itu dan antrian akan dihancurkan secara otomatis. Contoh cermin akan dihancurkan juga.
Untuk menguji pengaturan berkerumun kami dapat membuat antrian baru menggunakan antarmuka baris perintah melalui konsol manajemen.
sudo rabbitmqadmin declare queue --vhost "/" name=my-ha-queue durable=true
Ini akan membuat antrian yang tahan lama pada /
vhost default dengan namanya my-ha-queue
.
Jalankan perintah berikut dan verifikasi di output bahwa antrian memiliki kebijakan 'ha' kami ditugaskan dan memiliki pid pada master dan pada mirror node.
sudo rabbitmqctl list_queues name policy state pid slave_pids
Kami sekarang dapat mempublikasikan pesan ke antrian dari master node dan menghentikan RabbitMQ pada master node.
sudo rabbitmqadmin -u user_name -p password publish routing_key=my-ha-queue payload="hello world"
sudo systemctl rabbitmqctl shutdown
Sekarang dapatkan kembali dengan menghubungkan ke mirror node.
sudo rabbitmqadmin -H MIRROR_NODE_IP_OR_DNS -u user_name -p password get queue=my-ha-queue
Akhirnya, kita dapat me-restart node master kita.
sudo systemctl start rabbitmq-server.service
Seperti disebutkan sebelumnya, RabbitMQ secara otomatis membuat pengguna tamu dengan kata sandi tamu default. Ini akan menjadi praktik yang buruk untuk meninggalkan pengguna default ini pada sistem terbuka untuk umum.
sudo rabbitmqctl delete_user guest
Menggunakan Sistem yang Berbeda? Graylog server adalah perangkat lunak manajemen log sumber terbuka siap pakai perusahaan. Ia mengumpulkan log dari berbagai sumber dan menganalisis
Pada kesempatan tertentu, Administrator Sistem mungkin perlu membuat akun pengguna dan membatasi akses mereka untuk hanya mengelola file mereka sendiri melalui sFTP, tetapi tidak
Menggunakan Sistem yang Berbeda? Chamilo adalah sistem manajemen pembelajaran (LMS) gratis dan open source yang banyak digunakan untuk pendidikan online dan kolaborasi tim
Odoo, sebelumnya dikenal sebagai OpenERP, adalah platform bisnis ERP open source yang terkenal. Perusahaan dengan ukuran berapa pun dapat mengambil manfaat dari Odoo, berkat lisnya yang berlimpah
Menggunakan Sistem yang Berbeda? Couch CMS adalah Content Management System (CMS) sederhana dan fleksibel, gratis dan open source yang memungkinkan desainer web untuk mendesain
NextCloud, seperti namanya, adalah alternatif yang menjanjikan dari solusi hosting file sumber terbuka lainnya OwnCloud. Dalam artikel ini, saya akan menunjukkan kepada Anda ho
Menggunakan Sistem yang Berbeda? Netdata adalah bintang yang naik di bidang pemantauan metrik sistem waktu-nyata. Dibandingkan dengan alat lain dengan jenis yang sama, Netdata:
Menggunakan Sistem yang Berbeda? ERP atau Enterprise Resource Planning adalah rangkaian aplikasi perusahaan yang digunakan untuk mengelola proses bisnis inti. ERPNext adalah gratis
Selamat datang di tutorial Vultr lainnya. Di sini, Anda akan belajar cara menginstal dan menjalankan server SAMP. Panduan ini ditulis untuk CentOS 6. Prasyarat Anda akan tahu
Menggunakan Sistem yang Berbeda? Elgg adalah mesin jejaring sosial open source yang memungkinkan penciptaan lingkungan sosial seperti jejaring sosial kampus
Bolt adalah CMS open source yang ditulis dalam PHP. Kode sumber baut di-host di GitHub. Panduan ini akan menunjukkan kepada Anda cara menginstal Bolt CMS pada CentOS 7 Vult yang baru
Bugzilla adalah sistem pelacakan bug sumber bebas dan terbuka yang banyak digunakan oleh berbagai vendor untuk terus meningkatkan softwar mereka
Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada
Menggunakan Sistem yang Berbeda? Pendahuluan Sails.js adalah kerangka kerja MVC untuk Node.js, mirip dengan Ruby on Rails. Itu membuat untuk mengembangkan aplikasi modern ver
Tutorial ini akan membahas proses pemasangan server game Half Life 2 pada Sistem CentOS 6. Langkah 1: Menginstal prasyarat Untuk mengatur ou
Pendahuluan Sistem Linux dilengkapi dengan alat pemantauan secara default seperti top, df, dan du yang membantu memonitor proses dan ruang disk. Namun sering kali, mereka ar
Menggunakan Sistem yang Berbeda? Kolab Groupware adalah aplikasi groupware berbasis web gratis dan open source. Fitur-fiturnya terdiri dari komunikasi email, acara
Menggunakan Sistem yang Berbeda? Koel adalah aplikasi streaming audio pribadi sederhana berbasis web yang ditulis dalam Vue di sisi klien dan Laravel di sisi server. Koe
GDB adalah debugger untuk C, C ++, Objective-C, Pascal, Fortran, Go, D, OpenCL C, Ada, dan Modula-2. CentOS didasarkan pada RHEL (Red Hat Enterprise Linux). Salah satu th
Menggunakan Sistem yang Berbeda? Akaunting adalah perangkat lunak akuntansi sumber terbuka dan gratis yang dirancang untuk usaha kecil dan freelancer. Itu dibangun kecerdasan
Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.
Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.
Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.
Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.
CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?
Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.
Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!
Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.
Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut