전체 글31 Uptime Kuma 사용해보기 최근에 강력하고 간단한 Uptime Kuma 란 Synthetic Monitoring을 알게 돼서 간단히 설치와 사용법을 공유해보려고 한다. Install (Docker) $ docker volume create uptime-kuma uptime-kuma $ docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1 Unable to find image 'louislam/uptime-kuma:1' locally ... Status: Downloaded newer image for louislam/uptime-kuma:1 $ docker ps -a CONTAINER I.. 2021. 9. 11. sshguard 알아보기 (feat. SSB) GCP VM 접속후 신기한 데몬을 발견했다. root@instance-1:~# pstree systemd─┬─accounts-daemon───2*[{accounts-daemon}] ... ├─sshguard-journa─┬─journalctl │ └─sshguard─┬─sshg-fw │ └─{sshguard}sshguard? 원래 있었는지 잘모르겠다. GCP 기본이라고 한다. 예전에 쓰던 fail2ban 과 같은 형태의 ssh 방어 데몬인 것 같아서, 어떻게 작동되는지 궁금했다. for 문 테스트 Client alinos@DESKTOP-A52MBHK:~/work$ for i in `seq 0 200`; do ssh -l root -i test1.pem 8.8.8.8; ssh -l ubuntu -i tes.. 2021. 6. 13. tlog 로 터미널 레코딩하기 - 2 (with Elastic Search) tlog로 터미널 레코딩하기 - 1 이번엔 tlog와 elasticsearch를 연동하여 터미널 로그 원격 저장하는 법을 기술한다. 생각보다 이해가 되지 않아서, 평일엔 미루고 있다가 머리 좀 식히고 보니까 정리가 돼서 보였다. tlog가 elasticsearch로 로그를 보내는 순서를 미리 정의해본다. 레코딩 하려는 유저의 로그인 default shell을 tlog에서 제공하는 tlog-rec-session으로 바꾼다. rsyslog-elasticsearch 모듈을 설치하고, tlog-elasticsearch template구문을 설정하고 로그를 보낼 elasticsearch서버도 같이 설정한다. 레코딩 설정해놓은 유저로 로그인해서 작업 후에 elasticsearch로 로그들이 잘 쌓이는지 확인을 한다.. 2020. 8. 29. Echo 로 JSON POST DATA 처리하기 Redfish 이벤트 모니터링을 위한 Hook Server를 하나 만들어야 하는 상황이 생겼다. POST DATA를 받아서 엘라스틱 서치로 로그나 다른 메신저로 보내 보려는 중이다. 일단 POST DATA를 어떻게 처리할지를 잘 모르기 때문에, 간단한 POST DATA를 다루는 법만 알아내 끄적여본다. ## POST 소스 코드 작성 먼저 받을 데이터 필드 구조체를 만든다. (type Redfish struct) POST DATA를 받아서 처리할 redfish 함수를 만들고 echo.Context를 이용해 JSON 응답을 해줄 수 있다. 서버에서도 올바르게 찍힌 것인지 json marshaling을 이용해 print로 찍어 보았다. e.POST 구문으로 POST 경로 라우팅과 데이터가 들어오면 처리할 함수.. 2020. 8. 28. Centos8에서 Docker와 Podman을 돌려보자 tlog와 Elasticsearch의 연동을 위해 Centos8에 컨테이너를 올리려고 하던 중, podman이라는 솔루션이 문득 생각나서 docker와 비교하면서 설치를 해봤다.Podman의 기본적인 컨셉은 https://podman.io/ 여기에서도 설명을하고 있는데 daemonless 컨테이너 엔진이라는 거다. Docker는 dockerd가 죽으면 밑에 있는 containerd 하위 컨테이너들도 다 같이 죽어버린다는 의존성의 단점이 있다고 한다. 그래서 OOM 같은 Hell상황이 와서 dockerd가 죽어버린다면? 컨테이너들도 싹 다 죽는 현상이 벌어지는 그런 거와 비슷한 거라고 할까? 그리고 도커 설정을 바꾸고 restart를 해줘야 할 때 컨테이너들도 다 재시작을 해줘야 하는데 이때가 제일 빡치는.. 2020. 8. 21. tlog 로 터미널 레코딩하기 - 1 Centos가 버전 8로 올라오면서 tlog라는 터미널 레코딩 프로그램을 레포지토리에 합류시켰다. 사실 그동안 script 명령어를 비롯한 Termrecord 라던지 여러 솔루션을 사용했었다가, 기능과 성능이 별로 만족할만하지도 트렌디하지도 않아 보안감사용으로 쌓는데도 뭔가 찜찜한 구석이 있었다. 그래서 tlog의 등장은 신선했고, 최근에 테스트를 해본 결과 꽤 많은 업체들의 터미널 레코딩을 담당할 수 있지 않을까란 생각이 들었다. tlog는 터미널 레코딩의 장기 보관 및 대량의 보관을 위해 ElasticSearch를 백엔드로 지원한다. 이 부분은 2편으로 나눠서 작성해보려고 한다. ## tlog 설치 - Centos8 에선 아주 쉽게 설치가 된다. - ubuntu나 Centos 하위 버전에서도 설치를 .. 2020. 8. 18. GCP에서 업타임 체크 모니터링 만들기(Synthetic Monitoring) GCP는 Google SRE 개념을 GCP StackDriver로 구현하고 있다. 그중에 Synthetic Monitoring 툴인 업타임 체크 모니터링을 만들어보려고 한다. Synthetic Monitoring이란 모니터링을 안정적으로 할 수 있는 외부의 환경에서 주기적으로 서비스 상태를 확인할 수 있는 모니터링 용어이다. 외부에서 해당 서비스를 모니터링하는 개념으로 Blackbox Monitoring에 해당하며, 내부 메트릭을 모니터링 하는 Zabbix, Nagios, Node Exporter(White Monitoring)같은 솔루션과의 차이점은 실제 서비스 망에서 서비스가 제대로 되고 있는지 응답속도, HTTP 에러 코드, 응답 실패 등의 조금 더 서비스와 직결되는 모니터링을 할 수 있다. 즉, .. 2020. 8. 9. Vegeta로 웹성능 테스트 해보기 (golang echo vs python3 http.server) 최근에 알게 된 golang으로 만든 웹 성능 테스트 툴인 Vegeta를 테스트해보았다. Vegeta는 모두가 알고 있는 그 베지터다! 뭔가 라이선스는 상관없나? 생각이 들긴 한다. gatling을 주로 사용해 성능 테스트를 했었다. 그런데 Vegeta는 golang 퍼포먼스 툴에다가 이름이 베지터라니 안 써볼 이유가 없었고, 써보니 생각보다 더 매력적인 툴이었다. ## Vegeta 설치 - 음 golang 컴파일해서 쓸려고 했는데, wsl에 깔린 golang 버전이 낮아서 `unknown field 'MaxConnsPerHost'` 에러가 난다. golang 1.11 버전부터 add 되었다고 하는데 설치하기 귀찮아서 걍 pre-compiled 버전 다운로드 받았다. root@DESKTOP-A52MBHK.. 2020. 8. 8. Prometheus Golang SDK 예제로 만들어보기 Prometheus를 최근에 많이 사용하면서, Custom Exporter를 만들어 Custom Metric을 가져오고 싶어서 Client Library 부분을 참고해서 Custom Exporter를 만들어 보았다. 생각보다 쉬웠고, APP 내부 메트릭을 모니터링하는게 너무 신기했다. 10년전에는 끽해야 webalizer 만 사용해서 분석했던걸 이렇게 다양하게 분석할 수 있는 시대가 오다니.. 프로그래밍만 좀 하면 좋은 세상인것 같다. ## prometheus golang package 설치하기 alinos@DESKTOP-A52MBHK:~/go/src/github.com/alinos/alinosprom$ go get github.com/prometheus/client_golang/prometheus al.. 2020. 8. 2. 이전 1 2 3 4 다음