sexta-feira, 29 de dezembro de 2017

SQL Training - Fundamental I

1. Introduction

This post gathers information about SQL Training, abording fundamental questions.

2. References


quarta-feira, 20 de dezembro de 2017

How to Use Windows 8 Performance Monitor to Analyse Your System Performance

1. Introduction


This post shows step-by-step how to configure Windows environment to collect performance counters.


2. Step by Step

2.1. Before Starting 


Performance tunning process is a cycle process. Maybe you don't find your major bootleneck on the first time, so you will need to iterate and refine performance counters until find it.

2.1. How to have a Quick Wins of performance



  • Run Task Manager (taskmgr) 



2.2. How to configure Windows Performance Monitor to Analyze your System Performance



3. References




domingo, 5 de novembro de 2017

Install Nexus on Ubuntu 16.04

1. Introduction

This post shows how to install Nexus on Ubuntu 16.04

2. Step by Step

2.1. Download install binary

$ cd /tmp
$ wget http://download.sonatype.com/nexus/3/nexus-3.6.0-02-unix.tar.gz

2.2. Install Nexus on /opt/nexus

tar -xvzf nexus-3.6.0-02-unix.tar.gz
$ sudo mv /tmp/nexus-3.6.0-02 /opt
$ sudo mv /opt/nexus-3.6.0-02 /opt/nexus

2.3. Configure Nexus 

a) Configure Nexus Port

sudo cp /opt/nexus/etc/nexus-default.properties /opt/nexus/etc/nexus-default.properties.bkp.2017-11-05 # take a backup
sudo vim /opt/nexus/etc/nexus-default.properties
    :
application-port=8081
    :

b) Add firewall rule to accept incomming call on nexus port 8081

$ sudo ufw allow 8081

c) Configure Nexus script - run_as_user

$ sudo cp /opt/nexus/bin/nexus /opt/nexus/bin/nexus.bkp.2017-11-05 # backup
$ sudo vim /opt/nexus/bin/nexus
    :
# user to execute as; optional but recommended to set
run_as_user='nexus'
NEXUS_HOME="/opt/nexus"

    :

d) Configure nexus users and group

