Elastic Search + Kibana  설치 및 구동

 

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.1-amd64.deb

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.7.1-amd64.deb

 

sudo dpkg -i elasticsearch-7.7.1-amd64.deb

sudo dpkg -i kibana-7.7.1-amd64.deb

 

 

sudo service elasticsearch start

 

sudo service kibana start

 

 

 

yfkwon@DESKTOP-A0P47SN$ sudo service kibana stop

kibana stopped.

yfkwon@DESKTOP-A0P47SN$ sudo service elasticsearch stop

* Stopping Elasticsearch Server

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

wget https://dl.influxdata.com/telegraf/releases/telegraf_1.14.3-1_amd64.deb

 

sudo dpkg -i telegraf_1.14.3-1_amd64.deb

 

cd /etc/telegraf

 

yfkwon@DESKTOP-A0P47SN î‚° /etc/telegraf î‚° sudo mv telegraf.conf telegraf.conf_20200607

yfkwon@DESKTOP-A0P47SN î‚° /etc/telegraf î‚° vi telegraf.conf

yfkwon@DESKTOP-A0P47SN î‚° /etc/telegraf î‚° sudo vi telegraf.conf

yfkwon@DESKTOP-A0P47SN î‚° /etc/telegraf î‚° sudo service telegraf start

 

 

yfkwon@DESKTOP-A0P47SN î‚° ~ î‚° sudo service telegraf stop

telegraf process was stopped [ OK ]

 

 

Telegraf에서 system metric 수집하여 elasticsearch에 적재하기

 

Telegraf는 influxdata(사)에서 opensource로 제공하는 plugin 기반의 metric수집 server agent이다.

github url : https://github.com/influxdata/telegraf 

 

telegraf의 역할이 이해하기 어렵게 느껴질 수 있는데, 간단히 말하자면 아래와 같이 input, process, output이 가능하다.

 

Telegraf로 할 수 있는 일

System의 ram, cpu수치를 elasticsearch에 적재

Redis의 data를 elasticsearch에 적재

File log를 influxdb에 적재

 

즉, input plugin으로 뽑아낸 데이터를 output plugin이 지원하는 곳으로 보낼 수 있다.

 

System metric을 elasticsearch로 보내기

 

엘라스틱서치에 시스템 메트릭을 적재하면 kibana, grafana등의 시각화 도구로 쉽게 조회가 가능

 

 

System metric을 elasticsearch에 보내기 위해서는 아래와 같이 telegraf의 설정이 필요하다.

 

# telegraf agent 셋팅# telegraf가 설치된 폴더의 etc/telegraf.conf 설정[agent]

interval = "10s"

round_interval = true

metric_batch_size = 1000

metric_buffer_limit = 10000

collection_jitter = "0s"

flush_interval = "10s"

flush_jitter = "0s"

precision = ""

debug = false

quiet = false

hostname = ""

omit_hostname = false

 

 

### OUTPUT

[[outputs.elasticsearch]]

## 엘라스틱 서치의 full url을 적는다.(http/https 필수)

urls = [ "http://1.123.123.123:9200" ] # required.

## 엘라스틱 서치 타임아웃 시간

## 반드시 agent interval보다 시간으로 설정한다.

## > 그렇지 않으면 context deadline exceeded 에러가 발생한다.

timeout = "60s"

enable_sniffer = false

health_check_interval = "10s"

## elasticsearch에 사용할 index name 설정

index_name = "my-computer-metric-%Y.%m.%d" # required.

 

## 만약 telegraf가 template를 자동으로 만들게 하고싶다면 true 변경

manage_template = false

template_name = "telegraf"

overwrite_template = false

 

 

### INPUT

## 아래 값들은 system metric을 수집하기 위한 plugin이다.# Read metrics about cpu usage

[[inputs.cpu]]

## Whether to report per-cpu stats or not

percpu = true

## Whether to report total system cpu stats or not

totalcpu = true

## Comment this line if you want the raw CPU time metrics

fielddrop = ["time_*"]

 

 

# Read metrics about disk usage by mount point

[[inputs.disk]]

## By default, telegraf gather stats for all mountpoints.

## Setting mountpoints will restrict the stats to the specified mountpoints.

# mount_points = ["/"]

 

