Rabu, 31 Oktober 2018

Monitoring web online

Empat Alternatif Open Source Untuk Google Analytics


Jika pembaca memiliki sebuah website atau memiliki bisnis online, mengumpulkan data mengenai pengunjung atau pelanggan dimana posisi mereka, kapan mereka mengakses website kita, dimana pertama kali mereka menakses website kita, kapan mereka menutup tab website kita, dihalaman mana mereka menutup aplikasi kita, dst. merupakan langkah yang sangat penting untuk dilakukan. Mengapa? Karena informasi tersebut bisa membantu tahu dimana kita perlu meningkatkan kualitas layanan atau produk yang kita buat atau berikan sehingga mereka yang meninggalkan produk kita dapat datang kembali atau mereka yang sudah pernah datang, akan terus datang di masa depan.
Untuk mendapatkan informasi semacam itu, kita memerlukan sebuah web analytics tool.
Banyak bisnis menggunakan layanan Google Analytics. Namun, jika ingin memiliki kontrol lebih atas data yang kita punya, kita memerlukan sebuah tool yang dapat dikontrol. Kita tidak bisa melakukannya dengan Google Analytics. Beruntung, Google Analitics bukan satu-satunya penyedia layanan web analytics.
Berikut empat alternatif open source untuk Google Analytics.

Matomo

Mari kita mulai dengan aplikasi open source yang melawan Google Analytics dari segi fungsi: Matomo (sebelumnya bernama Piwik). Matomo dapat melakukan apa yang sebagian besar dilakukan oleh Google Analytics, dan penulis percaya ia memiliki fitur-fitur yang pembaca perlukan.
Fitur-fitur tersebut diantaranya menghitung jumlah pengunjung website, data dari mana mereka datang (baik secara geografi atau web lain), halaman mana tempat mereka keluar, dan kemampuan untuk mendeteksi referral search engine. Matomo juga memberikan banyak opsi pelaporan, dan kita juga bisa mengkostumisasi dashboard dengan menampilkan metric yang diinginkan.
Untuk mempermudah, Matomo mengintegrasikan lebih dari 65 content managemente-commerce, dan sistem online forum, termasuk WordPress, Magneto, Joomla, dan vBulletin, lewat plugin. Untuk sistem lain, kita cukup menambahkan tracking ke sebuah halaman di website kita.
Pembaca bisa mencoba Matomo langsung atau memasangnya sendiri di hosted version.

Open Web Analytics

Jika ada pesaing Matomo yang paling dekat, dia adalah Open Web Analytics. Bahkan, Open Web Analytics memiliki fitur-fitur yang dapat menandingi Google Analytics.
Selain memiliki fitur analisis dan pelaporan, Open Web Analytics juga mencatat dimana di sebuah halaman, dan elemen apa yang di klik oleh pengunjung dengan memberikan sebuah heat maps yang memberitahu bagian mana disebuah halaman yang paling sering diakses oleh pengunjung.
Open Web Analytics memiliki sebuah plugin WordPress dan bisa juga diintegrasikan dengan MediaWiki. Atau kita bisa menambah snippet JavaScript atau PHP ke halaman web yang mengaktifkan tracking.
Sebelum mengunduh paket Open Web Analytics, pembaca bisa mencoba versei demo untuk melihat apakah ia cocok untuk kita.

AWStats

File log server web memiliki informasi yang cukup kaya mengenai pengunjung situs, tapi membaca file log tersebut tidak selalu mudah dilakukan. Untuk itulah dibuat AWStats. Meski tidak memiliki tampilan yang modern, AWStats menutupinya dengan menampilkan banyak data.
Informasi-informasi yang dapat ia tampilkan diantaranya jumlah pengunjung unik, berapa lama pengunjung membuka situs kita, sistem operasi dan browser apa yang mereka pakai, ukuran layarnya, search engine dan kata kunci yang dipakai, dst. AWStats juga bisa memberi tahu kita berapa kali situs kita di bookmark, mencatat halaman dimana pengunjung mengakses dan meninggalkan situs kita, juga memiliki daftar halaman paling populer.
Fitur-fitur ini hanya kulit dari kemampuan yang dimiliki AWStats. Ia juga bisa bekerja dengan log FTP dan email, juga file log sistem. AWStats bisa memberikan deep insight mengenai apa yang terjadi di website kita dengan dapat yang dapat kita kontrol.

