zabbix监控实战示例

1、监控TCP 连接数
#(1)创建conf文件引用脚本 
# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/all.conf #或者 
# vim /usr/local/zabbix/etc/zabbix_agentd.conf 
UserParameter=linux_status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/tcp_conn_plugin.sh “$1” “$2#添加用户自定义参数 

#(2)配置agent 配置文件导入自定义配置那文件 
# vim /usr/local/zabbix/etc/zabbix_agentd.conf 
263 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf 

#(3)重启agent服务 
# /etc/init.d/zabbix_agentd restart 

#(4)在被监控服务器为zabbix 用户授权: 
# vim /etc/sudoers 
99 zabbix ALL =(ALL) NOPASSWD: ALL 

#(5)测试获取数据: 
[root@zabbix-server src]# zabbix_get -s 192.168.15.204 -p 10050 -k "linux_status["tcp_status","LISTEN"]" 
11

#(6)导入并关联模板: 
#(7)验证连接数据:
2、监控memcache
#(1)监控脚本内容: 
#!/bin/bash 
memcached_status(){ 
M_PORT=$1 
M_COMMAND=$2 
echo -e "stats\nquit" | nc 127.0.0.1 "$M_PORT" | grep "STAT $M_COMMAND " | awk '{print $3}' 
} 
main(){ 
case $1 in 
memcached_status) 
memcached_status $2 $3 
;; 
esac 
} 
main $1 $2 $3 

#(2)调用脚本: 
[root@zabbix-web2 zabbix_agentd.conf.d]# cat all.conf 
UserParameter=linux_status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/tcp_conn_plugin.sh "$1" "$2" "$3" 
UserParameter=memcache_status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/memcache.sh "$1" "$2" "$3#测试脚本:
# bash memcache.sh memcached_status 11211 curr_connections 

#(3)/etc/init.d/zabbix_agentd restart
#(4)创建模板:
#(5)创建监控项:
#(6)创建图形:
#(7)创建报警:
#(8)关联主机并验证数据:
3、监控redis:监控连接数和内存使用
#(1)安装Zabbix Server端与数据库 
#脚本内容: 
# vim redis.sh 
#!/bin/bash 
redis_status(){ 
	R_PORT=$1 
	R_COMMAND=$2 
	(echo -en "INFO \r\n";sleep 1;) | nc 127.0.0.1 "$R_PORT" > /usr/local/zabbix/redis_"$R_PORT".tmp REDIS_STAT_VALUE=$(grep ""$R_COMMAND":" /usr/local/zabbix/redis_"$R_PORT".tmp | cut -d ':' -f2) 
	echo $REDIS_STAT_VALUE 
} 
help(){ 
	echo "${0} + redis_status + PORT + COMMAND" 
} 
main(){ 
	case $1 in 
	redis_status) 
	redis_status $2 $3 
	;; 
	*) 
	help 
	;; 
	esac 
} 
main $1 $2 $3 

#Server端验证脚本: 
# bash redis.sh redis_status 6379 connected_clients 
# zabbix_get -s 192.168.15.205 -p 10050 -k "redis_status[redis_status,6379,connected_clients]"监控redis 

#(2)编辑配置文件调用脚本 
#(3)重启zabbix agent服务 
#(4)创建主动式模板 
#(5)关联到主机并验证数据监控redis 
#(6)添加内存使用并验证数据:
4、监控Nginx:SNMP 服务配置
#Centos服务器安装配置SNMP: 
[root@s6 ~]# yum install -y net-snmp 
[root@s6 ~]# vim /etc/snmp/snmpd.conf 
# sec.name source community 
com2sec notConfigUser default 123456 #第一步:设置团体认证 
group notConfigGroup v1 notConfigUser 
group notConfigGroup v2c notConfigUser #第二步:将团体名称notConfigUser 关联至组notConfigGroup 
view systemview included .1.3.6.1.2.1.1 
view systemview included .1.3.6.1.2.1.25.1.1 #创建一个view,并对其授权可访问的OID范围 
access notConfigGroup “” any noauth exact systemview none none #将组notConfigGroup关联至systemview 从未完成组的授权 

