zabbix监控docker各容器和redisnginx

粘贴下部署步骤,完整整理的文档和文档需要积分下载:

docker自动发现各容器的资源使用情况:

======================================第一种方式监控:使用zabbix-agent客户端,共八步======================================
1.编译文件
# 如有现成zabbix_module_docker.so 文件,可忽略第一步。注意zabbix-server版本
yum install -y wget autoconf automake gcc git pcre-devel
##4.2.1 为对应zabbix-server版本
git clone -b 4.2.1 --depth 1 https://github.com/zabbix/zabbix.git /usr/src/zabbix
cd /usr/src/zabbix
./bootstrap.sh
./configure --enable-agent
mkdir src/modules/zabbix_module_docker
cd src/modules/zabbix_module_docker
wget https://raw.githubusercontent.com/monitoringartist/zabbix-docker-monitoring/master/src/modules/zabbix_module_docker/zabbix_module_docker.c
wget https://raw.githubusercontent.com/monitoringartist/zabbix-docker-monitoring/master/src/modules/zabbix_module_docker/Makefile
make
##最后会生成文件:/usr/src/zabbix/src/modules/zabbix_module_docker/zabbix_module_docker.so

2.上传编译后文件:
mkdir -p /usr/src/zabbix/src/modules/zabbix_module_docker/
cd /usr/src/zabbix/src/modules/zabbix_module_docker/
rz zabbix_module_docker.so
chmod 777 /usr/src/zabbix/src/modules/zabbix_module_docker/zabbix_module_docker.so
  
3.zabbix用户赋权
usermod -aG docker zabbix
4.设置zabbix-agent
	vi /etc/zabbix/zabbix_agentd.conf
##尾部添加
LoadModulePath=/usr/src/zabbix/src/modules/zabbix_module_docker
LoadModule=zabbix_module_docker.so
DebugLevel=4
		
5.重启zabbix-agent
service zabbix-agent restart

6.最后在zabbix-server上导入模板文件:Zabbix-Template-App-Docker.xml

7.最后在zabbix-server上为主机启用模板。

8.(可忽略)最后等五分钟后,在主页的最新数据中心查看Docker的监控数据。
======================================结束======================================



====================(废弃)第二种方式监控: 使用docker的zabbix-agent容器======================================
1.准备文件
最终文件:
mkdir -p /usr/src/zabbix/src/modules/zabbix_module_docker/
cd /usr/src/zabbix/src/modules/zabbix_module_docker/
rz    ##上传文件zabbix_module_docker.so
chmod 777 /usr/src/zabbix/src/modules/zabbix_module_docker/zabbix_module_docker.so
  
2.zabbix用户赋权
usermod -aG docker zabbix

3.运行docker容器
样例(仅参考,不需运行)
docker run \
  --name=dockbix-agent-xxl \
  --net=host \
  --privileged \
  -v /:/rootfs \
  -v /var/run:/var/run \
  --restart unless-stopped \
  -e "ZA_Server=<ZABBIX SERVER IP/DNS NAME/IP RANGE>" \
  -e "ZA_ServerActive=<ZABBIX SERVER IP/DNS NAME>" \
  -d monitoringartist/dockbix-agent-xxl-limited:latest

实例(需运行)
docker run  --name=`hostname`  --net=host  --privileged  -v /:/rootfs   -v /var/run:/var/run  --restart unless-stopped  -e "ZA_Server=192.168.0.87"  -e "ZA_ServerActive=192.168.0.87"  -d monitoringartist/dockbix-agent-xxl-limited:latest


##官方资料https://github.com/monitoringartist/Zabbix-Docker-Monitoring



#ansible批回放
ansible docker-agents -m shell -a  "mkdir -p /usr/src/zabbix/src/modules/zabbix_module_docker/ && usermod -aG docker zabbix && echo -e '\nLoadModulePath=/usr/src/zabbix/src/modules/zabbix_module_docker\nLoadModule=zabbix_module_docker.so' >>  /etc/zabbix/zabbix_agentd.conf" -k
ansible docker-agents -m copy -a  "src=/usr/src/zabbix/src/modules/zabbix_module_docker/zabbix_module_docker.so dest=/usr/src/zabbix/src/modules/zabbix_module_docker/zabbix_module_docker.so mode=777" -k
ansible docker-agents -m shell -a  "service zabbix-agent restart" -k

 

REDIS

# Redis
#
# This content is licensed GNU GPL v2
# Author: Alexey Dubkov <alexey.dubkov@gmail.com>
#

# Discovery
#UserParameter=redis.discovery,/etc/zabbix/script/redis/zbx_redis_stats.js localhost list_key_space_db

# Return Redis statistics
#UserParameter=redis[*],/etc/zabbix/script/redis/zbx_redis_stats.js $1 $2 $3

## redis有密码: 添加: -a '修改成redis密码' 
## redis无密码: 去掉: -a '修改成redis密码' 
UserParameter=redis.discovery,python /etc/zabbix/script/redis/zbx_redis_stats.py localhost -p 7000 -a '****' list_key_space_db
UserParameter=redis[*],python /etc/zabbix/script/redis/zbx_redis_stats.py -a '***' $1 $2 $3 -p $4 

 