Countly

Countly mengenalkan dirinya sebagai platform "secure web analytics". Meski penulis belum bisa membahas sisi security-nya, Countly bisa mengumpulkan dan menampilkan data tentang situs kita dan pengunjungnya dengan sangat baik.
Dengan target utama perusahaan marketing, Countrly mencatat data yang palign penting untuk marketer. Informasi tersebut termasuk transaksi pengunjung, termasuk campaign dan sumber mana yang membuat pengunjung mengakses halaman kita. Kita juga bisa membuat metric tertentu yang spesifik hanya untuk bisnis yang dilakukan. Countly juga tidak meninggalkan fitur web analytics standar, ia bisa mencatat jumlah pengunjung, dari mana datangnya, dan halaman mana yang mereka kunjungi.
Countly bisa pembaca unduh dan pasang sendiri dari source code di Github atau memakai yang sudah disipakan oleh mereka. Dan ya, ada perbedaan antara versi hosted dan self-hosted-nya.
Sumber: opensource.com
Gambar sampul: developers.google.com

Jumat, 12 Oktober 2018

HA Owncloud

High Availability File Sync and Share - Menyebarkan ownCloud dengan Galera Cluster untuk MySQL dan GlusterFS

Manynines 
Penyimpanan cloud panas. Dropbox, Apple iCloud, Google Drive, Microsoft SkyDrive, dan Amazon Cloud Drive semuanya menawarkan platform berbagi cloud tempat Anda dapat menyimpan dokumen di cloud dan mengaksesnya dari semua perangkat Anda. Untuk perusahaan yang membutuhkan kontrol penuh, ownCloud adalah solusi open source yang memungkinkan file disimpan di lokasi dan / atau backend cloud.
Di entri blog ini, kami akan menunjukkan cara menerapkan penyiapan ketersediaan tinggi menggunakan ownCloud Community Edition. Kami perlu mengatur redundansi di masing-masing lapisan berikut:
  • penyimpanan file
  • server web
  • server basis data
  • load balancer
Kami akan menggunakan lima server. ownCloud akan berjalan di tiga server terpisah dengan MySQL Galera Cluster 5.6 dan GlusterFS berjalan pada RHEL 6.5 64bit. ownCloud mendukung GlusterFS sebagai penyimpanan primer. ClusterControl akan ditempatkan bersama dengan salah satu dari dua load balancer untuk memantau dan mengelola Galera Cluster dan HAProxy.
Diagram berikut mengilustrasikan pengaturan kami:
Pengaturan kami terdiri dari 5 server atau node:
  • owncloud1: server web + server basis data
  • owncloud2: server web + server basis data
  • owncloud3: server web + server basis data
  • haproxy1: load balancer (master) + keepalived
  • haproxy2: load balancer (cadangan) + keepalived + ClusterControl
Langkah utama kami adalah:
  1. Siapkan 5 host
  2. Jalankan MySQL Galera Cluster ke owncloud1, owncloud2 dan oncloud3 dari haproxy2
  3. Mengkonfigurasi file sistem cluster GlusterFS
  4. Konfigurasikan Apache dan PHP di owncloud1, owncloud2 dan owncloud3
  5. Konfigurasi Keepalived dan HAProxy untuk load balancing web dan database dengan failover otomatis
  6. Instal ownCloud dan hubungkan ke kluster Web / DB melalui load balancer

Mempersiapkan Host