$ sudo adduser --no-create-home --disabled-login --disabled-password nexus
Adding user `nexus' ...
Adding new group `nexus' (1002) ...
Adding new user `nexus' (1002) with group `nexus' ...
Not creating home directory `/home/nexus'.
Changing the user information for nexus
    :
Is the information correct? [Y/n] Y


e) Set files permission '/opt/nexus'

$ sudo chown -R nexus:nexus /opt/nexus


2.4. Deploying nexus and sonatype-work directories

$ sudo mkdir /var/lib/nexus
$ sudo mkdir /var/lib/nexus/sonatype-work
$ sudo chown -R nexus:nexus /var/lib/nexus

2.5. Run Nexus and check

$ su - nexus
$ whoami
nexus
$ /opt/nexus/bin/nexus start


3. References


Installing Tomcat 8 on Ubuntu Server 16.04

1. Introduction

This post shows step by step how to install Tomcat into Ubuntu Server 16.04.

2. Step-by-Step

2.1. Update system packages

$ sudo apt-get update


2.2 Create Tomcat User and Group

a)  Create 'tomcat' Group

$ sudo groupadd tomcat

b) Create 'tomcat' Group

$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat


2.3 Download Tomcat installer from mirror site

a) Open Tomcat mirror site in your browser and find out current available download version

+---------------------------------------------------------------------------------+
| http://apache.mirrors.ionfish.org/tomcat/tomcat-8/                              |
+---------------------------------------------------------------------------------+
| Index of /tomcat/tomcat-8                                                       |
|                                                                                 |
| Name                    Last modified      Size  Description                    |
| ../                                          -                                  |
| v8.0.47/                03-Oct-2017 08:50    -                                  |
| v8.5.23/                01-Oct-2017 18:31    -                                  |
|                                                                                 |
| Apache Server at apache.mirrors.ionfish.org Port 80                             |
+---------------------------------------------------------------------------------+

2.4 Download Tomcat install tar.gz for linux

$ cd /tmp
$ curl -O http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.23/bin/apache-tomcat-8.5.23.tar.gz


2.5. Install Tomcat 8 into /opt/tomcat

a) Unzipping into /opt/tomcat

$ sudo mkdir /opt/tomcat
$ sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1


b) Adjusting permisson for 'tomcat' user

$ cd /opt/tomcat
$ sudo chgrp -R tomcat /opt/tomcat
$ sudo chmod -R g+r conf
$ sudo chmod g+x conf
$ sudo chown -R tomcat webapps/ work/ temp/ logs/

2.6. Create a systemd Service file for Tomcat

a) Checking JAVA_HOME

$ sudo update-java-alternatives -l
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64

b) Create systemd service file on /etc/systemd/system/tomcat

$ sudo vim /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target


c) Reload systemd service to apply change

$ sudo systemctl daemon-reload
sudo systemctl start tomcat

d) Configure tomcat service to automatically starts on boot

sudo systemctl enable tomcat

e) Manually starting, stopping and status

$ sudo /opt/tomcat/bin/catalina.sh start
sudo /opt/tomcat/bin/catalina.sh stop
$ sudo /opt/tomcat/bin/catalina.sh status

2.7. Ajust firewall rule

a) Checking if

$ service ufw status
   ufw.service - Uncomplicated firewall
   Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab
   Active: active (exited) since Sun 2017-11-05 19:17:17 BRST; 12min ago
   Process: 376 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SU
   :

b) Add firewall rule to accept incomming call on Tomcat port 8080

$ sudo ufw allow 8080

2.8. Configure Tomcat Web Management Interface

a) Edit tomcat-users.xml, be carefull with remarks "<!--" "--->"

$ sudo vim  /opt/tomcat/conf/tomcat-users.xml
        :
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
        :
  <user username="admin" password="admin" roles="manager-gui,admin-gui,tomcat"/>

        :
</tomcat-users>
        :


b) Edit context.xml, 

sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
     :
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>


2.9. Open Tomcat in browser

a) Open default Tomcat page

b) Open Tomcat Documentation page





3. References


Installing OpenJDK (8 default for Ubuntu 16.04)

1. Introduction

This  post shows how to install Open JDK 8 default for Ubuntu 16.04.

2. Step By Step

2.1. Update package list

$ sudo apt-get update


2.2. Install Java JDK 8 default

$ sudo apt-get install default-jdk


2.3. Testing Java Compiler 

$ javac -version


3. References


quinta-feira, 2 de novembro de 2017

Install Jenkins on Ubuntu 16.04

1. Introduction

2. Step by Step

2.1. Prerequisites

2.1.a. Check Memory available


  • 1 GB of RAM minimum; 
  • 4 GB desired;


2.1.b. System Update

$ sudo apt-get update

2.2. Install Jenkins


$ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
OK
$ cat /etc/apt/sources.list.d/jenkins.list
deb http://pkg.jenkins.io/debian-stable binary/
$ sudo apt-get update

2.3. Upgrade Jenkins version ( optional )


$ sudo apt-get update
$ sudo apt-get install jenkins

2.4. Cheking services


$ # Ubuntu/Debian (different from CentOs/Fedora) usually starts software after installation
$ # Jenkins will be started as a deamon service named 'jenkins'
$ # See /etc/init.d/jenkins for more details. Log file will be placed in /var/log/jenkins/jenkins.log.
$ # Config parameters like JENKINS_HOME and etc, will be captured on /etc/default/jenkins
$ # By default, Jenkins listen on port 8080. Edit /etc/default/jenkins to change port
$ # To start-stop-status service do: sudo service jenkins stop; sudo service jenkins start; sudo service jenkins status

2.5. Check/allow firewall rules

a) Check firewall status - Inactive? Great nothing to do


$ sudo ufw status
Status: inactive

b) Check firewall status - Active? add rule to allows Jenkins port

$ sudo ufw status
Status: active
:
8080                       ALLOW       Anywhere
:
$ sudo ufw allow 8080


2.6. Setting up Jenkins 


a) Access Jenkins interface on browser and you'll see "Unlock Jenkins screen"



$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

+------------------------------------------------+
| Unlock Jenkins                                 |
|    :       :                                   |
| /var/lib/jenkins/secrets/initialAdminPassword  |
| Administrator password                         | 
| [                   ]                          | <- paste here
+------------------------------------------------+

b) Install suggested plugins 


+------------------------------------------------+
| Customize Jenkins                              |
| +------------------+                           |
| |Install Suggested |                           |
| | Pluggins         |                           | <- click button
| +------------------+                           |
+------------------------------------------------+

c) Create first admin user


+------------------------------------------------+
| Create first admin user                        |
|   Username: [admin]                            |
|   Password: [admin]                            |
+------------------------------------------------+



3. References




quinta-feira, 20 de julho de 2017