##注意修改   -p 7004 -a '2UipouHJx23!Kxs%'  为redis实际端口、密码  
##注意修改   192.168.0.87  修改成zabbix-server的内网ip地址

第一步:redis机器上安装基础软件环境
yum -y install python-pip
pip install redis

第二步:redis机器上创建目录、上传文件
mkdir -p /etc/zabbix/script/redis

上传文件到:/etc/zabbix/script/redis/zbx_redis_stats.py
上传文件到:/etc/zabbix/zabbix_agentd.d/zbx_redis.conf 

为python脚本赋权:chmod a+x /etc/zabbix/script/redis/zbx_redis_stats.py

第三步:redis机器上检查配置
#作用:检查	/etc/zabbix/zabbix_agentd.conf是否引入 配置文件/etc/zabbix/zabbix_agentd.d/zbx_redis.conf的父目录。
grep "Include=/etc/zabbix/zabbix_agentd.d/" /etc/zabbix/zabbix_agentd.conf || echo  "/etc/zabbix/zabbix_agentd.d/ !!!!!!!!config error!!!!!!!!"

#修改zabbix-server的ip地址
vi /etc/zabbix/script/redis/zbx_redis_stats.py
	zabbix_host = '192.168.0.87'         # 修改为Zabbix Server 内网 IP
	zabbix_port = 10051                  # 修改为Zabbix Server Port,默认10050
	
第四步:redis服务器上做本地调试(可忽略不做)
##检查Redis已连接的客户端数量
python /etc/zabbix/script/redis/zbx_redis_stats.py -a '4h1vlf30CWml24XxNS9Q1VnvP' 127.0.0.1 connected_clients none  -p 7004 

##示例说明
# 7000 == 要检查的端口号
# 2UipouHJx23!Kxs% ==  redis密码
# 127.0.0.1 == redis机器ip,如果脚本所在就是redis机器那就写127.0.0.1
# connected_clients   ==  要监控的字段connected_clients,取值范围redis-cli中info里面的信息。
# none  == 要监控的redis的数据库名,系统级别的信息不需要数据库名所以为none。

第五步:重启redis上的zabbix-agent,使配置生效。
service zabbix-agent restart

最后:zabbix-server的页面上导入模板文件:zbx_redis_templates.xml,为redis主机添加模板。
也可自行添加:监控项、触发器

1.监控项示例:  以6379端口,检查gcc_version为例
名称:redisclu$2:$1-$3
类型:Zabbix 客户端
键值:redisclu[{HOSTNAME}, gcc_version,none,7000]
信息类型: 字符
更新间隔: 60s

2.触发器示例:   以服务端口7000,是否转变为例。状态转变标识服务启停。
名称:Redis is down on {HOSTNAME}
表达式:{Template Redis Modified:net.tcp.port[{HOST.IP},7000].last(0)}=0

 

NGINX

UserParameter=nginx.status[*],/etc/zabbix/scripts/nginxs.sh $1
# service zabbix_agentd restart
#!/bin/bash
# Description:zabbix监控nginx性能以及进程状态
# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果

HOST="127.0.0.1"
PORT="443"

# 检测nginx进程是否存在
function check {
    /sbin/pidof nginx | wc -l 
}
# 检测nginx性能
function active {
    /usr/bin/curl "https://$HOST:$PORT/nginx_status/"  -k 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
    /usr/bin/curl "https://$HOST:$PORT/nginx_status/"  -k 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    /usr/bin/curl "https://$HOST:$PORT/nginx_status/"  -k 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    /usr/bin/curl "https://$HOST:$PORT/nginx_status/"  -k 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    /usr/bin/curl "https://$HOST:$PORT/nginx_status/"  -k 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    /usr/bin/curl "https://$HOST:$PORT/nginx_status/"  -k 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    /usr/bin/curl "https://$HOST:$PORT/nginx_status/"  -k 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
$1

 

1.nginx服务配置文件中开启桩

server {
	listen       80;
	server_name  localhost;

	location /nginx_status {
		stub_status on;
		access_log off;
		allow 127.0.0.1;
		allow 192.168.30.0/24;
		## 加上容器ip,如 allow 172.10.0.1;
		deny all;
	}
}

nginx重载配置文件指令: nginx -t && nginx -s reload

2.nginx服务器上添加zabbix-agent nginx配置文件
/etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf

3.nginx服务器上准备脚本
mkdir -p /etc/zabbix/scripts
#复制脚本文件到 /etc/zabbix/scripts/nginxs.sh
#脚本赋权
chmod a+x /etc/zabbix/scripts/nginx.sh
#重启zabbix-agent
service zabbix-agent restart

4.zabbix-server服务器上调试
yum install -y zabbix-get
zabbix_get -s 127.0.0.1 -k 'nginx.status[accepts]'   ##agent_ip_address 修改成nginx的实际内网ip

5.最后在zabbix-server上导入模板文件。zbx_export_templates.xml

6.最后在zabbix-server上为nginx主机启用Nginx模板。

 

 

文件积分下载地址:https://download.csdn.net/download/t694728793/11453797

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值