## Ignore some mountpoints by filesystem type. For example (dev)tmpfs (usually

## present on /run, /var/run, /dev/shm or /dev).

ignore_fs = ["tmpfs", "devtmpfs"]

 

 

# Read metrics about disk IO by device

[[inputs.diskio]]

## By default, telegraf will gather stats for all devices including

## disk partitions.

## Setting devices will restrict the stats to the specified devices.

# devices = ["sda", "sdb"]

## Uncomment the following line if you need disk serial numbers.

# skip_serial_number = false

 

 

# Get kernel statistics from /proc/stat

[[inputs.kernel]]

# no configuration

 

 

# Read metrics about memory usage

[[inputs.mem]]

# no configuration

 

 

# Get the number of processes and group them by status

[[inputs.processes]]

# no configuration

 

 

# Read metrics about swap memory usage

[[inputs.swap]]

# no configuration

 

 

# Read metrics about system load & uptime

[[inputs.system]]

# no configuration

 

# Read metrics about network interface usage

[[inputs.net]]

# collect data only about specific interfaces

# interfaces = ["eth0"]

 

[[inputs.netstat]]

# no configuration

 

[[inputs.linux_sysctl_fs]]

# no configuration

상기와 같이 설정하고, telegraf를 실행하면 elasticsearch에 data를 전송을 시작한다.

 

Elastic search의 data 확인

elasticsearch에 telegraf가 수집한 데이터가 잘 들어왔는지 확인하기 위해서 kibana를 사용했다.

 

kibana를 사용해서 index template를 'my-computer-metric-*'로 설정하고 나면 조회가 가능하다.

 

cpu, ram 등의 metric이 확인 된다.

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

sudo apt-get install -y apt-transport-https

 

sudo apt-get install -y software-properties-common wget

 

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

 

sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

 

sudo apt-get update

 

sudo apt-get install grafana

 

sudo service grafana-server start

 

sudo service grafana-server status

 

 yfkwon@DESKTOP-A0P47SN î‚° ~ î‚° sudo service grafana-server stop

[sudo] password for yfkwon:

* Stopping Grafana Server                                                                                         [ OK ]

 

 

 

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

CentOS 7에 Tomcat8을 설치 및 설정하는 예제를 진행하겠습니다. 테스트의 편의성을 위해 root 계정에서 진행하겠습니다.

 

1. open-jdk 1.8 설치 

 

jdk를 설치하기 바랍니다.

설치 방법은 아래 링크를 참조하기 바랍니다.

yfkwon.tistory.com/47?category=664685

 

 

2. tomcat 설치

 

tomcat은 설치하는 방법이 다양합니다. 이번 예제는 wget을 이용해 설치하겠습니다.

 

# wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.27/bin/apache-tomcat-8.5.27.tar.gz

 

// 압축 해체

# tar zxvf apache-tomcat-8.5.27.tar.gz

 

// 톰캣을 /usr/local/로 이동시키고 디렉토리 이름을 tomcat8로 변경

# mv apache-tomcat-8.5.27 /usr/local/tomcat8


3. tomcat 설정 및 환경 변수 등록

 

vi /usr/local/tomcat8/conf/server.xml

// vi /usr/local/tomcat8/conf/server.xml// 아래 설정을 찾아서 URIEncoding="UTF-8"을 추가한다.

 

...

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8" />

...

vi /etc/profile

...

 

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64

CATALINA_HOME=/usr/local/tomcat8

CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib-jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar

PATH=$PATH:$JAVA_HOME/bin:/bin:/sbin

export JAVA_HOME PATH CLASSPATH CATALINA_HOME

설정 후 아래 명령어 입력 

# source /etc/profile


3. tomcat 실행

 

startup.sh파일은 tomcat을 실행시키는 shell script입니다. 해당 파일을 실행시켜 tomcat을 작동시켜줍니다.

 

# /usr/local/tomcat8/bin/startup.sh

tomcat이 실행되고 있는지 확인합니다.

 

//톰캣 프로세스 확인

# ps -ef|grep tomcat8

 

// 8080 포트가 열려있는지 확인

# netstat -tln

 테스트해보기 위해 다음 명령어를 실행시켜줍니다.

 

# wget http://localhost:8080/

 

