리눅스 우분투 서버 18.x 에 노드 랑 mqtt Broker 구축하기

낭만개발자·2021년 10월 20일
0

리눅스 서버운영

목록 보기
2/2

1. screen 설치

우분투 서버 cli는 scroll이 안된다 shift + page up이 안먹힌다.
netstat -anlp 같은 명령어 보려면 스크롤이 많이 필요해서 설치한다.

설치 : apt-get install screen
사용자 만들기 : screen -S 생성할유저이름

사용법
1. 단축키 ctrl + a + Esc
2. page up, down 눌러 사용
3. 나갈시에 esc

출처 : https://erwinousy.medium.com/screen-command-%EC%82%AC%EC%9A%A9%EB%B2%95-linux-mac-62bf5dd23110

++ 추가 : screen은 우분투 서버에 그니까 shift + pageUp or Down 안먹히는 답답한 환경에서 log같은거 볼때 잠깐잠깐 쓰기엔 좋은데 세션 열고 뭔가 스크린을 켜두면 깜빡깜빡 거리고 무거운 느낌도 들고 해서 걍 꺼버렸다. 정말 꼭 봐야되는 로그나 그럴 때 사용하는게 좋고 평소엔 스크린은 꺼두는게 좋다.

2. curl 있는지 확인

sudo apt-get install -y curl
아래 출처보고 진행하면 된다.
이럴거면 블로그 왜 적냐는 생각이 들수도 있지만 그 변명하자면 큐레이터.. 스크랩을 모아두는것 만으로도 의미가 있다는 ㅠ
지금 바빠서 나중에 정리 ㅠㅠ

출처 : https://velog.io/@ywoosang/Node.js-%EC%84%A4%EC%B9%98

3.lunux에 git 설치 ㅠㅠ

근데 git clone 하려니 password 인증 꺼져라고 한다. github은 세련됐으므로 더 이상 password 따위는 안받겠다는 일을 만들어주는 고마운 ㅅ 깃헙 정책이 비밀번호 입력에서 access 토큰으로 바낀거임. 거기에 불평 한마디.

검색
https://stackoverflow.com/questions/68775869/support-for-password-authentication-was-removed-please-use-a-personal-access-to
요 방법 사용중.
잘되면 정리
(요건 보류중..)

4.MariaDB 설치 (in Ubuntu)

https://m.blog.naver.com/6116949/221992559683
위에거 보고 하면 된다.
근데 password 초기 변경하고 로그인할 때, access denied 에러가 뜰때가 있다.
이제 구글링 할텐데 보통, 주의해야할 점은 mariad DB version별로 access denied 처리할수 있는 방법이 다르다. 내가 10.x인데 8.x하고 뭔가 달랐던 것 같다.
근데 구글에 포스팅 올려둔 개발자중에 많이 아쉬운 개발자 유형은 자기가 트러블 슛팅 한것 까진 좋으나 몇버전대를 사용했고 에러를 잡았는지가 가장 중요한데 그런걸 안올리는 개발자들이 있다.
트러블 슛팅 해놓고 자기 사용 버전을 안올리면 아무 소용 없을 뿐더러
오히려 다른 개발자들한테 방해가 될수 있다..
나도 누구거 보고 따라하다 10.x에는 적용이 안되고 그 글은 다른 버전대였다는걸 안 순간 걍 시간과 노력만 날린 셈이 되었...
그래서 좋은 글 올리고 욕안먹으려면 웬만하면 NODE, REACT, DB 등 version을 꼭 명시해줘야 한다. 그치만 나도 많이 빼먹었음 ㅠㅠ 반성

10.x에서 pw 에러 나면 아래 글 참고하고, 만약 참고해도 안잡힌다 하면 아래 글의 추가 부분에 plugin 문제 일수 있다. 플러그인은 오늘 레퍼런스 10개정도 찾아다니다 우연히 발견한 해결책이라 귀한 해결책이다. (자랑)
https://velog.io/@adguy/MySql

MariaDB 서버간 DB 옮기기

방법은 .sql파일 만들어서 옮겨주고 실행하면 된다
참고 자료
https://mopipe.tistory.com/99

5. Mqtt Broker 설치

MQTT 통신 브로커중 HIVE 제품도 있고 이클립스 재단서 나온 mosquitto 있는데, mosquitto가 무료고 가볍고 해서 그걸 공식 broker로 사용했다.
설치는 별거 없다
sudo apt install mosquitto
위에거 해주면 된다.
그리고 돌릴땐 systemctl start mosquitto 해줘도 되지만 서버 설정을 특별하게 해줘야 하므로 이번엔 mosquitto -c mosquitto.conf 로 .conf 설정 파일을 적용시켜 준다 그리고는 터미널 세션을 나가면 종료가 안되고 살아 있는다.


위 netstat -tnlp 상황 보면 1883 포트는 외부 열려 있고 tcp mqtt 프로토콜이다
그리고 위 사진에선 안나왔는데 0.0.0.0:8080 포트도 local address서 출력 될텐데 웹소켓 이 되면 디폴트 포트가 8080이 열린다. 웹소켓을 돌려야 client 즉 app 라이브러리에서 연결이 가능하겠더라고..

6. Node 돌리는 프로그램

보통 forever나 pm2 많이 쓰는 것 같다. 24시간 돌리기 위해선.
pm2는 안써봤지만 forever가 가볍고 쉬워서 지금 사용하고 있다. 아래 레퍼런스 보면 쉽게 설치 운영 할 수 있다.

https://velog.io/@adguy/%EC%9A%B0%EB%B6%84%ED%88%AC-%EC%84%9C%EB%B2%84-%EC%9A%B4%EC%98%81%EC%8B%9C-%ED%95%84%EC%9A%94%ED%95%9C-%EC%BB%A4%EB%A7%A8%EB%93%9C-%EC%A7%80%EC%8B%9D

추가

우분투 usb 인식시키기
리눅스에 mount란 개념이 생소할 수 있는데 usb폴더랑 우분투의 로컬 폴더랑 매치 시키는 것. mount로 로컬 디렉토리에 인식되어 파일리스트가 뜬다해서 카피가 된게 아니다. 최종적으론 cp나 mv로 옮겨야 함.
https://m.blog.naver.com/love_tolty/220897768122

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.

0개의 댓글