ElasticSearch Version check

  • 6.8

 

Download logstash pkg

Link

Install Command

  • wget https://artifacts.elastic.co/downloads/logstash/logstash-6.8.0.rpm
  • sudo yum install logstash-6.8.0.rpm

Install amazon_es plugin for logstash

  • /usr/share/logstash/bin/logstash-plugin list logstash-output

IF 'amazon_es' not exist, install amazone_es for logstash output

  • sudo /usr/share/logstash/bin/logstash-plugin install logstash-output-amazon_es

사용자의 실수를 방지하기 위해서 설정할 수 있다.

 

Termination Protection이 설정 된경우 아래와 같은 경고 화면이 나오고

Yes, Terminate 버튼이 비활성화 되어있다.

ec2 terminate which protected termination instance

설정은 간단하다

setup menu

 

Yes, Enable 버튼을 클릭한다.

세팅 끝이고

이 인스턴스를 terminated 시키기 위해서는

같은 메뉴에서 Yes, Disable을 클릭하면 된다.

상황

AWS의 market place에서 구매해서 사용하던 기존 openvpn의 사용자를 넘어서게 되어서

추가 openvpn을 구매하고 다시 세팅을 하게 되었다.

 

기존 설정하고 전부 동일하게 맞췄지만 다른 VPC로 통신을 못한다. 

맞춘 설정

  • Routing Table 설정
  • sysctl.conf에 net.ipv4.ip_forward = 1 설정
  • OpenVPN Server에서 넘어온 것을 받아줄 다른 VPC에 OpenVPN Client 세팅 (autologin)

별짓을 다해도 안되었는데 팀장님이 찾아주셨다.

 

설명

EC2 Instaces에서

Networking - Change Source/Dest. Check 옵션

EC2의 탄력적 네트워크 인터페이스에서 원본 또는 대상 확인 변경

 

Default 설정

  • 매뉴얼: 이 속성을 비활성화하면 인스턴스에서 대상이 특별히 해당 인스턴스로 지정되지 않은 네트워크 트래픽을 처리할 수 있습니다.
  • 주고받는 패킷의 src, dst를 체크하고 src가 본인이 아니면 막아버리는 옵션으로 보인다.
  • 좀 해깔리는데 StatusEnabled 인것만 확인하면 된다.

Status Enabled

 

즉, 지금하려는 case 처럼 Routing을 수행하려는 EC2 instance 에서는 이 옵션을 꺼야 한다.

매뉴얼에 나와있는대로 특별히 해당 인스턴스로 지정되지 않은 네트워크 트래픽을 처리해야 하는 상황이기때문.

 

옵션 끄고난 후 화면

Status Disabled

기존 800G 디스크를 사용하고 있는 DB 서버에서

DB를 백업해야하는 상황이다.


xtrabackup을 사용하려는데

남아있는 디스크가 얼마 되지 않아서

백업을 위한 텅빈 디스크가 필요하다.


http://sfixer.tistory.com/entry/%EB%94%94%EC%8A%A4%ED%81%AC-%EB%B3%BC%EB%A5%A8-%EC%82%AC%EC%9D%B4%EC%A6%88-%EC%A6%9D%EA%B0%80%EC%8B%9C%ED%82%A4%EA%B8%B0

이전에 작성했던 나의 포스트를 참고해서 시작했다.


마우스로 EC2로 가서

Elastic Bloack Store의 Volume을 클릭하고

클릭클릭... 500G 만들거니까 클릭클릭..

원하는 인스턴스에 Attach까지 


음.. 간단하군

이제 실제로 붙여 볼까.

아, 역시 그냥 하면 당연히 안되지 😭


[ec2-user@ip-sfixer ~]$ lsblk                                                  

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT                                    

xvda    202:0    0  800G  0 disk                                               

└─xvda1 202:1    0  800G  0 part /                                             

xvdf    202:80   0  500G  0 disk                                               

[ec2-user@ip-sfixer ~]$ sudo mount /dev/xvdf /Storage                          

mount: mount point /Storage does not exist                                     

                                               

 

왠지 마운트 하기전에 디스크 타입을 맞춰야 할듯하다.


https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-using-volumes.html

 

참고해보니 있다. 아래의 순서로 명령을 수행한다.


 

[ec2-user@ip-sfixer ~]$ lsblk                                                     

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT                                       

xvda    202:0    0  800G  0 disk                                                  

└─xvda1 202:1    0  800G  0 part /                                                

xvdf    202:80   0  500G  0 disk                                                  

                                                                               

[ec2-user@ip-sfixer ~]$ sudo file -s /dev/xvdf                                    

/dev/xvdf: data                                                                   

[ec2-user@ip-sfixer ~]$ sudo file -s /dev/xvda1                                   

