728x90
반응형

필요한 권한

Read Only Admin로 있으면 값을 취득할 수 있었습니다.

좀 더 약한 권한이라도 괜찮을지도 모릅니다.

 

서버 측 Plugin설정

다음과 같이 munin사용자로 스위치 합니다.

$ sudo su -

# su -s /bin/bash munin -

munin사용자로 virtualenv명령을 실행하고 환경을 옮긴 뒤 requests를 인스톨 합니다.

-bash$ pwd
/var/lib/munin
  
-bash$ virtualenv .venv/couchbase-munin-plugin
-bash$ source .venv/couchbase-munin-plugin/bin/activate
(couchbase-munin-plugin) -bash$ pip install requests

 

/etc/munin/plugin-conf.d/couchbase를 신규 작성합니다.

USERNAME, PASSWORD는 couchbase에 접속할 수 있는 유저로 바꾸어 주세요.

/etc/munin/plugin-conf.d/couchbase

[couchbase_*]
user munin
env.host 127.0.0.1
env.port 8091
env.username USERNAME
env.password PASSWORD
728x90
300x250

'IT > Munin' 카테고리의 다른 글

Munin Application RTA 체크 스크립트  (0) 2021.07.30
Munin App Exception 에 대한 체크  (0) 2021.07.30
Munin 플러그인 설정  (0) 2021.07.29
Connections-through-firewall 유효화  (0) 2021.07.29
Munin 노드 설치 및 구성  (0) 2021.07.07
728x90
반응형
#!/bin/sh

#%# family=auto
#%# capabilities=autoconf

#GETNUM=`/bin/sh /home/test/bin/app/munin_rta.sh`

TODAY=`date +"%Y-%m-%d"`
TOMCAT_HOME2=/home/test/SERVER/

RTA1=0


MONITOR_LOG2=$TOMCAT_HOME2/logs/play_MONITOR.$TODAY.log

if [ -e $MONITOR_LOG2 ]; then
#RTA1=$(tail -n 1000 $MONITOR_LOG1 | grep "SESSION\[" | tail -n 5 | awk -F "SESSION" '{print $2}' | tr -d "[]")
RTA1=$(tail -n 3000 $MONITOR_LOG2 | grep WebSocketMonitor | grep SESSION | tail -n 1 | awk '{print $12}' | awk '{print substr($0, 9)}' | awk '{print substr($0, 0, index($0,"]")-1)}')
fi


if [ "$1" = "autoconf" ]; then
        if [ -n ${RTA1} ] ; then
                echo yes
                exit 0
        else
                echo no
                exit 0
        fi
fi

if [ "$1" = "config" ]; then
        echo 'graph_title User Session(Concurrent User)'
        echo 'graph_args -r --lower-limit 0'
        echo 'graph_vlabel users'
        echo 'graph_category Apps'
        echo 'total.label Total users'
        echo 'total.min 0'
        echo 'total.draw LINE2'
        echo 'total.type GAUGE'
        exit 0
fi

if [ -n ${RTA1} ] ; then
    echo "total.value $RTA1";
else
    echo "total.value U";
fi
728x90
300x250

'IT > Munin' 카테고리의 다른 글

Couchbase Munin Plugin 설정  (0) 2021.08.19
Munin App Exception 에 대한 체크  (0) 2021.07.30
Munin 플러그인 설정  (0) 2021.07.29
Connections-through-firewall 유효화  (0) 2021.07.29
Munin 노드 설치 및 구성  (0) 2021.07.07
728x90
반응형
#!/bin/bash

CUR_YMD=`date '+%Y-%m-%d'`
LOG_DIR=/home/test/logs
LOG_FILE=play.$CUR_YMD.log

LINE_LIMIT=30000
SUB_YMD_HM_0=`date '+%Y-%m-%d %H:%M'`
SUB_YMD_HM_1=`date --date '-1 min' '+%Y-%m-%d %H:%M'`
SUB_YMD_HM_2=`date --date '-2 min' '+%Y-%m-%d %H:%M'`
SUB_YMD_HM_3=`date --date '-3 min' '+%Y-%m-%d %H:%M'`
SUB_YMD_HM_4=`date --date '-4 min' '+%Y-%m-%d %H:%M'`
SUB_YMD_HM_5=`date --date '-5 min' '+%Y-%m-%d %H:%M'`


TOTAL=`tail -n $LINE_LIMIT $LOG_DIR/$LOG_FILE | grep -e "ERROR\|Exception" | grep -e "$SUB_YMD_HM_0\|$SUB_YMD_HM_1\|$SUB_YMD_HM_2\|$SUB_YMD_HM_3\|$SUB_YMD_HM_4\|$SUB_YMD_HM_5" | wc -l`