Tambahkan definisi host berikut di / etc / hosts dari semua node:
1
10.0.0.200 virtual-ip owncloud 10.0.0.201 owncloud1 web1 mysql1 10.0.0.202 owncloud2 web2 mysql2 10.0.0.203 owncloud3 web3 mysql3 10.0.0.211 haproxy1 10.0.0.212 haproxy2 clustercontrol
Untuk menyederhanakan proses penyebaran, kami akan mematikan SElinux dan iptables di semua host:
1
$ setenforce 0 $ service iptables stop $ sed -i 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config $ chkconfig iptables off

Menyebarkan Galera Cluster untuk MySQL

** Penyebaran klaster basis data akan dilakukan dari haproxy2, yaitu node ClusterControl.
1. Untuk mengatur MySQL Galera Cluster, buka Galera Configurator untuk menghasilkan paket penerapan. Di wizard, kami menggunakan nilai-nilai berikut ketika mengkonfigurasi cluster database kami:
1
Vendor : Codership MySQL Version : MySQL 5.6.x Infrastructure : none/on-premises Operating System : RHEL6 - Redhat 6.4/Fedora/Centos 6.4/OLN 6.4/Amazon AMI Number of Galera Servers : 3 OS user : root ClusterControl Server : 10.0.0.212 Database Servers : 10.0.0.201 10.0.0.202 10.0.0.203
Di akhir panduan, paket penerapan akan dibuat dan dikirim melalui email kepada Anda.
2. Unduh paket penerapan dan jalankan deploy.sh:
1
$ tar -xzf s9s-galera-codership-3.5.0-rpm.tar.gz $ cd s9s-galera-codership-3.5.0-rpm/mysql/scripts/install/ $ bash ./deploy.sh 2>&1 | tee cc.log
3. Penyebaran akan memakan waktu sekitar 15 menit, dan setelah selesai, UI ClusterControl dapat diakses di https://10.0.0.212/clustercontrol . Anda sekarang akan melihat MySQL Galera Cluster Anda di UI.
ClusterControl
Konsol Tunggal untuk Seluruh Infrastruktur Database Anda
Terapkan, kelola, pantau, skala database Anda pada tumpukan teknologi pilihan Anda!

Load Balancer dan Failover

Karena HAProxy dan ClusterControl adalah co-located pada server yang sama, kita perlu mengubah port default Apache ke port lain, misalnya port 8080. ClusterControl akan berjalan pada port 8080 sementara HAProxy akan mengambil alih port 80 untuk melakukan load balancing web.
1. Pada haproxy2, buka file konfigurasi Apache di /etc/httpd/conf/httpd.conf dan lakukan perubahan berikut:
1
Listen 8080
Restart server web Apache untuk menerapkan perubahan:
1
$ service httpd restart
Pada titik ini, ClusterControl dapat diakses melalui port 8080 di HTTP di http://10.0.0.212:8080/clustercontro l atau Anda dapat terhubung melalui port HTTPS default di https://10.0.0.212/clustercontrol .
2. Ubah detail Pendaftaran Cluster ke URL API ClusterControl baru yang berjalan pada port 8080. Anda bisa mendapatkan Token API ClusterControl dari email yang Anda terima. Pastikan bahwa URL API yang didefinisikan sebelumnya telah dicabut:
** Anda juga dapat menggunakan https://127.0.0.1/cmonapi sebagai URL API ClusterControl. Port HTTPS tidak berubah untuk latihan ini.
3. Sebelum kami mulai menerapkan load balancer, pastikan haproxy1 dapat diakses menggunakan SSH tanpa password dari ClusterControl / haproxy2. Pada haproxy2, salin kunci SSH ke 10.0.0.211:
1
$ ssh-copy-id -i ~/.ssh/id_rsa root@10.0.0.211
4. Masuk ke ClusterControl, telusuri ke kluster basis data dan klik Tambahkan tombol Load Balancer . Menerapkan HAProxy pada haproxy1 dan haproxy2 mirip dengan di bawah ini:
** Perhatikan bahwa untuk RHEL, pastikan Anda memeriksa Build from source? untuk menginstal HAProxy dari sumber. Ini akan menginstal versi HAProxy terbaru.
5. Instal Keepalived pada haproxy1 (master) dan haproxy2 (backup) dengan 10.0.0.200 sebagai IP virtual:
6. Sekarang node load balancer telah dipasang, dan terintegrasi dengan ClusterControl. Anda dapat memverifikasi ini dengan melihat bar ringkasan ClusterControl:
7. Secara default, skrip kami akan mengkonfigurasi layanan reverse proxy MySQL untuk mendengarkan pada port 33306. Kita perlu menambahkan kemampuan load balancing HTTP ke load balancer yang baru diinstal. Pada haproxy1 dan haproxy2, buka /etc/haproxy/haproxy.cfg dan tambahkan baris berikut:
1
frontend http-in bind *:80 default_backend web_farm backend web_farm balance source server owncloud1 10.0.0.201:80 maxconn 32 check server owncloud2 10.0.0.202:80 maxconn 32 check server owncloud3 10.0.0.203:80 maxconn 32 check
8. Mulai ulang HAProxy untuk menerapkan perubahan:
1
$ service haproxy restart
Atau, Anda bisa mematikan proses haproxy dan membiarkan ClusterControl memulihkannya.

