달력

09

« 2018/09 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
  •  
  •  
  •  
  •  

CentOS 센트OS - 파라미터 최적화 스크립트


첨부파일 참조하여 주세요 ~ 

check.centos.sh


root 루트로 실행해야 합니다.


스왑이 0 일때 (스왑 파일이 없는 경우) echo 로 출력되는 부분을 그대로 한줄씩 실행하면 됩니다.


대신 메모리가 1기가라면

dd if=/dev/zero of=/data/swapfile bs=1M count=1024


8기가라면

dd if=/dev/zero of=/data/swapfile bs=1M count=8192


이렇게 실행하시면 됩니다.


#!/bin/bash

#echo -e "32768\t61000" > /proc/sys/net/ipv4/ip_local_port_range
#$ sysctl -w net.ipv4.tcp_wmem="253952 253952 16777216"
#$ sysctl fs.file-max
#$ sysctl fs.file-nr 

echo "----------------------------------"
check_value=`getenforce`
echo "GetEnforce : ${check_value}"
echo "----------------------------------"
echo -e "Parameter\tNow\tRecommand"
echo "----------------------------------"

# Recommand value = 0
recom_value="0"
for check_param in net.ipv4.tcp_timestamps net.ipv4.conf.all.accept_source_route net.ipv4.ip_forward net.ipv4.conf.all.accept_redirects net.ipv4.tcp_tw_reuse
do
        check_param2=${check_param%*.*}
        check_param3=`echo ${check_param} | sed -e "s/${check_param2}//" | cut -c 2-`
        check_value=`sysctl -n ${check_param}`

        if [ "$check_value" -eq "${recom_value}" ]
        then 
                echo -e "${check_param3}\t${check_value}\t${recom_value}\t OK"
        else
                echo -e "${check_param3}\t${check_value}\t${recom_value}"
                read -s -n1 -p "    ${check_param3} ${check_value}->${recom_value} : Submit Now? (y/n) : " submit_yn
                if [ "$submit_yn" == "y" ]
                then
                        echo -e "\tsysctl -w ${check_param}=${recom_value}"
                        echo "$check_param = \"${recom_value}\"" >> /etc/sysctl.conf 
                fi
                echo ${submit_yn}
        fi
done

# Recommand value = 1
recom_value="1"
for check_param in net.ipv4.icmp_echo_ignore_broadcasts net.ipv4.conf.all.log_martians net.ipv4.tcp_syncookies net.ipv4.tcp_window_scaling 
do
        check_param2=${check_param%*.*}
        check_param3=`echo ${check_param} | sed -e "s/${check_param2}//" | cut -c 2-`
        check_value=`sysctl -n ${check_param}`

        if [ "$check_value" -eq "${recom_value}" ]
        then 
                echo -e "${check_param3}\t${check_value}\t${recom_value}\t OK"
        else
                echo -e "${check_param3}\t${check_value}\t${recom_value}"
                read -s -n1 -p "    ${check_param3} ${check_value}->${recom_value} : Submit Now? (y/n) : " submit_yn
                if [ "$submit_yn" == "y" ]
                then
                        echo -e "\tsysctl -w ${check_param}=${recom_value}"
                        echo "$check_param = \"${recom_value}\"" >> /etc/sysctl.conf 
                fi
                echo ${submit_yn}
        fi
done


check_value=`sysctl -n .net.ipv4.ip_local_port_range`
echo -e "Port.Range\t${check_value}\t1024\t65535"
check_value=`sysctl -n .net.ipv4.tcp_max_syn_backlog`
echo -e "MAX.BackLog\t${check_value}\t1024"

check_value=`sysctl -n net.ipv4.tcp_max_tw_buckets`
echo -e "TcpTW.Buckets\t${check_value}\t65536"

# check : ulimit -a / sysctl -n fs.file-nr
check_value=`sysctl -n fs.file-max`
echo -e "FS.FileMax\t${check_value}\t77052"
check_value=`sysctl -n net.core.netdev_max_backlog`
echo -e "NetdevMxBackLog\t${check_value}\t30000"
check_value=`sysctl -n net.core.somaxconn`
echo -e "MaxConnections\t${check_value}\t1024"

echo "----------------------------------------------------------------------------"
free -m
echo "----------------------------------------------------------------------------"
swap_size=`free -m | grep -i swap | awk '{print $2}'`
if [ "$swap_size" -eq "0" ]
then
        echo -e "----------------------------------------------------------------------------"
        echo -e "\tdd if=/dev/zero of=/data/swapfile bs=1M count=[1024|2048|8192]"
        echo -e "\tmkswap /data/swapfile"
        echo -e "\tswapon /data/swapfile"
        echo -e "\tchmod 600 swapfile"
        echo -e "\t/data/swapfile swap swap defaults 0 0 >> /etc/fstab"
        echo -e "----------------------------------------------------------------------------"
fi

ulimit -a
echo "----------------------------------------------------------------------------"

echo "sysctl -p"
sysctl -p


sysctl 이라는 명령어로 수정합니다.

수정할때에는 sysctl -w [파라미터] 로 수정하고, 적용은 sysctl -p 하면 됩니다.