index.html 파일이 다운로드 되었다면 정상적으로 tomcat이 실행되고 있다는 의미입니다. 

 

index.html 파일은 기본적으로 실행되는 /usr/local/tomcat8/webapps/ROOT WebService에서 다운받은 것이며, 

 

http://localhost:8080 호출 시,  /usr/local/tomcat8/webapps/ROOT/index.jsp 파일이 index.html로 변환되어 다운됩니다.

 


4. systemctl 등록

 

vi /etc/systemd/system/tomcat8.service

# Systemd unit file for tomcat

[Unit]

Description=Apache Tomcat Web Application Container

After=syslog.target network.target

 

[Service]

Type=forking

 

Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/"

Environment="CATALINA_HOME=/usr/local/tomcat8"

Environment="CATALINA_BASE=/usr/local/tomcat8"

Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

 

ExecStart=/usr/local/tomcat8/bin/startup.sh

ExecStop=/usr/local/tomcat8/bin/shutdown.sh

 

User=root

Group=root

UMask=0007

RestartSec=10

Restart=always

 

[Install]

WantedBy=multi-user.target

 

 

# systemctl daemon-reload

# systemctl enable tomcat8

 

// tomcat8 실행

# systemctl start tomcat8


5. systemctl service 부팅 시 자동 실행

 

//부팅 시 자동 실행 서비스 등록

# systemctl enable tomcat8.service

//등록된 서비스 조회

# systemctl list-unit-files --type service |grep tomcat8

 

 

6. tomcat manager 설정 (해당 설정은 선택사항 입니다.)

 

tomcat manager란 tomcat 모니터링 및 어플리케이션 관리, WAR 배포 및 다양한 서비스를 제공해주는 관리 페이지입니다.

 

1) tomcat-users.xml 수정

 

vi /usr/local/tomcat8/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">

 

  <role rolename="manager"/>

  <role rolename="manager-gui" />

  <role rolename="manager-script" />

  <role rolename="manager-jmx" />

  <role rolename="manager-status" />

  <role rolename="admin"/>

  <user username="admin" password="패스워드" roles="admin,manager,manager-gui, manager-script, manager-jmx,  manager-status"/>

 

</tomcat-users>

 

 

2) 외부 접근 허용 설정

 

vi /usr/local/tomcat8/conf/Catalina/localhost/manager.xml

<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">          <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />

</Context>

설정 후, 서버 재시작

 

3) 테스트

 

http://자신의IP:8080/manager

위 주소를 입력하고 ID와 password를 입력면 아래와 같은 웹페이지가 노출됩니다.  

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,

1. open-jdk 1.8 설치

# yum install java-1.8.0-openjdk

# yum install java-1.8.0-openjdk-devel

설치가 완료되면 /usr/bin/경로에 java가 생성됩니다.

 

설치 가능한 JDK 버전 확인

 

yum list java*jdk-dvel

 

open-jdk-11 설치

 

yum -y install java-11-openjdk java-11-openjdk-devel

 


2. 환경변수 등록

/usr/bin/java 경로에 심볼릭링크가 걸려있기 때문에 실제 경로를 찾아서 환경변수에 등록해주어야 합니다.

 

# readlink -f /usr/bin/java

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java

실제 경로를 찾았으면 /etc/profile을 vi로 열어줍니다. 그리고 JAVA_HOMEPATHCLASSPATH를 등록합니다.

 

//# vi /etc/profile

 

...

 

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

 

export JAVA_HOME PATH CLASSPATH

환경 변수를 등록했다면 ssh연결을 재시작하거나 source /etc/profile 명렁어를 입력해줍니다.

 

등록한 환경 변수가 제대로 적용되었는지 테스트합니다.

 

# echo $JAVA_HOME

# echo $PATH

# echo $CLASSPATH


3. HelloWorld.java 컴파일 후 실행

# vi HelloWorld.java

public class HelloWorld{

public static void main(String[] args){

System.out.println("Hello World!!");

}

}

HelloWorld.java 파일을 컴파일하고 실행시켜서 테스트해봅니다.

 

# javac HelloWorld.java

# java -cp . HelloWorld

Hello World!!

반응형
블로그 이미지

조이풀 라이프

Lift is short, enjoy the life

,