Mengkonfigurasi GlusterFS

* Langkah-langkah berikut harus dilakukan pada owncloud1, owncloud2 dan owncloud3 kecuali ditentukan lain.
1. Dapatkan file repositori YUM Gluster dan simpan ke dalam /etc/yum.repos.d:
1
$ wget <a class="vglnk" href="http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-epel.repo" rel="nofollow"><span>http</span><span>://</span><span>download</span><span>.</span><span>gluster</span><span>.</span><span>org</span><span>/</span><span>pub</span><span>/</span><span>gluster</span><span>/</span><span>glusterfs</span><span>/</span><span>LATEST</span><span>/</span><span>RHEL</span><span>/</span><span>glusterfs</span><span>-</span><span>epel</span><span>.</span><span>repo</span></a> -P /etc/yum.repos.d
2. Pasang GlusterFS:
1
$ yum install -y glusterfs glusterfs-fuse glusterfs-server
3. Buat direktori bernama bata di bawah / partisi penyimpanan:
1
$ mkdir -p /storage/brick
4. Mulai daemon gluster:
1
$ service glusterd start $ chkconfig glusterd on
5. Pada owncloud1, periksa node lainnya:
1
$ gluster peer probe 10.0.0.202 $ gluster peer probe 10.0.0.203
Anda dapat memverifikasi status rekan dengan perintah berikut:
1
$ gluster peer status Number of Peers: 2 Hostname: 10.0.0.202 Uuid: d8c23f23-518a-48f7-9124-476c105dbe91 State: Peer in Cluster (Connected) Hostname: 10.0.0.203 Uuid: 32a91fda-7ab8-4956-9f50-9b5ad59e0770 State: Peer in Cluster (Connected)
6. Pada owncloud1, buat volume yang direplikasi pada node probed:
1
$ gluster volume create rep-volume replica 3 10.0.0.201:/storage/brick 10.0.0.202:/storage/brick 10.0.0.203:/storage/brick volume create: rep-volume: success: please start the volume to access data
7. Mulai volume direplikasi pada owncloud1:
1
$ gluster volume start rep-volume
8. Pastikan volume dan proses yang direplikasi sedang online:
1
$ gluster volume status Status of volume: rep-volume Gluster process Port Online Pid ------------------------------------------------------------------------------ Brick 10.0.0.201:/storage/brick 49152 Y 3679 Brick 10.0.0.202:/storage/brick 49152 Y 5253 Brick 10.0.0.203:/storage/brick 49152 Y 6140 NFS Server on localhost 2049 Y 3730 Self-heal Daemon on localhost N/AY 3710 NFS Server on 10.0.0.202 2049 Y 5267 Self-heal Daemon on 10.0.0.202 N/AY 5272 NFS Server on 10.0.0.203 2049 Y 6162 Self-heal Daemon on 10.0.0.203 N/AY 6157 Task Status of Volume rep-volume ------------------------------------------------------------------------------ There are no active volume tasks
9. Kami akan memasang volume yang direplikasi pada / var / www / html. Buat direktori:
1
$ mkdir -p /var/www/html
10. Tambahkan baris berikut ke / etc / fstab untuk memungkinkan auto-mount:
1
localhost:/rep-volume /var/www/html glusterfs defaults,_netdev 0 0
11. Pasang GlusterFS ke / var / www / html:
1
$ mount -a

