템플릿 설정
MySQL/MariaDB
참고
- Zabbix 2.0.5에서 MySQL의 감시(템플릿 이용)| Check!Site
- zabbix_get명령으로 MySQL의 가동 상황을 확인하는 방법(계정 정보를 분리)| Check!Site
ZABBIX에 기본으로 붙어 있는 템플릿을 사용한다.다만 리플리케이션의 설정은 없어서 독자적으로 추가하고 있다.
감시되는 서버 측에 아래와 같이 설정
1. /etc/zabbix/zabbix-agentd.d/userparameter_mysql.conf
PATH나 명령은 서버에 맞추어 적절히 변경한다.
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | PATH=/usr/local/mysql/bin HOME=/var/lib/zabbix /usr/local/mysql/bin/mysql --defaults-extra-file=/etc/zabbix/my.cnf -N | awk '{print $$2}'
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema='$1'")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name='$2'");" | PATH=/usr/local/mysql/bin HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/my.cnf -N
UserParameter=mysql.ping, PATH=/usr/local/mysql/bin HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/my.cnf ping | grep -c alive
UserParameter=mysql.version, PATH=/usr/local/mysql/bin mysql --defaults-extra-file=/etc/zabbix/my.cnf -V
# for Replication
UserParameter=mysql.replication[*],echo "show slave status\G" | PATH=/usr/local/mysql/bin HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/my.cnf | grep $1: | awk '{print $$2}'
패키지에서 설치하고 있는 경우는 아래 처럼.
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/my.cnf -N | awk '{print $$2}'
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema='$1'")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name='$2'");" | HOME=/var/lib/zabbix mysql ---defaults-extra-file=/etc/zabbix/my.cnf -N
UserParameter=mysql.ping, HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/my.cnf ping | grep -c alive
UserParameter=mysql.version, mysql --defaults-extra-file=/etc/zabbix/my.cnf -V
# for Replication
UserParameter=mysql.replication[*],echo "show slave status\G" | HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/my.cnf | grep $1: | awk '{print $$2}'
2. /etc/zabbix/my.cnf를 작성.유저, 패스는 환경에 맞추어 적절히 변경.
[client]
user = monitor
password = test!
socket = /usr/local/mysql/tmp/mysql.sock
- 패키지에서 설치하고 있는 경우는 아래
[client]
user = monitor
password = test!
socket = /var/lib/mysql/mysql.sock
3. zabbix agent를 재기동
4. ZABBIX서버 측에서 확인
# zabbix_get -s <target host> -k mysql.ping
1
1에서 정상 가동하고 있는 확인 OK.mysql이 실행하고 있는데 잘 안 될 경우는 agent측의 로그를 확인.
MongoDB
1. /etc/zabbix/zabbix-agentd.d/userparameter_mongodb.conf의 작성
- mongod의 서버
- PATH나 명령은 서버에 맞추어 적절히 변경한다.
# status
UserParameter=mongodb.ok,/bin/echo "db.serverStatus().ok" | /usr/local/mongodb/bin/mongo --port 30001 -u monitor -p test2! admin | head -3 | tail -1
# replicaset
UserParameter=mongodb.rsok,/bin/echo "rs.status()" | /usr/local/mongodb/bin/mongo --port 30001 -u monitor -p test2! admin | grep stateStr | grep -v -E 'PRIMARY|SECONDARY|ARBITER' -c
# 기타 상태의 모든 접근
UserParameter=mongodb.status[*],/bin/echo "db.serverStatus().$1" | /usr/local/mongodb/bin/mongo --port 30001 -u monitor -p test2! admin | grep "$2"|awk -F: '{print $$2}'|awk -F, '{print $$1}'
- mongos의 서버
UserParameter=mongodb.ok,/sbin/pidof mongos | wc -l
또는
UserParameter=mongodb.ok,/sbin/pidof mongod | wc -l
2. zabbix agent를 재기동
3. ZABBIX서버 측에서 확인
# zabbix_get -s <target host> -k mongodb.ok
1
1에서 정상 가동하고 있는 확인 OK.
※mongodb.status로 mongodb에 접속하고 각 파라미터를 개별적으로 취득하지만 connections만 출력이 개항되지 않고 같은 형식으로 처리할 수 없다.
Redis
1. /etc/zabbix/zabbix_agentd.d/userparameter_redis.conf의 작성
PATH나 명령은 서버에 맞추어 적절히 변경한다. 디폴트 포트를 사용하고 있다면-p지정은 불필요합니다.
UserParameter=redis.stat[*],/usr/local/redis/src/redis-cli -p 16061 -a '<password>' info | grep "$1:" | cut -d":" -f2
- 패키지에서 설치하고 있는 경우는 아래
UserParameter=redis.stat[*],redis-cli -a '<password>' info | grep "$1:" | cut -d":" -f2
2. zabbix agent를 재기동
3. ZABBIX서버 측에서 확인
# zabbix_get -s <target host> -k 'redis.stat[redis_version]'
2.4.10
데이터의 출력이 되어 있으면 OK.
'IT > Zabbix' 카테고리의 다른 글
Zabbix agent on Windows Server (0) | 2021.08.17 |
---|---|
Zabbix 감시 설정 (0) | 2021.07.29 |
Zabbix Agent 설치 (0) | 2021.07.29 |
Zabbix 서버에 대해 (0) | 2021.07.29 |
Zabbix 설치 (0) | 2020.07.05 |