/dev/xvda1: Linux rev 1.0 ext4 filesystem data, UUID=fa5b665e-c3ee-4596-ac88-ae39494c7bf2 (needs journal recovery) (extents) (large files) (huge files)

                                                                               

[ec2-user@ip-sfixer ~]$ sudo mkfs -t ext4 /dev/xvdf                               

mke2fs 1.42.12 (29-Aug-2014)                                                      

Creating filesystem with 131072000 4k blocks and 32768000 inodes                  

Filesystem UUID: c73a1534-0bd3-4c52-9ec5-25b6f0d3945e                             

Superblock backups stored on blocks:                                              

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,       

        102400000                                                                 

                                                                                  

Allocating group tables: done                                                     

Writing inode tables: done                                                        

Creating journal (32768 blocks): done                                             

Writing superblocks and filesystem accounting information: done                   

                                                                                  

[ec2-user@ip-sfixer ~]$ sudo file -s /dev/xvdf                                    

/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=c73a1534-0bd3-4c52-9ec5-25b6f0d3945e (extents) (large files) (huge files)

                                                                               

[ec2-user@ip-sfixer ~]$ sudo mkdir /Storage                                       

[ec2-user@ip-sfixer ~]$ sudo mount /dev/xvdf /Storage/                         

[ec2-user@ip-sfixer ~]$ cd /Storage/                                           

[ec2-user@ip-sfixer Storage]$ ll



제대로 되었다. 완료


Grafana와 Zabbix를 연동해서

사설 클라우드의 서버를 모니터링하는데 쓰고 있었는데

AWS에서 사용중인 Elasticache, SQS, RDS도 함께 사용하고 있으니

이를 통합해서 보고 싶은 욕구가 생겼다.


역시나 이미 누군가 구현해놨다..😨

심지어 grafana를 설치할때 같이 설치 되어있어서 추가 설치도 필요가 없다.
그럼 그걸 연동하기 위한 세팅 방법에 대해서 여기에 기록해둬야겠다.


문서에 간단하게 나와있다.
http://docs.grafana.org/features/datasources/cloudwatch/#metric-query-editor




Data Sources를 클릭



+Add data srouce 클릭



Type에서 Cloudwatch 선택



AWS의 IAM 인증받고 발급했던 개인 액세스, 시큐릿 키가 있을텐데

(이건 awscli 사용하거나 python boto3를 쓰건 어쨌건 일반적으로 가지고 있으니 패스)


아래처럼 직접 키값을 넣어도 되고


물론 키값을 넣고 나면 일단은 아래처럼 안 보이게 해준다.

센스있는 grafana..



여튼 아래와 같이 설정해주고 Save & Test로 저장한다.




참고로 Default를 체크하고 안하고는 다음에 직접 사용할때와 연관있다.

그럼 이제 진짜 추가해보자.


그래프를 선택하고




Edit 화면에서 Metrics에 가서 저기 default 부분을 눌러준다.

일단 현재 사용하는 곳은 zabbix가 기본이라서 위의 설정에서 Default에 'v' 체크가 없는데

CloudWatch를 주로 사용하면 default로 체크하면 될듯 하다.




대략 아래처럼 해주면 그래프에 모아서 볼 수 있다. (일부 정보는 모자이크 처리)

물론 아래의 그래프는 CloudWatch에 가면 똑같이 볼 수 있다.

참고로 Dimensions를 세팅해줘야 원하는 아이템에 대해서 볼 수 있다.



나머지는 그래프 보기 설정만 만져주면 끝.

생각보다 매우 간단하다.

아,, ssh 키를 뭔가 건드린거 같다. 

접속이 아예 안되서 뭐 어떻게 할 방법이 없다. 😭


디스크를 볼륨을 떼서 다른 EC2 인스턴스에 붙여서 처리하는 수밖에 없지.

근데 뒤져보니 User Data기능이 있다.

부팅할 때 내가 원하는 명령을 실행시켜준다.




헛!

그렇다면 이걸로 하면 구지 디스크 볼륨 떼었다 붙였다 안해도 되겠군!

User Data에만 내가 원하는 명령어를 세팅하고

EC2 인스턴스를 껐다 켜기만 하면 해결 되겠군


시작 시 Linux 인스턴스에서 명령 실행

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/user-data.html

이거 적으면서 보니 저거 제목 번역이 잘 못 번역되어있다...

(원문: Running Commands on Your Linux Instance at Launch)

아놔 내 삽질한 아까운 시간들...



아무리 해도 안된다.

#cloud-init으로 하거나 #!/bin/bash

안된다. 😭

 

씩씩 거리면 찾아봤다.

https://stackoverflow.com/questions/27086639/user-data-scripts-is-not-running-on-my-custom-ami-but-working-in-standard-amazo

 

.. 저방식은

말그대로 인스턴스 생성하고 정말 처음 기동할 쓰는거다.

 