Apache dan PHP

* Langkah-langkah berikut harus dilakukan pada owncloud1, owncloud2 dan owncloud3.
1. ownCloud disarankan untuk dijalankan pada PHP 5.4. Untuk menyederhanakan instalasi, instal repositori Remi YUM:
1
$ rpm -Uvh <a class="vglnk" href="http://rpms.famillecollet.com/enterprise/remi-release-6.rpm" rel="nofollow"><span>http</span><span>://</span><span>rpms</span><span>.</span><span>famillecollet</span><span>.</span><span>com</span><span>/</span><span>enterprise</span><span>/</span><span>remi</span><span>-</span><span>release</span><span>-</span><span>6</span><span>.</span><span>rpm</span></a>
2. Instal semua paket yang diperlukan dengan repositori remi yang diaktifkan:
1
$ yum install -y --enablerepo=remi httpd php php-mysql php-xml php-gd php-dom php-mbstring
3. Jalankan server web Apache dan aktifkan saat boot:
1
$ service httpd start $ chkconfig httpd on

Instal ownCloud

Langkah-langkah berikut harus dilakukan pada owncloud1.
1. Unduh versi Komunitas ownCloud dari sini dan ekstrak di bawah / var / www / html:
1
$ wget <a class="vglnk" href="https://download.owncloud.org/community/owncloud-7.0.4.tar.bz2" rel="nofollow"><span>https</span><span>://</span><span>download</span><span>.</span><span>owncloud</span><span>.</span><span>org</span><span>/</span><span>community</span><span>/</span><span>owncloud</span><span>-</span><span>7</span><span>.</span><span>0</span><span>.</span><span>4</span><span>.</span><span>tar</span><span>.</span><span>bz2</span></a> $ tar -xjf owncloud-7.0.4.tar.bz2 -C /var/www/html
2. Tetapkan kepemilikan yang benar ke direktori ownCloud:
1
$ chown apache.apache -R /var/www/html/owncloud
3. Sebelum kita melanjutkan dengan instalasi ownCloud, kita perlu menyiapkan skema owncloud. Dari ClusterControl, buka Kelola> Skema dan Pengguna> Buat Database dan buat database yang disebut 'owncloud'.
4. Buat pengguna database di bawah tab Hak Istimewa:
5. Tetapkan hak istimewa yang benar untuk pengguna owncloud db di database owncloud:
6. Buka browser dan arahkan ke http://10.0.0.201/owncloud/ . Anda akan melihat halaman instalasi ownCloud. Tentukan detail konfigurasi untuk database untuk menggunakan MySQL / MariaDB dengan nama database yang dibuat dan pengguna melalui port IP virtual 10.0.0.200 33306:
Setelah selesai, Anda akan melihat halaman selamat datang seperti di bawah ini:
instalasi ownCloud sekarang selesai! Anda sekarang dapat mengakses situs web menggunakan IP virtual, http://10.0.0.200/owncloud dengan failover otomatis dan koneksi beban seimbang.

Verifikasi Arsitektur

