kibana 설치

Elasticsearch 2020. 11. 20. 15:29

 

@공개키 다운로드

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

 

@ repo 설정

vi /etc/yum.repos.d/kibana.repo

[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yum install kibana

 

 

@Systemd 등록 및 자동실행

chkconfig --add kibana

systemctl daemon-reload

systemctl enable kibana.service

 

@ 기본포트 : 5061 개방

 

@기본 환경설정

vi /etc/kibana/kibana.yml

server.port: 5601 <-- 기본포트

server.host:"192.168.0.50" 기본 호스트

elasticsearch.hosts: "192.168.0.50:9200" <-- 같은 서버내 있다면 localhost:9200 설정

 

@시작과 종료

systemctl start kibana.service

systemctl stop kibana.service

 

 

[참고] www.elastic.co/guide/en/kibana/current/rpm.html

 

 

반응형
블로그 이미지

visualp

c#, java

,

@설정파일 위치

/etc/sysconfig/elasticsearc

 

JAVA_HOME

설치시 기본 embead 됨으로 별도로 설정할 필요 없음

MAX_OPEN_FILES

열린 파일의 최대 수, 기본값은 65535.

MAX_LOCKED_MEMORY

기본은 unlimited, 메모리 limit을 줄경우 설정

MAX_MAP_COUNT

기본값은 262144.
프로세스가 가질 수 있는 최대한의 MAP 메모리 영역수

ES_PATH_CONF

기본 구성파일 경로
/etc/elasticsearch
포함하고 있는 파일
elasticsearch.yml, jvm.options, log4j2.properties

ES_JAVA_OPTS

JVM옵션 설정

RESTART_ON_UPGRADE

default =false
패키지를 업그레이드 하게 되면 재시작 해야함
클러스터의 업그레이드로 인해서 지속적인 샤드 발생 ->
네트워크 트래픽 증가 (원인)

 

rpm 설치시 directory layout(디렉토리 구조)

TypeDescriptionDefault LocationSetting

home

Elasticsearch home directory or $ES_HOME

/usr/share/elasticsearch

 

bin

Binary scripts including elasticsearch to start a node and elasticsearch-plugin to install plugins

/usr/share/elasticsearch/bin

 

conf

Configuration files including elasticsearch.yml

/etc/elasticsearch

ES_PATH_CONF

conf

Environment variables including heap size, file descriptors.

/etc/sysconfig/elasticsearch

 

data

The location of the data files of each index / shard allocated on the node. Can hold multiple locations.

/var/lib/elasticsearch

path.data

jdk

The bundled Java Development Kit used to run Elasticsearch. Can be overridden by setting the JAVA_HOME environment variable in /etc/sysconfig/elasticsearch.

/usr/share/elasticsearch/jdk

 

logs

Log files location.

/var/log/elasticsearch

path.logs

plugins

Plugin files location. Each plugin will be contained in a subdirectory.

/usr/share/elasticsearch/plugins

 

repo

Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here.

Not configured

path.rep

 

반응형
블로그 이미지

visualp

c#, java

,

os : centos 7.x

 

@Elasticsearch PGP KEY 추가

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

 

@RPM repository 추가

vi /etc/yum.repos.d/elasticsearch.repo

 

[elasticsearch]

name=Elasticsearch repository for 7.x packages

baseurl=https://artifacts.elastic.co/packages/7.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=0

autorefresh=1

type=rpm-md

 

@rpm 설치

yum install --enablerepo=elasticsearch elasticsearch

 

@systemd등록 -> 부팅시 자동 실행

chkconfig --add elasticsearch

systemctl daemon-reload

systemctl enable elasticsearch.service

 

@memory , file unlimited 설정

vi /etc/security/limits.conf

elasticsearch hard memlock unlimited
elasticsearch soft memlock unlimited
elasticsearch hard nofile 65536
elasticsearch soft nofile 65536
elasticsearch hard nproc 65536
elasticsearch soft nproc 65536

 

@서비스 시작시 memory lock -> 무한 설정

vi /usr/lib/systemd/system/elasticsearch.service

[Service]

LimitMEMLOCK=infinity <-- 추가

 

위 설정을 하지 않는다면

memory locking requested for elasticsearch process but memory is not locked 

오류가 발생 할 수 있음

 

@환경설정

vi  /etc/elasticsearch/elasticsearch.yml

최초 구동을 위해서는 아래 3가지는 반드시 설정 해줘야함 

node.name:master

discovery.seed_hosts: ["192.168.0.50","::1"]  <-- 서버 아이피 설정

cluster.initial_master_nodes: ["master"]  <-- 마스터 노드명

 

위 설정을 하지 않는다면

 the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

 

 

@실행 / 종료

start : service elasticsearch start

end :  service elasticsearch stop

 

[참조] www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html

반응형
블로그 이미지

visualp

c#, java

,

c# 윈도우 공유폴더 접근

C# 2020. 10. 15. 12:46

using System.Reflection;
using System.Runtime.InteropServices;
using System.ComponentModel;

public class YourClass {
[DllImport("mpr.dll")]
private static extern int WNetAddConnection2A(ref NetResource pstNetRes, string psPassword, string psUsername, int piFlags);
[DllImport("mpr.dll")]
private static extern int WNetCancelConnection2A(string psName, int piFlags, int pfForce);

[StructLayout(LayoutKind.Sequential)]
private struct NetResource {
    public int iScope;
    public int iType;
    public int iDisplayType;
    public int iUsage;
    public string sLocalName;
    public string sRemoteName;
    public string sComment;
    public string sProvider;
}

private const int RESOURCETYPE_DISK = 0x1;

 

 

 

private void LoginToShare(string serverName, string shareName, string user, string password) {
        string destinationDirectory = string.Format(@"\\{0}\{1}", serverName, shareName);

        NetResource nr = new NetResource();
        nr.iScope = 2;
        nr.iType = RESOURCETYPE_DISK;
        nr.iDisplayType = 3;
        nr.iUsage = 1;
        nr.sRemoteName = destinationDirectory;
        nr.sLocalName = null;

        int flags = 0;
        int rc = WNetAddConnection2A(ref nr, password, user, flags);

        if (rc != 0) throw new Win32Exception(rc);
    }

    private void LogoutFromShare(string serverName, string shareName) {
        string destinationDirectory = string.Format(@"\\{0}\{1}", serverName, shareName);
        int flags = 0;
        int rc = WNetCancelConnection2A(destinationDirectory, flags, Convert.ToInt32(false));
    }

 

c#을 이용하여 공유폴더 접근하는 방법

 

[원문] http://www.nullskull.com/q/10116970/accessing-shared-folder-on-a-network-using-c-code.asp

반응형
블로그 이미지

visualp

c#, java

,

public static void SaveJpeg(string path, Image img, int quality)
        {
            if (quality < 0 || quality > 100)
                throw new ArgumentOutOfRangeException("quality must be between 0 and 100.");

            // Encoder parameter for image quality
            EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
            // JPEG image codec
            ImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
            EncoderParameters encoderParams = new EncoderParameters(1);
            encoderParams.Param[0] = qualityParam;
            img.Save(path, jpegCodec, encoderParams);
        }

        /// <summary>
        /// Returns the image codec with the given mime type
        /// </summary>
        private static ImageCodecInfo GetEncoderInfo(string mimeType)
        {
            // Get image codecs for all image formats
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

            // Find the correct image codec
            for (int i = 0; i < codecs.Length; i++)
                if (codecs[i].MimeType == mimeType)
                    return codecs[i];

            return null;
        }

반응형
블로그 이미지

visualp

c#, java

,

using System;

class Program {
    static void Main(string[] args) {
        System.AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;
        throw new Exception("Kaboom");
    }

    static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e) {
        Console.WriteLine(e.ExceptionObject.ToString());
        Console.WriteLine("Press Enter to continue");
        Console.ReadLine();
        Environment.Exit(1);
    }
}

// c#에서 Console(콘솔) 어플리케이션에서 글로벌 에러 처리
   반복 작업시 유용하게 이용

반응형
블로그 이미지

visualp

c#, java

,

c# mediaplayer 재생 하기 , c# play mp3 by media player

 

c#  add mediaplayer component
Choose
 Tool Box Items->Com Components->Windows Media Player

player.URL="재생 주소";
주소만 할당해주면 재생됨

반응형
블로그 이미지

visualp

c#, java

,

c# cefsharp filedownload 구현

C# 2020. 10. 15. 12:26

/IDownloadHandler 의 구현체를 만들어서  DownloadHandler 를 등록 해주면된다.
// 아래소스는 updated에서 다운로드되는 상황을 체크 할 수 있으며
// downloadItem.IsComplete 다운로드가 완료되었을 때 파일을 실행하도록 구현함
// 상황에 따라서 확장자에 맞게 처리 하면됨.

 chromebrowser.DownloadHandler = new DownloadHandler();
==========================================================
internal class DownloadHandler : IDownloadHandler

    {

        public object OnDownloadUpdatedFired { get; private set; }

        public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)

        {

            if (!callback.IsDisposed) {

                using (callback) {

                    callback.Continue(@"C:\Users\" +

                             System.Security.Principal.WindowsIdentity.GetCurrent().Name +

                             @"\Downloads\" +

                             downloadItem.SuggestedFileName,

                         showDialog: true);

                }

            } 

            

        }

        public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)

        {

            if (downloadItem.IsComplete)

            {

                if (@downloadItem.FullPath != "")

                {

                    Process.Start(@downloadItem.FullPath);

                }

            }

        }

    }

반응형
블로그 이미지

visualp

c#, java

,