CATEGORY="Apps"
TITLE="ERROR or Exception"

if [ "$1" = "autoconf" ]; then
        if [ -n ${TOTAL} ] ; then
                echo yes
                exit 0
        else
                echo no
                exit 0
        fi
fi


if [ "$1" = "config" ]; then
    echo "graph_title $TITLE";
    echo "graph_args -r --lower-limit 0"
    echo "graph_vlabel threads";
    echo "graph_category $CATEGORY";
    echo "graph_order total";
    echo "total.label total";
    echo "total.draw LINE2";
    exit 0;
fi


if [ -n ${TOTAL} ] ; then
    echo "total.value $TOTAL";
else
    echo "total.value U";
fi
728x90
300x250

'IT > Munin' 카테고리의 다른 글

Couchbase Munin Plugin 설정  (0) 2021.08.19
Munin Application RTA 체크 스크립트  (0) 2021.07.30
Munin 플러그인 설정  (0) 2021.07.29
Connections-through-firewall 유효화  (0) 2021.07.29
Munin 노드 설치 및 구성  (0) 2021.07.07
728x90
반응형

MySQL

  • munin-1.4 이후 mysql 의 플러그 인은 「mysql_」로 모두 정리하게 되어 있어 옵션도 바뀌어 있다.
  • Cache :: Cache가 필요하므로 yum으로 설치. (perl-Cache-Cache)
# yum install --enablerepo=epel perl-Cache-Cache perl-DBD-MySQL
  • 플러그 인 추가
    • "mysql_"플러그 인을 각 이름으로 변경하고 심볼릭 링크를 붙인다. 사용할 수 있는 플러그인은 아래와 같습니다.
    • # /usr/share/munin/plugins/mysql_ suggest

아래 명령어로 Link 생성합니다.

for i in `/usr/share/munin/plugins/mysql_ suggest`;do ln -fs /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_$i;done

/etc/munin/plugin-conf.d/mysql 작성

[mysql*]
env.mysqlconnection DBI:mysql:mysql;host=localhost;port=3306;mysql_socket=/var/lib/mysql/mysql.sock
env.mysqluser monitor
env.mysqlpassword password2!

일단 만약을 위해 제한합니다.

# chown root:root /etc/munin/plugin-conf.d/mysql
# chmod 600 /etc/munin/plugin-conf.d/mysql

munin-node의 재기동 진행

 

에러 대응

munin에 부속되어 있는 디폴트의 mysql_플러그 인에는 버그가 있으므로, MySQL 5.6을 사용하는 경우는 이하의 수정이 필요. 수정판이 github 에 올라가 있지만 dev에 들어가 있고 master 에 반영되어 있지 않으므로 대상 파일만 갱신한다.

# cd /usr/share/munin/plugins
# wget http://xxxx/src/mysql_ -O mysql_
# chmod +x mysql_

 

728x90
300x250

'IT > Munin' 카테고리의 다른 글

Munin Application RTA 체크 스크립트  (0) 2021.07.30
Munin App Exception 에 대한 체크  (0) 2021.07.30
Connections-through-firewall 유효화  (0) 2021.07.29
Munin 노드 설치 및 구성  (0) 2021.07.07
munin.conf  (0) 2021.07.07
728x90
반응형

개요

온 프리 서버에 관해서는 munin그래프의 "Connections-through-firewall"표준에서 ON으로 되어 있지만

클라우드 서버에 관해서는 수동에서 유효하게 할 필요가 있어서 순서를 기재한다.

또한 서버 재기동 후도, firewalld의 설정이 유효하고 인터페이스는 전 허가의 설정과 된다.

 

순서

  1. 해당 서버에 로그온하고, root유저로 스위칭한다.
  2. firewalld가 설치되지 않을 경우 설치를 실시한다.
# yum install firewalld
# systemctl status firewalld
# systemctl start firewalld

※firewall을 설치하면 SSH만이 허용이 되므로 주의

3. 인터페이스의 모든 허가를 한다.

firewall-cmd --change-interface=eth0 --zone=trusted
firewall-cmd --change-interface=eth0 --zone=trusted --permanent
firewall-cmd --reload

4. firewalld의 실행 설정을 확인한다.

systemctl list-unit-files | grep fire

5. Connections-through-firewall이 무효가 되어 있음을 확인한다.
이하의 출력 결과인 것.

# munin-node-configure | grep '^fw_'
fw_conntrack               |  no  |
fw_forwarded_local         |  no  |
fw_packets                 | yes  |

6. 설정을 유효하게 한다.