1. Periksa statistik HAProxy dengan masuk ke halaman admin HAProxy di haproxy1 host port 9600. Nama pengguna / kata sandi default adalah admin / admin. Anda akan melihat beberapa byte masuk dan keluar di bagian web_farm dan s9s_33306_production:
2. Periksa dan amati lalu lintas di cluster database Anda dari halaman ikhtisar ClusterControl di https://10.0.0.212/clustercontrol :
Selamat, Anda sekarang telah menerapkan infrastruktur ownCloud Anda yang sangat tersedia dengan mengelompokkan load balancer, web, database, dan lapisan sistem file.

High Availability File Sync and Share - Deploying ownCloud with Galera Cluster for MySQL and GlusterFS

Severalnines   
Cloud storage is hot. Dropbox, Apple iCloud, Google Drive, Microsoft SkyDrive and Amazon Cloud Drive all offer cloud sharing platforms where you can store documents in the cloud and access them from all your devices. For enterprises who require full control, ownCloud is an open source solution that allows files to be stored on-premises and/or a backend cloud.
In this blog post, we’ll show you how to deploy a high availability setup using ownCloud Community Edition. We will need to set up redundancy in each of the following layers:
  • file storage
  • web server
  • database server
  • load balancer
We will use five servers. ownCloud will run on three separate servers with MySQL Galera Cluster 5.6 and GlusterFS running on RHEL 6.5 64bit. ownCloud supports GlusterFS as primary storage. ClusterControl will be co-located with one of the two load balancers to monitor and manage Galera Cluster and HAProxy.
The following diagram illustrates our setup:
Our setup consists of 5 servers or nodes:
  • owncloud1: web server + database server
  • owncloud2: web server + database server
  • owncloud3: web server + database server
  • haproxy1: load balancer (master) + keepalived
  • haproxy2: load balancer (backup) + keepalived + ClusterControl
Our main steps would be:
  1. Prepare 5 hosts
  2. Deploy MySQL Galera Cluster onto owncloud1, owncloud2 and oncloud3 from haproxy2
  3. Configure GlusterFS clustered file system
  4. Configure Apache and PHP on owncloud1, owncloud2 and owncloud3
  5. Configure Keepalived and HAProxy for web and database load balancing with auto failover
  6. Install ownCloud and connect it to the Web/DB cluster via the load balancer

Preparing Hosts

Add the following hosts definition in /etc/hosts of all nodes:
1
2
3
4
5
6
10.0.0.200      virtual-ip owncloud
10.0.0.201      owncloud1 web1 mysql1
10.0.0.202      owncloud2 web2 mysql2
10.0.0.203      owncloud3 web3 mysql3
10.0.0.211      haproxy1
10.0.0.212      haproxy2 clustercontrol
To simplify the deployment process, we will turn off SElinux and iptables on all hosts:
1
2
3
4
$ setenforce 0
$ service iptables stop
$ sed -i 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config
$ chkconfig iptables off

Deploying Galera Cluster for MySQL

** The deployment of the database cluster will be done from haproxy2, i.e., the ClusterControl node.
1. To set up MySQL Galera Cluster, go to the Galera Configurator to generate a deployment package. In the wizard, we used the following values when configuring our database cluster:
1
2
3
4
5
6
7
8
Vendor                   : Codership
MySQL Version            : MySQL 5.6.x
Infrastructure           : none/on-premises
Operating System         : RHEL6 - Redhat 6.4/Fedora/Centos 6.4/OLN 6.4/Amazon AMI
Number of Galera Servers : 3
OS user                  : root
ClusterControl Server    : 10.0.0.212
Database Servers         : 10.0.0.201 10.0.0.202 10.0.0.203
At the end of the wizard, a deployment package will be generated and emailed to you.
2. Download the deployment package and run deploy.sh:
1
2
3
$ tar -xzf s9s-galera-codership-3.5.0-rpm.tar.gz
$ cd s9s-galera-codership-3.5.0-rpm/mysql/scripts/install/
$ bash ./deploy.sh 2>&1 | tee cc.log
3. The deployment will take about 15 minutes, and once completed, the ClusterControl UI is accessible at https://10.0.0.212/clustercontrol. You will now see your MySQL Galera Cluster in the UI.
ClusterControl
Single Console for Your Entire Database Infrastructure
Deploy, manage, monitor, scale your databases on the technology stack of your choice!