#测试能否通过SNMOP采集数据: 
[root@s6 ~]# systemctl restart snmpd 
[root@s1 ~]# snmpwalk -v 2c -c 123456 172.18.200.106 .1.3.6.1.4.1.2021.10.1.3.1 
UCD-SNMP-MIB::laLoad.1 = STRING: 0.00 
[root@s1 ~]# snmpwalk -v 2c -c 123456 172.18.200.106 .1.3.6.1.4.1.2021.4.3.0 

#Zabbix 添加主机
#Zabbix 主机关联SNMP模板
#Zabbix 验证SNMP 数据
5、监控MySQL
#(1)部署mysql 主从同步,需要配置不同的server id并开启bin log 
#Master mysql: 
[root@zabbix-web1 apps]# cat /etc/my.cnf 
[mysqld] 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
symbolic-links=0 
datadir=/data/mysql 
innodb_file_per_table=1 
server-id=10 
log-bin=/data/mysql/master-log 
[client] 
port=3306 
socket=/var/lib/mysql/mysql.sock 
[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/tmp/mysql.sock 
#重启并设置同步账户: 
/etc/init.d/mysqld restart 
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'rsync-user'@'192.168.15.%' IDENTIFIED BY '123456'; 

#(2)部署mysql 主从同步 
#Slave mysql: 
[root@zabbix-serversrc]# cat /etc/my.cnf 
[mysqld] 
socket=/var/lib/mysql/mysql.sock 
user=mysql 
symbolic-links=0 
datadir=/data/mysql 
innodb_file_per_table=1 
relay-log = /data/mysql 
server-id=20 
[client] 
port=3306 
socket=/var/lib/mysql/mysql.sock 
[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/tmp/mysql.sock 
# /etc/init.d/mysqld restart 

#(3)导出master的mysql 数据: 
/usr/local/mysql/bin/mysqldump --all-databases --single_transaction --flush-logs --master-data=2 --lock
tables > /opt/backup.sql 
#复制到slave并导入,Position位置在sql文件: 
# mysql < /opt/backup.sql 
mysql> CHANGE MASTER TO 
mysql> CHANGE MASTER TO MASTER_HOST='192.168.15.203',MASTER_USER='rsync
user',MASTER_PASSWORD='123456',MASTER_LOG_FILE='bin-log.000003',MASTER_LOG_POS=120; 
start slave; 
stop slave; 
reset slave; 

#(4)安装procona
# yum install php php-mysql –y #安装php 
# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm #安装模板文件 
# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/ 
# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf <?php 
– $mysql_user = 'root';$mysql_pass = ''; 
#测试数据: 
#重启zabbix agent,并在Zabbix Server导入模板zbx_mysql_export_templates 
#更改模板模式为主动模式,关联到主机 
#验证数据: 
#注:如果无法获取数据,就要查看/tmp目录是否有一个localhost-mysql_cacti_stats.txt 这样的类似文件,如果有的话就把权限改为zabbix用户和用户组: 
# chown zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt自定义

#(5)编写脚本监控脚本MySQL主从同步及延迟

#(6)脚本内容: 
#脚本 mysql_monitor.sh 

#(7)导入自定义配置: 
# vim ../zabbix_agentd.conf 
263 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf 

#(8)自定义监控项: 
# vim all.conf 
UserParameter=mysql_monitor[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_m 
onitor.sh "$1" 

#(9)确认一上配置无误后重启zabbix agentd: 
# systemctl restart zabbix_agentd

#(10)创建模板监控项:
#(11)关联主机 
#(12)验证数据:
6、自定义脚本监控端口和进程
#脚本process_port_check.sh 内容: 
#!/bin/bash 
check_process(){ 
NUM=`ps -ef | grep -v grep | grep -v bash | grep ${NAME} | wc -l` 
if [ $NUM -eq 0 ];then 
echo 100 
else 
echo 50 
fi 
} 
check_port(){ 
ss -tnl | grep ${PORT} &> /dev/null 
if [ $? -eq 0 ];then 
echo 50 
else 
echo 100 
fi 
} 
main(){ 
case $1 in 
process) 
NAME=$2 
check_process; 
;; 
port) 
PORT=$2 
check_port; 
;; 
esac 
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值