Posted by 멋지다마라송
2018.07.10 00:21

AWS 리눅스 SSH 접속 계정 정리 Tech/Linux2018.07.10 00:21

AWS 리눅스 SSH 접속 계정 정리


Amazon Linux = ec2-user

RHEL5 = root 또는 ec2-user

Ubuntu = ubuntu

Fedora = fedora 또는 ec2-user

SUSE  = root 또는 ec2-user


그리고 SSH 접속할때 Public Key 로 접속하도록 설정했다면 SSH 클라이언트 프로그램에서 이를 지정해야 한다.


SecureCRT 인 경우,

이렇게 해당 세션에 대해서만 퍼블릭 키를 설정하고 사용하는게 좋다.


Putty 뿌띠의 경우, pem 파일 (AWS 기본 퍼블릭 키파일) 은 사용이 안되기 때문에

PuttyGen 이라는 프로그램으로 pem 파일을 ppk 로 변환해야 한다.




Posted by 멋지다마라송
2018.07.03 22:38

우분투 - 마리아디비 MariaDB 설치 Tech/Linux2018.07.03 22:38

https://downloads.mariadb.org/mariadb/repositories/#mirror=harukasan&distro=Ubuntu&distro_release=xenial--ubuntu_xenial&version=10.3


설치하고자 하는 OS 와 마리아 디비 버전을 선택하면 아래에 설치 방법이 나옵니다.


보통 저 5줄만 입력하면 설치가 끝납니다 ^_^


마리아 디비 다운로드 URL : https://downloads.mariadb.org/mariadb/repositories/


Here are the commands to run to install MariaDB on your Ubuntu system:


$ sudo apt-get install software-properties-common

$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

$ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://ftp.harukasan.org/mariadb/repo/10.3/ubuntu trusty main'


Once the key is imported and the repository added you can install MariaDB with:


$ sudo apt-get update

$ sudo apt-get install mariadb-server

Posted by 멋지다마라송

$ ulimit -a

...

open files                      (-n) 1024 <-- 기본값.

...


mysql> show global variables like '%open%';

+----------------------------+----------+

| Variable_name              | Value    |

+----------------------------+----------+

| have_openssl               | DISABLED |

| innodb_open_files          | 2000     |

| open_files_limit           | 1024     | <-- 기본값.

| table_open_cache           | 2000     |

| table_open_cache_instances | 16       |

+----------------------------+----------+

-------------------------------------------------------------------

vi /etc/profile 아래 세줄 추가.


#ulimit setting

ulimit -u 65535  # max number of process 수정

ulimit -n 65535  # open files 값 수정

-------------------------------------------------------------------

vi /etc/security/limits.conf 아래 여섯줄 추가.


*               soft    nofile          65535

*               hard    nofile          65535

root            soft    nofile          65535

root            hard    nofile          65535

mysql           soft    nofile          65535

mysql           hard    nofile          65535

-------------------------------------------------------------------

vi /lib/systemd/system/mysql.service 에서 [Service] 항목에 아래 두줄 추가.


LimitNOFILE=infinity

LimitMEMLOCK=infinity

-------------------------------------------------------------------

systemctl daemon-reload

우분투 재기동.

-------------------------------------------------------------------

mysql> show global variables like '%open%';

+----------------------------+----------+

| Variable_name              | Value    |

+----------------------------+----------+

| have_openssl               | DISABLED |

| innodb_open_files          | 2000     |

| open_files_limit           | 1048576  | <--

| table_open_cache           | 2000     |

| table_open_cache_instances | 16       |

+----------------------------+----------+


참고로, 디비 접속시 접속하는 서버의 DNS lookup 을 생략해주는게 당연히 좋습니다.

vi /etc/mysql/mysql.conf.d/mysqld.cnf


[mysqld]

skip-name-resolve



Posted by 멋지다마라송

GoAccess : web log parser - apache, nginx log viewer 웹로그 편하게 보기


go access 실행하기 전에 웹서버 로그 파일 사이즈를 줄이는게 좋습니다.


설치

설치는 여러가지를 지원하는데, 크게 깃헙을 통해 설치하는 것과, 소스파일 컴파일로 설치하는 방법 두가지가 있습니다.


1. 깃헙 설치.

$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=legacy 
$ make
# make install



2. 소스 컴파일로 설치.

$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz

goaccess-1.2.tar.gz


$ tar -xzvf goaccess-1.2.tar.gz $ cd goaccess-1.2/ $ ./configure --enable-utf8 --enable-geoip=legacy $ make # make install


데비안, 우분투인 경우.

$ echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
$ wget -O - http://deb.goaccess.io/gnugpg.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install goaccess



사용방법

콘솔에서 실시간으로 로그 파싱하기.

# tail -f access.log | goaccess -


콘솔에서 로그 파일 파싱하기.

# goaccess access.log access.log.1


웹페이지로 실시간 파싱하기.

# goaccess access.log -o /usr/share/nginx/html/your_site/report.html --real-time-html




 


Posted by 멋지다마라송


티스토리 툴바