Load Balancer and Failover

Since HAProxy and ClusterControl are co-located on the same server, we need to change the Apache default port to another port, for example port 8080. ClusterControl will run on port 8080 while HAProxy will take over port 80 to perform web load balancing.
1. On haproxy2, open the Apache configuration file at /etc/httpd/conf/httpd.conf and make the following changes:
1
Listen 8080
Restart Apache web server to apply changes:
1
$ service httpd restart
At this point ClusterControl is accessible via port 8080 on HTTP at http://10.0.0.212:8080/clustercontrol or you can connect through the default HTTPS port at https://10.0.0.212/clustercontrol.
2. Change the Cluster Registration details to the new ClusterControl API URL that runs on port 8080. You can get the ClusterControl API Token from the email you received. Ensure that the previous defined API URL has been revoked:
** You can also use https://127.0.0.1/cmonapi as the ClusterControl API URL. The HTTPS port does not change for this exercise.
3. Before we start to deploy the load balancers, make sure haproxy1 is accessible using passwordless SSH from ClusterControl/haproxy2. On haproxy2, copy the SSH keys to 10.0.0.211:
1
$ ssh-copy-id -i ~/.ssh/id_rsa root@10.0.0.211
4. Login to ClusterControl, drill down to the database cluster and click Add Load Balancer button. Deploy HAProxy on haproxy1 and haproxy2 similar to below:
** Take note that for RHEL, ensure you check Build from source? to install HAProxy from source. This will install the latest version of HAProxy.
5. Install Keepalived on haproxy1(master) and haproxy2(backup) with 10.0.0.200 as virtual IP:
6. The load balancer nodes have now been installed, and are integrated with ClusterControl. You can verify this by checking out the ClusterControl summary bar:
7. By default, our script will configure the MySQL reverse proxy service to listen on port 33306. We will need to add HTTP load balancing capabilities to the newly installed load balancers. On haproxy1 and haproxy2, open /etc/haproxy/haproxy.cfg and add the following lines:
1
2
3
4
5
6
7
8
frontend http-in
    bind *:80
    default_backend web_farm
backend web_farm
    balance source
    server owncloud1 10.0.0.201:80 maxconn 32 check
    server owncloud2 10.0.0.202:80 maxconn 32 check
    server owncloud3 10.0.0.203:80 maxconn 32 check
8. Restart HAProxy to apply changes:
1
$ service haproxy restart
Or, you can just kill the haproxy process and let ClusterControl recover it.

Configuring GlusterFS