# munin-node-configure --shell | sh
# systemctl restart munin-node
  
# munin-node-configure | grep '^fw_'
fw_conntrack               | yes  |
fw_forwarded_local         | yes  |
fw_packets                 | yes  |

7. munin-plugin의 수정
94번행을 다음과 같이 수정한다.

vi /etc/munin/plugins/if_eth0
  
     89     # sysfs can report the speed if the driver supports it (but it
     90     # doesn't work as well for wireless cards, thus why we check for
     91     # iwlist first)
     92     if [[ -r /sys/class/net/$INTERFACE/speed ]]; then
     93             SPEED=$(cat /sys/class/net/$INTERFACE/speed 2>/dev/null)
     94             if [[ "$SPEED" -gt 0 ]]; then
     95                 echo $SPEED
     96                 return
     97             fi
     98     fi

8. 동작 확인 오류가 없음을 확인한다.

# munin-run fw_conntrack
established.value 1
fin_wait.value 0
time_wait.value 1
syn_sent.value 0
udp.value 3
assured.value 4
nated.value 0
total.value 5
 
tail -f /var/log/munin-node/munin-node.log

munin그래프에 표시되어 있는 것도 확인할 것.

728x90
300x250

'IT > Munin' 카테고리의 다른 글

Munin App Exception 에 대한 체크  (0) 2021.07.30
Munin 플러그인 설정  (0) 2021.07.29
Munin 노드 설치 및 구성  (0) 2021.07.07
munin.conf  (0) 2021.07.07
Munin 서버 설치 및 초기설정  (0) 2021.07.07
728x90
반응형

설치

# yum install -y --enablerepo=epel munin-node

필요한 perl모듈은 모두 설치된다.

 

설정

/etc/munin/munin-node.conf를 편집하다

  • host_name를 코멘트 아웃
#host_name localhost.localdomain

허가한 접근의 원래의 설정
대상(감시하는 쪽)하지만 어느 장소에 있는지보다 잠시 편집할 곳이 바뀐다
구체적으로는 감시 서버와 로컬 주소로 상호 통신할 수 있을지

  • AWS 또는 IDC의 경우
cidr_allow 192.168.0.0/16 # IDC
cidr_allow 120.0.0.0/8 # AWS
  • 그 외
allow ^12\.345\.67\.89$
allow ^23\.45\.67\.89$
  • 기동 설정
# chkconfig munin-node on
# service munin-node start

동작 확인

플러그 인의 동작 확인을

# munin-run <plugin name>

로 확인할 수 있다.

플러그 인은/etc/munin/plugins/에 있다.

728x90
300x250

'IT > Munin' 카테고리의 다른 글

Munin 플러그인 설정  (0) 2021.07.29
Connections-through-firewall 유효화  (0) 2021.07.29
munin.conf  (0) 2021.07.07
Munin 서버 설치 및 초기설정  (0) 2021.07.07
Munin에서 Plugins사용시 /tmp속 로그를 찾지 못하는 이슈  (0) 2021.07.01
728x90
반응형

호스트 그룹화

[Infra;]
[Infra;misc-0]
    address misc-0.naver.com
    use_node_name yes
[Infra;monitoring-0]
    address 127.0.0.1
    use_node_name yes

형식으로 기술한다.

 

표시 순서의 설정

감시 노드의 표시 순서를 임의로 설정하는 경우는

[Infra;]
node_order monitoring-0 misc-0

처럼 기술하면 기술한 순서대로 표시된다.
또한 일부 호스트만 서술한 경우는 기술한 것만 우선적으로 표시되고 나머지는 이름 순서로 표시된다.

 

갱신 설정

update no

 데이터 갱신을 하지 않게 된다.

728x90
300x250
728x90
반응형

설치

 epel로부터 인스톨.

# yum install --enablerepo=epel munin munin-cgi

설정

여기에서는 OS표준 httpd를 사양한 디렉토리 구성을 전제로 하고 있습니다.DocumentRoot등 각 디렉토리 구성이 다른 경우는 필요에 따라서 변경합니다.

- # cgitmpdir @@CGITMPDIR@@
+ cgitmpdir /var/lib/munin/cgi-tmp
 
- graph_strategy cron
+ graph_strategy cgi
 
- #cgiurl_graph /munin-cgi/munin-cgi-graph
+ cgiurl_graph /munin-cgi/munin-cgi-graph
 
- #max_processes 16
+ max_processes 64

 

