zoukankan      html  css  js  c++  java
  • zabbix 监控nginx/php/mysql/redis 只能监控到运行状态不能获取其他数据的优化

    zabbix监控故障优化:

    思路:
    zabbix监控数据分为配置文件也就是userparameter配置,获取数据脚本配置和权限,还有程序获取数据支持三部分,如果监控除了问题,从着三方面进行排查

    redis监控没数据或只能监控到服务是否开启

    • 首先确认脚本是否具有执行权限
    • conf配置文件指定的脚本路径是否正确
    • zabbix-agent配置文件Hostname参数是否与web端一致

    mysql用mysqladmin监控数据库的时候出现不支持key的情况,用zabbix_get获取数据的时候能正常获取到数据,但是获取到的数据内容有:

     connection to database 'zabbix' failed: [1045] Access denied for user 'root'@'localhost' (using password: NO)

    所以进行mysql配置更改,修改mysql配置文件,增加mysqladmin配置:

    [mysqladmin]
    user = 用户名
    password = 密码
    socket = socket文件
    

    然后再用zabbix_get获取数据,看到提示

    Warning: Using a password on the command line interface can be insecure.

    去掉mysql监控脚本和配置文件里的用户名和密码端口地址等信息,因为配置过mysqladmin用户,所以或自动 户去用户名和密码。mysql5.6之后不能使用铭文密码。

    nginx监控没数据,或只能获取到是否正在运行

    故障原理与mysql一样。
    1. 首先确认脚本加参数时候能正常执行,并能正常获取数据。有的机器执行脚本加参数的时候获取不到数据,或者获取到的数据是错误的数据,有可能是因为nginx没开status监控导致的。配置nginx配置文件server字段下添加 ngx_status监控:

                    #监控nginx
            location /ngx_status
            {
                    stub_status on;
                    access_log off;
                    allow 127.0.0.1;
                    deny all;
            }
    

    再次执行curl http://host/ngx_status能看到如下数据就成功了

    这里要注意一下:
    1.写脚本的收curl后面的地址一定要与nginx指定的地址一致,比如nginx指定了域名和端口,那这里也一定与之保持一直
    2.当nginx配置ssl并将地址永久重定向到443端口后,这里的脚本要用https才能获取到数据

    Active connections: 3 
    server accepts handled requests
     1880035 1880035 2157371 
    Reading: 0 Writing: 1 Waiting: 2

    2.正常执行脚本,看能否获取数据,如果获取数据没问题。用zabbix_get在服务端获取数据。如果提示不支持的key,请留意获取数据的输出,除了数值之外,是否有报错信息。比如脚本生成的文件,zabbix用户是否具有其权限。如果没有问题,确认配置文件指定的脚本路径是否正确。

    php-fpm

    服务器没有配置php获取数据的php配置文件,Userparameter,添加配置文件

    UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://host/status?xml" | grep "<$1>" | awk -F'>|<' '{ print $$3}'

    开启nginx对php状态的监控:
    打开nginx配置文件添加如下内容:

            #监控php
            location /status {
                    fastcgi_index  index.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                    include        fastcgi_params;
                    fastcgi_pass 127.0.0.1:9000;
            }

    reload nginx 并重启zabbix-agent

    tcp监控

    问题:通过执行脚本加参数可以获取到本机tcp数据,但是服务端zabbix_get获取到报错信息提示权限不足
    **方法**tcp监控脚本有生成文件到tmp路径下,注意生成文件的属主。zabbix用户是否对其有权限。
    通过更改脚本,在生成文件后,更改文件的属主。
    zabbix服务端用zabbix_get获取数据成功。

  • 相关阅读:
    系统分析员、系统架构师、项目经理的区别
    C# 委托(Delegate) 事件(Event)应用详解
    项目管理的通俗解释
    什么是依赖注入
    程序员每天该做的事
    鸿蒙应用开发入门(三):开发第一个鸿蒙应用
    #2020征文手机# 零基础鸿蒙开发4 如何播放一个全屏视频(JS版)
    【资源下载】快来获取HarmonyOS官方通用规范图标
    #2020征文手机# 快速搭建一款鸿蒙分布式分歧终端机原型
    #2020征文TV#鸿蒙应用开发TVHelloWord (二) 传递数据、跳转
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10808465.html
Copyright © 2011-2022 走看看