SUSE Certified Administrator (SCA) - Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs

 Hôm nay sẽ nói về cách cài đặt Redis trên Suse Linux 15, nghe tới đây thì khi nói về Redis thông thường thì người ta sẽ nói đến dùng Docker cho nhanh vì chỉ cần docker-compose up là xong sẽ có cái dùng.


Ok,  và đây sẽ bỏ qua những khái niệm ở trên và sẽ bắt đầu cài đặt Redis trên SUSE Linux 15, nó khá đơn giản và khá nhanh như sau.


sudo zypper addrepo https://download.opensuse.org/repositories/server:/database/SLE_15/server:database.repo


sudo zypper refresh


sudo zypper install redis

Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs

Như vậy là xong thôi, giờ là test thử nó có chạy hay không


sudo redis-server


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs

Như trên thì phần default xem như chạy ok rồi đấy. Giờ câu hỏi sẽ đặt ra là nếu khởi động lại thì sao, nếu như nền tảng os khác thì systemclt enable bla bla thì trên Suse Linux sẽ như thế nào ? và custom config ra sao ? Muốn remote từ xa vào redis như thế nào ?

Ok, nếu config yêu cầu như trên thì cần tham khảo file config sau :


sudo ls /etc/redis/


Default trong này sẽ có file config mẫu, cần gì cứ xem trong đó ra sài, cái đơn giản nhất là như sau


sudo vi /etc/redis/redis.conf


bind 0.0.0.0
requirepass conchimnon@123
protected-mode no


Bind 0.0.0.0 để mọi nơi access từ xa, set password cho redis và cho phép remote, config trên là basic nhất để làm điều đó.

Sau khi đã có file config và cho nó chạy với file config đó dưới dạng background như sau


sudo redis-server /etc/redis/redis.conf --daemonize yes


Ping một phát mà nó Pong thì xem như ok


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs


Cuối cùng test kết nối từ xa thôi.


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs


Khi mọi thứ đã ok rồi thì sẽ tạo một service khi nào khởi động lại server thì Redis vẫn chạy ngầm


sudo vi /etc/systemd/system/redis.service


[Unit]
Description=Redis - phamquangloc.vn
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/sbin/redis-server /etc/redis/redis.conf
LimitNOFILE=10240
ExecStop=/usr/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target


sudo systemctl enable redis.service


sudo systemctl start redis.service


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs


Như trên là cách cài đặt khá là nhanh Redis trên SUSE Linux 15 và phần hay nhất của bài này sẽ là benchmark performance testing :)

 OK, sẽ dùng Nodejs test cho nhanh như sau, bắt đầu thôi.

Hiện tại kịch bản sẽ như sau : 


- Sẽ dùng /get-api kéo list api về và moij thứ sẽ đẩy vào redis. (Dùng ioredis để kết nối) và api này là kéo về từ https://covid19.mathdro.id

- Chạy /benchmark để nó test performance (api-benchmark)

- Sau khi benchmark xong nó sẽ xuất report thì /results sẽ đọc report đó lên

Ok đơn giản vậy thôi, xem đoạn code bên dưới để rõ hơn


const express = require("express");
const axios = require("axios");
const Redis = require("ioredis");
const app = express();
var apiBenchmark = require("api-benchmark");
const fs = require("fs");

const client = new Redis({port: 6379,host: "192.168.1.100",family: 4,password: "conchimnon@123",db: 0,});
client.on("connect", () => {
    console.log("Redis connected");
});

client.on("error", (err) => {
    console.log("Redis error: " + err);
});

const api = "https://covid19.mathdro.id/api/deaths";

app.get("/get-api", (req, res) => {
    try {
        client.get(api, (err, data) => {
            if (err) {
                console.log("Redis error: " + err);
            } else {
                if (data) {
                    console.log("Redis data: " + data);
                    res.send(data);
                } else {
                    axios.get(api).then((response) => {
                        client.set(api, JSON.stringify(response.data), "EX", 120);
                        res.send(response.data);
                    });
                }
            }
        }
        );
    } catch (error) {
        console.log(error);
    }
});

app.get('/benchmark',(req,res)=>{
    try {
        const services = {
            server1: "http://localhost:3000",
          };
        const options = {
            minSamples: 100,
          };
          
          var routerCache = { route1: "/get-api" };
        apiBenchmark.measure(
            services,
            routerCache,
            options,
            function (err, results) {
              apiBenchmark.getHtml(results, function (error, html) {
                fs.writeFile("results.html", html, function (err) {
                  if (err) return console.log(err);
                });
              });
            }
          );
          return res.send("Benchmark finished");
    } catch (error) {
        console.log(error);
    }
});