행히 훜으로 건드리는 방법이 있다.

아래와 같이 하니까 잘된다.


#cloud-boothook 을 가장 위에 적어주니까 된다.


최초 부팅

 

#!/bin/bash

yum install -y gcc

 

 

이후 재부팅

#cloud-boothook

#!/bin/bash

yum install -y patch;

yum install -y zlib;

yum install -y zlib-devel;

yum -y install openssl-devel;

wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gz -P /home/ec2-user;

 

이후 재부팅

#cloud-boothook

#!/bin/bash

gunzip /home/ec2-user/openssh-7.6p1.tar.gz

 


아놔.. 어이없는 문제가 하나 더있다.


tar 명령어가 안 먹힌다.

옵션이 문제인가 싶지만 다 안된다. 😭😭


 

#cloud-boothook

#!/bin/bash

/usr/bin/tar -xf /home/ec2-user/openssh-7.6p1.tar

/usr/bin/tar xf /home/ec2-user/openssh-7.6p1.tar

/usr/bin/tar xopf /home/ec2-user/openssh-7.6p1.tar

 

 


어처구니 없게도 tar 명령 실행하기 전에

change directory 해주면 먹힌다.


#cloud-boothook
#!/bin/bash
cd /home/ec2-user
/bin/tar xf /home/ec2-user/nginx-1.12.2.tar

 




로그 백업하고 있는 디스크 사용량이 80%를 넘어서서

디스크 볼륨 사이즈를 증가하게 되었습니다.

물론 장기 백업은 S3 버켓에 하고 있습니다.


실제와는 달리 테스트 vm이라서 볼륨사이즈가 작긴 하지만

후에 참고하기위해 기록해둡니다.



10G -> 15G로 증가시키기

 

[ec2-user@ip-xxx ~]$ df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/xvda2       10G  2.8G  7.3G  28% /

devtmpfs        474M     0  474M   0% /dev

tmpfs           496M     0  496M   0% /dev/shm

tmpfs           496M   13M  483M   3% /run

tmpfs           496M     0  496M   0% /sys/fs/cgroup

tmpfs           100M     0  100M   0% /run/user/1000

 

 

[ec2-user@ip-xxx ~]$ lsblk

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

xvda    202:0    0  10G  0 disk

├─xvda1 202:1    0   1M  0 part

└─xvda2 202:2    0  10G  0 part /

 

아래와 같이 적절하게 사이즈 증가

 

 


 


 

디스크 블락 상태 확인 xvda2

[ec2-user@ip-xxx ~]$ lsblk

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

xvda    202:0    0  15G  0 disk

├─xvda1 202:1    0   1M  0 part

└─xvda2 202:2    0  10G  0 part /

 

 

명령어 growpart 로 증가 시킴

[root@ip-xxx ec2-user]# growpart /dev/xvda 2

CHANGED: disk=/dev/xvda partition=2: start=4096 old: size=20967390,end=20971486 new: size=31453150,end=31457246

 

15G로 증가된것을 확인

[root@ip-xxx ec2-user]# lsblk

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

xvda    202:0    0  15G  0 disk

├─xvda1 202:1    0   1M  0 part

└─xvda2 202:2    0  15G  0 part /

 

명령어 resize2fs로 파티션에 반영 시도 했으나 실패

==> ext2, ext3, ext4 일때 사용가능한 명령

[root@ip-xxx ec2-user]# resize2fs /dev/xvda2

resize2fs 1.42.9 (28-Dec-2013)

resize2fs: Bad magic number in super-block while trying to open /dev/xvda2

Couldn't find valid filesystem superblock.

 

 

xvda2의 파티션 확인 해보니 xfs

[root@ip-xxx ec2-user]# blkid /dev/xvda2

/dev/xvda2: UUID="50axxxxb-3xx0-44d0-ad12-28f205xxxx27" TYPE="xfs" PARTUUID="cc8f8c5a-xxxx-xxxx-aa62-ed173xxxxede"

 

 

xfs는 xfs_growfs 명령을 사용해야함

[root@ip-xxx ec2-user]# xfs_growfs /dev/xvda2

meta-data=/dev/xvda2             isize=512    agcount=7, agsize=393216 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0 spinodes=0

data     =                       bsize=4096   blocks=2620923, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal               bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 2620923 to 3931643

 

 

수행 후 명령어로 확인후 반영 완료

[root@ip-xxx ec2-user]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/xvda2       15G  2.8G   13G  19% /

devtmpfs        474M     0  474M   0% /dev

tmpfs           496M     0  496M   0% /dev/shm

tmpfs           496M   13M  483M   3% /run

tmpfs           496M     0  496M   0% /sys/fs/cgroup

tmpfs           100M     0  100M   0% /run/user/1000

 

 


+ Recent posts