4-Zabbix nginx/redis/memcahced监控
  AWkq7aIjuRwO 2023年11月02日 51 0

应用级监控

tomcat是用jmx接口来监控的

memcached如何来监控

这个需要看tomcat笔记4.0 session共享里面 安装了memcached

两台安装了memcached的机器

将脚本 传到 memcached服务器上去

cd /etc/zabbix/zabbix_agentd.d

memcached_monitor.sh

chmod +x memcached_monitor.sh

以上操作 两台都需要做

#!/bin/bash
memcached_status(){
##定义一个函数(切片,下面需要调用)
  M_PORT=$1
  M_COMMAND=$2
  echo -e "stats\nquit" | ncat 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

##调用函数的方法  直接写函数的名称

#!/bin/bash
memcached_status(){
M_PORT=$1
M_COMMAND=$2
echo -e "stats\nquit" | ncat 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

memcached比较特殊  获取他的信息 可以用

telnet 192.168.1.207 11211

为通后 输入stats  可以 获取详细信息

需要下载nmap   两台agent 都需要下载

apt -y install nmap

他会安装一个工具 ncat   这个工具会连接 通过ip加端口号 可以连接 给他传值

echo "stats" | ncat 127.0.0.1 11211

这条命令是 将参数 给ncat  

4-Zabbix nginx/redis/memcahced监控_zabbix

echo "stats" | ncat 127.0.0.1 11211 | grep curr_connections

过滤出我们想要的内容

4-Zabbix nginx/redis/memcahced监控_memcached_02

echo "stats" | ncat 127.0.0.1 11211 | grep curr_connections | awk '{print$NF}'

4-Zabbix nginx/redis/memcahced监控_zabbix_03

最终是为了获取这个值

最终就是为了监控 这些数据

第一出图 如果超出了我们的阈值 让他报警

比如我只能让他连接数 只能为100  如果超过100就报警

vim /etc/zabbix/zabbix_agentd.conf

修改配置文件 添加key值的目录

脚本目录

4-Zabbix nginx/redis/memcahced监控_nginx_04

UserParameter=memcache_status[*],/etc/zabbix/zabbix_agentd.d/memcached_monitor.sh "$1" "$2" "$3"

把这条添加进去

systemctl restart zabbix-agent.service

重启agent

然后切换server 去执行一下试试

zabbix_get -s 192.168.1.207 -k memcache_status["memcached_status","11211","limit_maxbytes"]

memcached_status 是配置文件定义的key值

11211

这时候我们新建一个模板

4-Zabbix nginx/redis/memcahced监控_zabbix_05

4-Zabbix nginx/redis/memcahced监控_redis_06

名字就叫memcache

群组 弄到Templates里面

然后点添加

4-Zabbix nginx/redis/memcahced监控_memcached_07

找到刚才创建的模板

然后点监控项

4-Zabbix nginx/redis/memcahced监控_memcached_08

4-Zabbix nginx/redis/memcahced监控_redis_09

memcache连接数

memcache_status["memcached_status","11211","curr_connections"]

memcached

添加就行了

触发器的概念:就是定义一个阈值  超过这个阈值就报警

模板 监控器 触发器概念

比如当前有个主机 zabbix-agent

agent上有监控项

尽量我们是 先创建模板 然后在模板里添加监控项

模板里面有: 应用集 监控项 触发器 图形

4-Zabbix nginx/redis/memcahced监控_zabbix_10

比如我们把这个值写大于1报警

4-Zabbix nginx/redis/memcahced监控_zabbix_11

4-Zabbix nginx/redis/memcahced监控_zabbix_12

4-Zabbix nginx/redis/memcahced监控_nginx_13

4-Zabbix nginx/redis/memcahced监控_nginx_14

大于2就报警

然后等待报警

4-Zabbix nginx/redis/memcahced监控_memcached_15

4-Zabbix nginx/redis/memcahced监控_redis_16

然后将模板添加到被监控主机上去

echo -e "stats\n quit" | ncat 127.0.0.1 11211 | grep "curr_connections" | awk '{print$NF}'

切换到被监控的主机

查看数多少

如果没有大于2  那就多连几个机器

用其他主机

telnet 被监控主机ip 11211

等到大于2看看web端报警了没

4-Zabbix nginx/redis/memcahced监控_redis_17

4-Zabbix nginx/redis/memcahced监控_redis_18

添加图形

4-Zabbix nginx/redis/memcahced监控_nginx_19

4-Zabbix nginx/redis/memcahced监控_redis_20

然后我们再添加一个监控项

我们去看下 都可以添加那些

echo -e "stats\n quit" | ncat 127.0.0.1 11211

查看一下

4-Zabbix nginx/redis/memcahced监控_zabbix_21

获取这个值

bytes_written

这个是memcached写的大小

4-Zabbix nginx/redis/memcahced监控_nginx_22

4-Zabbix nginx/redis/memcahced监控_nginx_23

4-Zabbix nginx/redis/memcahced监控_memcached_24

memcache写入大小

memcache_status["memcached_status","11211","bytes_written"]

memcached

添加

触发器就不加了  和上个一样  添加就行

我们点图

4-Zabbix nginx/redis/memcahced监控_memcached_25

4-Zabbix nginx/redis/memcahced监控_memcached_26

点进去刚才的图形

可以给里面再加个图

4-Zabbix nginx/redis/memcahced监控_memcached_27

4-Zabbix nginx/redis/memcahced监控_redis_28

4-Zabbix nginx/redis/memcahced监控_zabbix_29

他会区分颜色不一样

加条线

redis监控项目!!!   注意如果只有一个redis模板  会不显示绿灯  但是照样可以用

需要一个装有redis的机器

还要安装上agent

切换到 这台agent-redis-1机器

传个脚本上来

redis_monitor.sh

传到这个目录

cd /etc/zabbix/zabbix_agentd.d
chmod +x redis_monitor.sh

加权限

4-Zabbix nginx/redis/memcahced监控_nginx_30

这个脚本

就是

/apps/redis/bin/redis-cli info

获取redis 的一些信息

4-Zabbix nginx/redis/memcahced监控_nginx_31

used_memory:854304

比如我们获取这条信息

这是占用的字节

sh redis_monitor.sh redis_status 6379 used_memory:

4-Zabbix nginx/redis/memcahced监控_zabbix_32

这就是我们获取的这个值

把脚本目录加到agent配置文件里面

vim /etc/zabbix/zabbix_agentd.conf
UserParameter=redis_status[*],/etc/zabbix/zabbix_agentd.d/redis_monitor.sh "$1" "$2" "$3"

添加这条内容

4-Zabbix nginx/redis/memcahced监控_nginx_33

systemctl restart zabbix-agent.service

重启agent

然后切换server 端测试

zabbix_get -s 192.168.1.206 -k redis_status["redis_status","6379","used_memory:"]

4-Zabbix nginx/redis/memcahced监控_zabbix_34

如果出现这种情况 是因为 我们测试的时候   再agent端用root用户执行的  

这个脚本输出一个文件  他的属主属组都是root  zabbix 权限低  我们需要去吧这个文件删掉  文件位置 看脚本内容

zabbix_get -s 192.168.1.206 -k redis_status["redis_status","6379","used_memory:"]

然后再去server 端测试

4-Zabbix nginx/redis/memcahced监控_nginx_35

然后我们去web界面创建模板

4-Zabbix nginx/redis/memcahced监控_zabbix_36

4-Zabbix nginx/redis/memcahced监控_zabbix_37

4-Zabbix nginx/redis/memcahced监控_zabbix_38

创建监控项

4-Zabbix nginx/redis/memcahced监控_zabbix_39

redis-内存使用

redis_status["redis_status","6379","used_memory:"]

创建触发器

因为我虚拟机是1G内存的  以下是半G 内存的字节

超过0.5G 就报警

expr 1024 \* 1024 \* 1024 / 2

536870912

4-Zabbix nginx/redis/memcahced监控_redis_40

4-Zabbix nginx/redis/memcahced监控_redis_41

创建图形

4-Zabbix nginx/redis/memcahced监控_zabbix_42

4-Zabbix nginx/redis/memcahced监控_zabbix_43

然后将模板 关联到主机里面就可以了

再去监控nginx

需要一台安装nginx +zabbix-agent的主机

打开nginx配置文件

vim /apps/nginx/conf/nginx.conf

4-Zabbix nginx/redis/memcahced监控_redis_44

添加状态页

location /nginx-status {
       stub_status;
   }

/apps/nginx/sbin/nginx -s reload

重载一下

浏览器访问

http://192.168.1.203/nginx-status

4-Zabbix nginx/redis/memcahced监控_nginx_45

就能看到状态页了

传个脚本

cd /etc/zabbix/zabbix_agentd.d/

nginx_status.sh

chmod +x nginx_status.sh

加权限

4-Zabbix nginx/redis/memcahced监控_memcached_46

将这些ip改为本机nginx 的ip

:%s/原数据/替换的数据

curl http://192.168.1.203/nginx-status

命令行试试

4-Zabbix nginx/redis/memcahced监控_redis_47

这个脚本就是 过滤这六个数字   具体内容 自己看吧

然后去配置文件中添加脚本目录

vim /etc/zabbix/zabbix_agentd.conf

4-Zabbix nginx/redis/memcahced监控_memcached_48

UserParameter=nginx_status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh "$1" "$2" "$3"

重启agent

systemctl restart zabbix-agent.service

去server机器上测试 脚本是否能用

zabbix_get -s 192.168.1.203 -k nginx_status["nginx_status","80","active"]

4-Zabbix nginx/redis/memcahced监控_memcached_49

去web界面创建模板

4-Zabbix nginx/redis/memcahced监控_zabbix_50

4-Zabbix nginx/redis/memcahced监控_zabbix_51

4-Zabbix nginx/redis/memcahced监控_memcached_52

创建触发器  因为没那么多机器 就设置 大于2报警

4-Zabbix nginx/redis/memcahced监控_memcached_53

创建图

4-Zabbix nginx/redis/memcahced监控_memcached_54

然后点击主机  给他添加模板

4-Zabbix nginx/redis/memcahced监控_redis_55

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  eHipUjOuzYYH   2023年12月07日   28   0   0 数据乐观锁redis
  jnZtF7Co41Wg   2023年12月11日   31   0   0 nginx客户端服务端
  SzVG4h2uFmuP   2023年12月06日   26   0   0 监控zabbix
  SzVG4h2uFmuP   2023年12月12日   33   0   0 zabbix
  stLBpDewCLT1   2023年12月08日   30   0   0 nginx
  jnZtF7Co41Wg   2023年12月10日   22   0   0 nginx客户端服务端NFS
  eHipUjOuzYYH   2023年12月06日   29   0   0 nginxHTTP
  eHipUjOuzYYH   2023年12月06日   26   0   0 nginx加载IPV6
  SzVG4h2uFmuP   2023年12月09日   46   0   0 zabbix
AWkq7aIjuRwO