app.get('/results',(req,res)=>{
    try {
        res.sendFile(__dirname + "/results.html");
    } catch (error) {
        console.log(error);
    }
})

app.listen(process.env.PORT || 3000, () => {
    console.log("Node server started");
});


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs

OK, chạy test xem sao nhé :)


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs


Cuối cùng kết quả thu được sẽ như sau:


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs

Ok, bây giờ cache nó đã có data rồi, chạy tiếp nữa xem sao


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs

Thấy nó nhanh hơn rồi, ví code EX set 120 mà nên chơi thoải mái, làm phát nữa xem nhanh hơn không


Cài đặt Redis trên SUSE Linux 15 và benchmark performance testing với api-benchmark - Nodejs

Report cuối nhảy xuống còn 0.29 đến 0.30 so với trên thấp hơn khá nhiều, đúng là sự lợi hại của cache :)

OK, ở trên là phần nói sơ về benchmark performance testing với api-benchmark, dùng để bổ trợ cho bài viết Cài đặt Redis trên SUSE Linux 15 . Hy vọng ai đọc được bài này rãnh rỗi cũng làm bài testing để cảm nhận hơn về Cache :)


Nhãn:

Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Các bài trước đã có nói về cách cài đặt và cấu hình Nextcloud trên SUSE Linux 15 như thế nào rồi, vậy sau khi cài đặt xong thì ít nhất cũng ngồi chém gió xem nó có những gì nổi trội và có thật sự là một lựa chọn cho chung ta hay không.


OK, hôm nay sẽ show ra những cái thú vị của nó có như sau:


Files

Đối với phần file thì nó đáp ứng đầy đủ các như cầu uploads data lên private cloud, cái này hầu như thiết yếu và cần thiết, đối với hê lưu trữ thì vấn đề này đã giải quyết trơn tru ngon lành.

Như bài trước có nói cách cài đặt và cấu hình Collabora Online - Open source online office suite thì sau khi tích hợp vào bộ office online này thì sức mạnh online càng mãnh mẽ hơn, nếu ai đã dùng qua sharepoint thì sẽ hiểu Nextcloud tích hợp Collabora online nó sử dụng tốt như vậ đấy.

Chia sẽ public hay internal  thì cũng có hết, nói chung là bá đạo, nên phần này sẽ không nói nhiều.


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Photo

Đối với phần photo này thì upload hình ảnh, chia sẽ hình ảnh thì cũng tương tự như office, nên không cần bàn cải nhiều :)


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Activity

Đối với activity thì nó sẽ lưu lại nhật ký hoạt động trong quá trình thao tác sử dụng, như tạo file, sửa file bla bla, mục đích giúp bạn tra cứu lại quá trình làm việc tốt hơn thôi.


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Talk

Phần này khá thích có thể dùng chat nội bộ, video call khá là hay, nếu dùng cho nội bộ khá ok chia sẽ file, hướng dẫn qua chat, call video khá là ok, nhanh mau lẹ. Cái này khá là thích khi tích hợp vào Nextcloud.


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho


Đối với phần video call, Nextcloud có khuyến cáo khoản 10 user đổ lại cùng call thì sẽ mang lại cuộc gọi tốt nhất, cái này cũng ok. Tùy theo nhu cầu mà sử dụng, cái này tùy thuộc vào giải pháp để lựa chọn cho phù hợp.


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Mail

Có cả phần tích hợp mail, có thể cài imap trên này để check mail luôn một lần, cái này tùy vào mỗi người có thể thích hoặc không.


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Contacts

Đối với phần Contacts thì khá là tiện ích, có lẽ nó hỗ trợ lưu trữ thông tin liên lạc rất là tốt, chia group ra để phân biệt công việc khá ok.

Cái thích nhất trong contacts này là phần Circle , ví dụ như có một công viêc A có nhiều thành viên tham gia, tạo ra một Circle và quăng link qua thì họ sẽ có full info để liên hệ, việc này khá là thích.


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Calendar

Cái này thì khá hay rồi, ai làm việc liên quan đến mail nhiều, làm việc văn phòng nhiều thì không xa lạ gì về Calendar rồi :)


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho



Deck

Đối với nextcloud thì tích hợp  Deck làm cho bản thân khá là thích, nó giúp ta lên kế hoạch cho dự định sắp làm khá là hay. Nó áp dụng theo kiểu Kanban khá là hay, nếu bạn có tính toán phân định kế hoạch cho công việc của mình thì ứng dụng này rất tuyệt vời.

Hình bên dưới đây mô tả công việc na ná mục đích nói ở trên


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Apps to sync your files

