splunk 를 사용하다 보면, 특히 saved search 나 dashboard의 소스코드를 형상관리 해야될것 같은 생각이 든다.
사실 마땅히 splunk에서 제공되는 형상관리 툴은 없다. 내부에서 git을 사용할 수 있게끔 만들어진 앱이 있는데 아직 사용해보지는 않았다.
search 앱 만으로 형상관리를 할 수 있는 방법을 찾았다. 좀 단점이(글 후반부에 설명할 것 이다.) 있지만 단순히 saved search나 대시보드의 형상관리를 원한다면 유용한 대안이 될거라고 생각됐다.
유튜브를 주로 참고했다.
| rest /servicesNS/-/-/saved/searches/세이브 서치 명
| table search
| rest /servicesNS/-/-/data/ui/views/대시보드 명
| table "eai:data"
splunk 에서는 rest라는 커맨드를 제공하는데, 이때 url에 해당하는 부분에 servieceNS(네임스페이스)를 사용해서 splunk의 앱/리소스에 액세스 할 수 있다.
자세한 사항은 splunk docs 사이트에 있어서 확인하기 바란다. 나중에 네임스페이스로 포스팅을 해보려고 한다. (점점 포스팅 할 것이 많아지는군..)
이렇게 하게 되면, savedsearch 의 결과를 볼 수 있다.
이후 이 결과를 saved search에 5분 단위로 저장해준다.
(현재 내 PC에 설치된 스플렁크 라이센스가 savedsearch 스케줄링이 안되어서 이후부터는 동영상으로 대체 한다.)
서머리 인덱스에 저장해준다. (사진은 dashboard_code라고 나온다. 하지만 실제 서버에서는 자신의 saved search 명이 보이면 된다/ 서머리 인덱스에 관련해서 내용을 모른다면, 필자의 포스팅을 확인하기 바란다!)
이후에 저장된 결과를 보기 위해 index=summary search_name="세이브 서치명" 을 검색해서 확인해보면 다음과 같이 결과를 볼 수 있다. (현재는 대시보드 예시를 캡쳐했지만 위에서 네임스페이스에 세이브 서치로 했다면 세이브 서치 쿼리가 저장되어있을 것 이다.)
index=summary
| diff position1=1 position2=2
반대로 position1=2, position2=1을 넣게 되면 반대의 순서로 비교할 수 있음으로 참고하자.
diffheader=true로 하게 되면, 비교되는 파일의 이름을 지정해
보여준다.
context=true로 하게 되면, 기존에는 요약된 diff의 정보를 보여줬다면 true일 경우 전체 변화된 결과를 모두 보여준다. 전/후의 쿼리문이나 소스코드를 전체 로딩해준다. 보통 불필요하기 때문에(변화된 부분만 확인하면 되기 때문에 잘 사용하지 않을 것으로 보인다. 디폴트는 false)
maxlen은 비교할 대상의 최대 길이이다. 길이를 설정하면, 해당 길이까지만 비교하고 이후에는 비교하지 않는다.
단점은 앞에서 직감한 사람도 있겠지만, saved search 혹은 대시보드의 형상 관리를 위해 또 saved search를 걸어야 한다. 즉 관리주체가 늘어나는 느낌이다. 또한 불필요하게 5분단위로 혹은 특정 시간 주기로 계속 저장을 해야하기 때문에 이 또한 낭비가 된다. 하지만, git과 같은 형상관리 솔루션을 도입하는 것 보다 많지 않은 세이브 서치를 확인하고 관리하고 싶다면 이 또한 좋은 대안이 될 것이다.