graph_strategy cron이라고 cron수행 시(디폴트 5분 간격)를 그래프의 생성까지 하지만 node수가 많아지면 시간이 걸리고 다음 실행에 맞지 않다. 락이 걸려서 문제는 없지만, 10분 이상 전의 데이터가 표시된다.
cgi로 하면 데이터 엑세스가 있었을 때 동적으로 생성된다.단, 그래프의 표시시에 생성되므로 완료까지 약간 기다려야 한다.노드 수가 많을 때는 이쪽이 된다.
max_processes munin-update실행 시 병렬 수의 지정.CPU의 코어 개수에 여유가 있다면 높게 설정하면 좋다.munin-html의 실행 수에는 영향을 주지 않는다.
728x90
  • max_graph_jobs, munin_cgi_graph_jobs의 값은 변경해도 병렬 수에 변화가 없어서 의미가 있는지 불명(ver2.0.8).
  • html_strategy는 CGI을 지정하면 그래프의 zoom기능의 표시에 대한 링크가 잘 갱신되지 않아서 cron상태로 있다.
    수정되고 정상 동작하고 있었으므로 cgi로 설정.

FastCGI의 설정

apache가상 호스트의 설정으로서 이하를 추가.
기본적으로 설치되는 munin.conf와 munin-cgi.conf는 .bak등에 rename하고 읽지 않도록 한다

  • /etc/httpd/conf.d/munin-0.conf
<VirtualHost *:80>
    ServerAdmin  infra@naver.com
    ServerName   munin-0.naver.com
    DocumentRoot /var/www/munin-0
 
    # 액세스는 기록하지 않는다.
    #ErrorLog  "|logger -p local1.info -t error_munin-0"
    ErrorLog  logs/munin-0/error.log
    CustomLog logs/munin-0/access.log combined_plus env=!no_log
    CustomLog logs/munin-0/fcgi_access.log combined_plus env=!no_log
 
    # Rewrites
    RewriteEngine On
 
    # Static content in /static
    RewriteRule ^/favicon.ico /var/www/html/munin/static/favicon.ico [L]
    RewriteRule ^/static/(.*) /var/www/html/munin/static/$1          [L]
 
    # workaround for some static content
    RewriteRule /favicon.ico /var/www/html/munin/static/favicon.ico [L]
    RewriteRule /static/(.*) /var/www/html/munin/static/$1          [L]
 
    # HTML
    RewriteCond %{REQUEST_URI} .html$ [or]
    RewriteCond %{REQUEST_URI} =/
    RewriteRule ^/(.*)          /var/www/cgi-bin/munin-cgi-html/$1 [L]
 
    # Images
    # - remove path to munin-cgi-graph, if present
    RewriteRule ^/munin-cgi/munin-cgi-graph/(.*) /$1
 
    RewriteCond %{REQUEST_URI} .png$
    RewriteRule ^/(.*) /var/www/cgi-bin/munin-cgi-graph/$1 [L]
 
    ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph
 
    # DocumentRoot 설정
    <Directory /var/htdocs/munin-0>
        # 접근 제어
        Order allow,deny
        Allow from env=IP_COCONE
        Allow from env=IP_LOCAL
        Allow from env=IP_SERVER
    </Directory>
 
    <Directory /var/www/cgi-bin>
        Options +ExecCGI
        <IfModule mod_fcgid.c>
            SetHandler fcgid-script
        </IfModule>
        <IfModule !mod_fcgid.c>
            SetHandler cgi-script
        </IfModule>
        # 접근 제어
        Order allow,deny
        Allow from env=IP_COCONE
        Allow from env=IP_LOCAL
        Allow from env=IP_SERVER
    </Directory>
 
    # 캐시 설정
    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault M310
    </IfModule>
</VirtualHost>

권한 변경

# chown apache:apache /var/lib/munin/cgi-tmp/

logrotate의 설정

  • /etc/logrotate.d/munin에 추가
/var/log/munin/munin-cgi-*.log {
         daily
         missingok
         rotate 7
         compress
         notifempty
         create 640 apache apache
}

확인

체크는 cron에서 움직이고 있지만 수동으로 동작 확인하는 경우는 아래의 명령으로 가능. munin user로 명령을 실행할 필요가 있다.

# sudo -u munin /usr/bin/munin-cron

동작 체크, 퍼미션 검사 등에 대한 스크립트도 있다.

# /usr/bin/munin-check
728x90
300x250

'IT > Munin' 카테고리의 다른 글

Munin 플러그인 설정  (0) 2021.07.29
Connections-through-firewall 유효화  (0) 2021.07.29
Munin 노드 설치 및 구성  (0) 2021.07.07
munin.conf  (0) 2021.07.07
Munin에서 Plugins사용시 /tmp속 로그를 찾지 못하는 이슈  (0) 2021.07.01

+ Recent posts