* The following steps should be performed on owncloud1, owncloud2 and owncloud3 unless otherwise specified.
1. Get the Gluster YUM repository file and save it into /etc/yum.repos.d:
1
$ wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/glusterfs-epel.repo -P /etc/yum.repos.d
2. Install GlusterFS:
1
$ yum install -y glusterfs glusterfs-fuse glusterfs-server
3. Create a directory called brick under /storage partition:
1
$ mkdir -p /storage/brick
4. Start gluster daemon:
1
2
$ service glusterd start
$ chkconfig glusterd on
5. On owncloud1, probe the other nodes:
1
2
$ gluster peer probe 10.0.0.202
$ gluster peer probe 10.0.0.203
You can verify the peer status with the following command:
1
2
3
4
5
6
7
8
$ gluster peer status
Number of Peers: 2
Hostname: 10.0.0.202
Uuid: d8c23f23-518a-48f7-9124-476c105dbe91
State: Peer in Cluster (Connected)
Hostname: 10.0.0.203
Uuid: 32a91fda-7ab8-4956-9f50-9b5ad59e0770
State: Peer in Cluster (Connected)
6. On owncloud1, create a replicated volume on probed nodes:
1
2
$ gluster volume create rep-volume replica 3 10.0.0.201:/storage/brick 10.0.0.202:/storage/brick 10.0.0.203:/storage/brick
volume create: rep-volume: success: please start the volume to access data
7. Start the replicated volume on owncloud1:
1
$ gluster volume start rep-volume
8. Ensure the replicated volume and processes are online:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ gluster volume status
Status of volume: rep-volume
Gluster process                                         Port    Online  Pid
------------------------------------------------------------------------------
Brick 10.0.0.201:/storage/brick                         49152   Y       3679
Brick 10.0.0.202:/storage/brick                         49152   Y       5253
Brick 10.0.0.203:/storage/brick                         49152   Y       6140
NFS Server on localhost                                 2049    Y       3730
Self-heal Daemon on localhost                           N/A     Y       3710
NFS Server on 10.0.0.202                                2049    Y       5267
Self-heal Daemon on 10.0.0.202                          N/A     Y       5272
NFS Server on 10.0.0.203                                2049    Y       6162
Self-heal Daemon on 10.0.0.203                          N/A     Y       6157
Task Status of Volume rep-volume
------------------------------------------------------------------------------
There are no active volume tasks
9. We’ll mount the replicated volume on /var/www/html. Create the directory:
1
$ mkdir -p /var/www/html
10. Add following line into /etc/fstab to allow auto-mount:
1
localhost:/rep-volume /var/www/html   glusterfs   defaults,_netdev      0 0
11. Mount the GlusterFS to /var/www/html:
1
$ mount -a

Apache and PHP

* The following steps should be performed on owncloud1, owncloud2 and owncloud3.
1. ownCloud is recommended to run on PHP 5.4. To simplify the installation, install Remi YUM repository:
1
$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
2. Install all required packages with remi repository enabled:
1
$ yum install -y --enablerepo=remi httpd php php-mysql php-xml php-gd php-dom php-mbstring
3. Start Apache web server and enable it on boot:
1
2
$ service httpd start
$ chkconfig httpd on

Install ownCloud

The following steps should be performed on owncloud1.
1. Download ownCloud Community version from here and extract it under /var/www/html:
1
2
$ wget https://download.owncloud.org/community/owncloud-7.0.4.tar.bz2
$ tar -xjf owncloud-7.0.4.tar.bz2 -C /var/www/html
2. Assign correct ownership to ownCloud directory:
1
$ chown apache.apache -R /var/www/html/owncloud
3. Before we proceed with the ownCloud installation, we need to prepare the owncloud schema. From ClusterControl, go to Manage > Schema and Users > Create Database and create a database called 'owncloud'.
4. Create the database user under Privileges tab:
5. Assign the correct privileges for owncloud db user on database owncloud:
6. Open the browser and navigate to http://10.0.0.201/owncloud/ . You should see ownCloud installation page. Specify the configuration details for database to use MySQL/MariaDB with the created database name and user through virtual IP 10.0.0.200 port 33306:
After completion, you should see the welcome page as below:
ownCloud installation is now complete! You can now access the website using virtual IP, http://10.0.0.200/owncloud with auto-failover and load-balanced connections.

Verify the Architecture

1. Check the HAProxy statistics by logging into the HAProxy admin page at haproxy1 host port 9600. The default username/password is admin/admin. You should see some bytes in and out on the web_farm and s9s_33306_production sections:
2. Check and observe the traffic on your database cluster from the ClusterControl overview page at https://10.0.0.212/clustercontrol:
Congratulations, you have now deployed your highly available ownCloud infrastructure by clustering the load balancer, web, database and file system layers.