Hầu như mọi nền tảng đều có apps để bạn sử dụng từ windowns, mac, android bla bla, bạn cũng có thể tải apps về và trỏ đến domain của nextcloud và xúc thôi.


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho


Map network drive

Nhiều chị em văn phòng hay khó tính, lâu lâu hay nói IT công ty cũ chị nó làm vậy đó em làm được không kakaka. OK, nhiều gặp trường hợp chị muốn tạo ổ share cho chị sài chứ không dùng apps gì gì đấy thì ok luôn.

Nextcloud hỗ trợ WebDAV(Web-based Distributed Authoring and Versioning) nó hỗ trợ map network drive khá là tốt, việc này giúp kết nối khá tốt, đới với windowns người dùng dễ hơn vì tránh cài nhiều app. 






Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho





Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho

và có quá nhiều cái để chém nên chém sơ nhiêu đây thôi, chủ yếu là cần cái gì và muốn làm cái gì mà thôi. :)


Reference - Chém gió về Nextcloud có những module tiện ích gì hay ho


Nhãn:

Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15

 Như bài trước có nói về cách cài đặt và cấu hình Collabora Online trên SUSE Linux 15, nói chung cách cài đặt thì khá là đơn giản và nhanh. Điểm chú ý là Collabora sử dụng SSL Cert format .pem, nên hôm nay sẽ là sao convert được cert đang ký từ ZeroSSL và áp vào dùng được trên Collabora.


Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15



OK, vào trang chủ ZeroSSL đăn ký nhanh

https://zerossl.com/


New Certificate - Đăng ký SSL cho domain của bạn, ở đây thì khá đơn giản nhập thông tin theo hướng dẫn. Đối với CSR & Contact thì có thể tạo mới và đem về dùng, hoặc có thể copy CSR đã tạo và lên đây đăng ký cũng được, cách đăng ký local thì tham khảo bài Cài đặt và cấu hình Collabora Online trên SUSEcó hướng dẫn.


Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15


Ở đây sẽ đăng ký trên ZeroSSL và để nó làm  mọi thứ cho mình, chỉ download về dùng cho khỏe, bên các bước như sau


Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15


Cứ theo hướng dẫn xác thực nha qua Email, DNS hay upload file lên host để xác thực, cứ theo gợi ý từ trang này đến khi mọi thứ ok hết, tải được gói Cert về khi đó tính tiếp.



Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15

Đến đây là phần quan trọng nhất, sau khi xác thực mọi thứ ok hết mới được tải gói Cert trên về, và chú ý quan sát thì đặc thù Collabora Online  chỉ dùng .pem, nhưng ZeroSSL tải về là .crt vs key.


OK, muốn dùng được nó thì phải convert nó sang .pem mới dùng được, nên phần này làm sao convert cho nó đúng mới là phần quan trọng nhất.


Tiến hành convert như sau :


cat certificate.crt ca_bundle.crt >> cert.pem


cat private.key >key.pem


openssl x509 -in ca_bundle.crt -out ca-chain.cert.pem  -outform PEM


Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15


Như vậy là xong, copy vào folder /etc/coolwsd/cert là xong, khởi động lại service là mọi thứ sẽ ok hết.


Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15


Mở web ra xem như thế nào, kiểm tra xem mọi thứ ok không nào.


Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15



Đăng ký và cấu hình SSL certificates(ZEROSSL) cho Collabora Online trên SUSE Linux 15


Ở trên là cách convert SSL .crt được tạo ra từ ZeroSSL sang .pem để phục vụ cho  Collabora Online - Open source online office suite. 


Đây là một ví dụ điển hiền để hỗ trợ chuyển đổi format SSL nhanh nhất, nó không những hỗ trợ cho bào này, mà tương lai nếu có cần chuyển đổi để phục vụ mục đích khác cũng dễ dàng. Tương tự nếu SSL mua từ các dịch vụ khác, khi nhân gói Cert về thì cách sử dụng cũng tương tự .:)



Nhãn: ,

Cài đặt và cấu hình Collabora Online trên SUSE 15 Linux - Open source online office suite

 Như bài trước nói về Cài đặt và cấu hình Nextcloud trên SUSE 15 Linux  thì có nói sơ qua cách cài đặt, cấu hình ... Bên trong module của Nextcloud có phần Office, thì có nhiều cách chọn lựa như là dùng miễn phí của Collabora Online (Use the built-in CODE - Collabora Online Development Edition) hay là dùng trial bla bla. 


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite

Cũng như khuyến cáo khi dùng miễn phí vậy thì sẽ không ổn định nếu số lượng người dùng của bạn tăng lên, vậy mới có bài hôm này : Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite (Use your own server - Collabora Online).

