일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- snmp
- c3 초
- 정규식 컴파일
- linux시간으로 변경
- subporcess path
- CentOS7
- 정규식 활용
- influxdb 설치
- python subprocess
- gcc regex
- 1697
- g++ 업데이트
- regex_search
- semanage
- python popen
- python os
- centos pyhon 설치
- InfluxDB
- gcc 업데이트
- grafana dashboard
- c3 step graph
- telegraf
- snmp test
- c3 축 가리기
- selinux port 등록
- 백준
- c3 축 없애기
- c++ 정규식
- c3 second
- 정규식 문자열 출력
- Today
- Total
리셋 되지 말자
[Centos 7] SNMP 서비스 적용- InfluxDB, Telegraf, Grafana(4) 본문
InfluxDB까지 설치가 끝났고, 이번엔 Telegraf를 설치해보자.
1. Telegraf rmp 다운로드
rpm은 아래에서 받아주시길 바랍니다.(가급적이면 최신버전을 추천드립니다.)
https://not-to-be-reset.tistory.com/24
쓴이는 wget으로 받았습니다.
# yum localinstall -y # yum localinstall -y telegraf-1.13.1.x86_64.rpm
2. config 파일 생성 및 수정
설치가 되면, 자동으로 위의 경로에 telegraf.conf 파일이 생성됩니다. 이제 저 파일을 수정해야 하는데,
4154줄부터 inputs.snmp 를 간단히 살펴보겠습니다.
[[ ]]로 최외각에 묶여 있는 부분이 하나의 Plugin이라고 보시면 됩니다.
telegraf.conf 에서 설정된 Plugin에 의해 telegraf가 동작하게 됩니다.
보시는 바와 같이 최소항목을 제외하면 맨 왼쪽에 모두 주석이 있는걸 확인할 수 있습니다.
GUI환경이라서 별도의 text 편집기를 사용할 수 없다면 맨 앞의 # 주석 처리를 일일히 제거하기에는 쉽지 않고, 사용하지 않을 플러그인들도 매우 많으니, telegraf에서 conf파일 생성을 지원하는데 이 기능을 이용하여 새로운 conf 파일을 생성해도 됩니다.
# telegraf -sample-config -input-filter cpu:disk:mem:net:netstat:ping:snmp -output-filter influxdb > telegraf.conf
3. custom config 파일 생성
# telegraf -sample-config -input-filter snmp > telegraf.conf
위의 명령어로 telegranf.conf 파일을 생성해 줍니다. snmp로 동작 하는게 목표이기 때문에 snmp plugin만 사용하도록 하겠습니다. cpu, disk등은 원하시는 대로 사용 하시면 됩니다.
4. config 파일 수정 - input plugin
[[inputs.snmp]] 위치로 가서 수정을 시작해 줍니다.
1691 : agents = ["udp://127.0.0.1:161"] -> agents = ["agent가상머신의 ip 주소:161"]
1694 : 맨 앞의 주석 제거
1697 : 맨 앞의 주석 제거
1700 : 맨 앞의 주석 제거, "public"을 "agent 가상머신의 SNMP community 이름으로 변경"
아래의 문구들을 snmp 플러그인 부분의 맨 뒤에 삽입해 줍니다.
[[inputs.snmp.field]]
name = "hostname"
oid = "RFC1213-MIB::sysName.0"
is_tag = true
[[inputs.snmp.table]]
name = "snmp"
inherit_tags = [ "hostname" ]
oid = "IF-MIB::ifXTable"
[[inputs.snmp.table.field]]
name = "ifName"
oid = "IF-MIB::ifName"
is_tag = true
5. config 파일 수정 - output plugin
[[outputs.influxdb]] 플러그인의 위치로 이동합니다.
112 : 맨 앞의 주석 제거
116 : 맨 앞의 주석 제거, "telegraf"이름을 자신이 원하는 이름으로 변경. (앞의 주석을 제거하지 않으면, 자동으로 이름이 'telegraf'인 database가 생성됩니다.)
(아래로 이동)
142 : 맨 앞의 주석 제거, username을 "telegraf"에서 InfluxDB에 생성된 계정 이름으로 변경
143 : 마찬가지로 InfluxDB에 생성된 계정의 비밀번호로 변경
6. InfluxDB config파일 수정 및 계정 추가
# influx
위 명령어로 influxdb에 접속합니다
CREATE USER admin WITH PASSWORD 'admin' WITH ALL PRIVILEGES
위의 명령어로 비밀번호가 admin인 admin 계정을 만들어 줍니다. 5번의 'Basic HTTP auth'의 username과 password와 동일하기만 하면 됩니다. 그러므로 꼭 이름이랑 비밀번호가 admin일 필요는 없습니다.
# vi /etc/influxdb/influxdb.conf
위의 경로의 config 파일을 아래의 그림과 같이 수정해 줍니다.
핵심은 259 번째 줄의 auth-enabled를 true로 해주는 것입니다.
해당 항목을 true로 해주면, 계정 로그인 없이 influxdb에 접속할 경우 쿼리문을 사용할 수 없습니다.
7. 수정한 telegraf.conf파일 테스트
# telegraf --test --config telegraf.conf
위의 명령어로 테스트 했을 때, 오류가 나지 않으면 일단은 작성이 잘 된것입니다.
snmp 플러그인 부분에 추가해준 필드, 테이블은 snmp통신에 MIB를 이용하여 값을 가져오는 것입니다.
MIB는 OID로 변경이 가능하고, 당연히 반대도 가능합니다. (net-snmp-utils 패키지가 설치 되어 있어야 합니다.)
# snmptranslate -On IF-MIB::ifXTable
# snmptranslate .1.3.6.1.2.1.31.1.1
8. config파일 이동
편집한 config 파일을 /etc/telegraf/ 경로에 옮긴 뒤,
# systemctl restart telegraf
telegraf를 재시작 해줍니다.
# systemctl status telegraf -l
명령어를 이용해 잘 실행이 되었는지 확인이 가능합니다. error 문구가 보이지 않는다면 성공일 확률이 높습니다.
9. InfluxDB 확인
제대로 설정이 되었다면 위에서 설정한 database의 이름인 'kkj_telegraf' database가 생성이 되고, 안에 snmp 값들이 저장되어야 합니다.
위의 그림과 같이 influx 를 입력하여 접속한 뒤, auth를 입력하면 계정으로 접속할 수 있습니다. 계정으로 접속하지 않으면 show databases 같은 쿼리문 사용이 불가능합니다.
> use 데이터베이스이름
으로 데이터베이스를 선택할 수 있고,
> show measurements
으로 measurement 목록을 확인할 수 있습니다.
플러그인으로 snmp 하나만 지정했기 때문에 snmp만 존재하는 것을 확인할 수 있습니다.
> select * from snmp
으로 snmp measurement안에 값들이 5초 주기적으로 추가되는것을 확인할 수 있습니다.
고생하셨습니다. (나 자신 포함)
다음 포스팅에선 위의 값들을 Grafana를 이용해 그래프로 표현하는 것입니다.
'SNMP' 카테고리의 다른 글
[Centos 7] SNMP 서비스 적용- InfluxDB, Telegraf, Grafana(5) (0) | 2020.01.21 |
---|---|
[Centos 7] SNMP 서비스 적용- InfluxDB, Telegraf, Grafana(0) (0) | 2020.01.20 |
[Centos 7] SNMP 서비스 적용- InfluxDB, Telegraf, Grafana(3) (0) | 2020.01.17 |
[Centos 7] SNMP 서비스 적용- InfluxDB, Telegraf, Grafana(2) (0) | 2020.01.17 |
[Centos 7] SNMP 서비스 적용- InfluxDB, Telegraf, Grafana(1) (0) | 2020.01.17 |