Ok, bắt đầu cài đặt khá đơn giản như sau

Đầu tiên thì import signing key


wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && sudo rpm --import repomd.xml.key


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite

Tiếp theo thì thêm CODE vào package repositories


zypper ar 'https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-opensuse15' 'CODE'


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


sudo zypper mr -r 'CODE'


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


Cuối cùng là cài đặt thôi, khá là nhanh và đơn giản


zypper ref && sudo zypper in coolwsd CODE-brand


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


Phần quan trọng nhất sẽ là config sao cho nó chạy, để làm được điều này điều quan trọng nhất là chịu khó đọc file config của nó.


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


Để chạy lên được cơ bản chỉ cần config 2 phần sau (Tùy vào nhu cầu mong muốn thì edit lại file config cho phù hợp).

Certificate SSL (Truyền vào Cert, CA, Key) - Chỉ sử dụng được Base64 encoded .pem


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


openssl genrsa -out key.key 2048


openssl rsa -in key.key -out key.key


openssl req -sha256 -new -key key.key -out ca-chain.cert.csr


cat ca-chain.cert.crt key.key > cert.pem


openssl x509 -req -sha256 -days 365 -in ca-chain.cert.csr -signkey key.key -out ca-chain.cert.pem


openssl rsa -in key.key -text > key.pem


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite

Cái thứ 2 là Backend storage, nếu  chạy trên các server khác nhau thì cần allow cho nó.


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


systemctl enable coolwsd


systemctl start coolwsd


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite

Xử lý phần Firewall xong là access được ngay, nếu cần check log của service này thì


journalctl -u coolwsd


Reverse proxy 

Ở đây dùng Apache, có thể tham khảo cách cài apache như sau : cài apache suse 15 linux, cái này thì khá đơn giản rồi.

Đối với Reverse proxy  thì muốn dùng cũng được, không dùng cũng được vì trỏ thẳng về port 9980 thì vẫn chạy ngon lành, còn muốn dùng thì tham khảo sau.

vi /etc/apache2/vhosts.d/office.phamquangloc.vn.conf


Listen 443
<VirtualHost 192.168.1.101:443>
    ServerName office.phamquangloc.vn
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCertificateFile /etc/coolwsd/cert/cert.pem
    SSLCertificateKeyFile /etc/coolwsd/cert/key.pem
    SSLCertificateChainFile /etc/coolwsd/cert/ca-chain.cert.pem
    ########################################
    # Reverse proxy for Collabora Online
    #
    ########################################
    AllowEncodedSlashes NoDecode
    SSLProxyEngine On
    ProxyPreserveHost On
    # cert is issued for collaboraonline.example.com and we proxy to localhost
    SSLProxyVerify None
    SSLProxyCheckPeerCN Off
    SSLProxyCheckPeerName Off
    # static html, js, images, etc. served from coolwsd
    # browser is the client part of Collabora Online
    ProxyPass           /browser https://127.0.0.1:9980/browser retry=0
    ProxyPassReverse    /browser https://127.0.0.1:9980/browser
    # WOPI discovery URL
    ProxyPass           /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
    ProxyPassReverse    /hosting/discovery https://127.0.0.1:9980/hosting/discovery
    # Capabilities
    ProxyPass           /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
    ProxyPassReverse    /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities

    # Main websocket
    ProxyPassMatch      "/cool/(.*)/ws$"      wss://127.0.0.1:9980/cool/$1/ws nocanon


    # Admin Console websocket
    ProxyPass           /cool/adminws wss://127.0.0.1:9980/cool/adminws


    # Download as, Fullscreen presentation and Image upload operations
    ProxyPass           /cool https://127.0.0.1:9980/cool
    ProxyPassReverse    /cool https://127.0.0.1:9980/cool
    # Compatibility with integrations that use the /lool/convert-to endpoint
    ProxyPass           /lool https://127.0.0.1:9980/cool
    ProxyPassReverse    /lool https://127.0.0.1:9980/cool
</VirtualHost>


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


Khởi động lại Apache và kiểm tra thành quả như thế nào.

Tải app Collabora Online về và test thôi



Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite




Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite


Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite



Cài đặt và cấu hình Collabora Online  trên SUSE 15 Linux - Open source online office suite

OK, đơn giản vậy là xong, nếu tích hợp office vào nextcloud thì nên dựng server riêng để phục vụ số lượng người dùng nhiều để đạt hiệu quả tốt hơn. Nếu dùng cá nhân thì không cần cho lắm, tùy vào mục đích àm lựa chọn.

Hôm sau sẽ ngồi chém gió các module hay ho và hữu ích mà nextcloud mang lại :)



Nhãn: