zoukankan      html  css  js  c++  java
  • 企业——Zabbix分布式服务监控平台添加监控服务(http、nginx、mysql)

    一.实验环境

      此实验是在前两个实验(zabbix的部署、zabbix proxy的配置)完成之后,接着完成的。给被监控的主机添加监控的服务,比如说,监控server2的http服务、监控server3的nginx服务等。

      172.25.254.1  zabbix server  server1

      172.25.254.2  zabbix agent(http)  server2

      172.25.254.3  zabbix agent(nginx)  server3

      172.25.254.4  zabbix proxy  server4

    二.添加监控服务 HTTP

      http的模板zabbix内有,是zabbix自带的监控模板。

      点击 配置->主机-> server2 ->模版 ->选择 -> Template App HTTP Service

          

          

      再点击 添加 -> 更新

          

      这样主机 server2的监控项中就出现了 HTTP 服务

          

      HTTP服务监控完成。

    三.添加监控服务 Nginx

      nginx的监控项zabbix没有,需要在agent端部署nginx服务

    1.部署nginx服务

      tar zxf nginx-1.15.8.tar.gz
      yum install gcc make pcre-devel zlib-devel -y
      cd nginx-1.15.8
      vim auto/cc/gcc
        171 # debug
        172 #CFLAGS="$CFLAGS -g" ##关闭debug日志

      ./configure --prefix=/usr/local/nginx --with-http_stub_status_module  ##源码编译

      make && make install
      vim /usr/local/nginx/conf/nginx.conf
        48 location /status {
        49 stub_status on;      ##Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:./configure –with-http_stub_status_module
        50 access_log off;      ##关闭日志记录
        51 allow 127.0.0.1;    ##只允许本机访问
        52 deny all;
        53 }

      /usr/local/nginx/sbin/nginx -t  ##nginx配置文件检测是否含有语法错误。可以添加相应的环境变量,就可以不用绝对路径。
        nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
        nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
      /usr/local/nginx/sbin/nginx   ##开启nginx服务。可以添加相应的环境变量,就可以不用绝对路径。

    2.测试:

      (1)在浏览器页面上输入:http://172.25.254.4/status访问nginx用来做测试

      (2)利用curl命令在shell界面进行测试:

      curl http://127.0.0.1/status
      Active connections: 1
      server accepts handled requests
      2 2 1
      Reading: 0 Writing: 1 Waiting: 0

      过滤监控参数(访问次数,连接次数等等)
      将过滤出来的参数以key—value键值对的形式存储:

      curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
        1
      curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
        30

    3.创建nginx的监控项  nginx.active和nginx.access

      cd /etc/zabbix/zabbix_agentd.d/
      ls
        userparameter_mysql.conf
      cp  userparameter_mysql.conf  userparameter_nginx.conf      ##利用监控mysql服务的配置文件模版复制一份给nginx服务
      vim userparameter_nginx.conf
        UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'  ##获取连接数(nginx.active为key值,获得的连接数为value值)
        UserParameter=nginx.access,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'    ##获取接受请求数
        UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $2}'   ##获取建立三次握手的次数
        UserParameter=nginx.requests,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'   ##获取请求次数
      systemctl restart zabbix-agent

    4.zabbix-server端测试是否能拿到数据

      yum install -y zabbix-get-4.0.5-1.el7.x86_64.rpm  ##可以拿到

      zabbix_get -s 172.25.254.2 -p 10050 -k "nginx.active"
        1
      zabbix_get -s 172.25.254.2 -p 10050 -k "nginx.access"
        33

      zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key 是否能正常获取到数据,在测试自定义监控的时候特别有用

      Options:
        -s --host <host name or IP>          Specify host name or IP address of a host  ##agent 端的 ip
        -p --port <port number>              Specify port number of agent running on the host. Default is 10050   ##agent 监听的端口   默认是10050
        -I --source-address <IP address>     Specify source IP address    ##如果server 端有多个网卡 可以指定通过哪个网卡进行数据获取
        -k --key <key of metric>             Specify key of item to retrieve value for    ##执行的参数
        -h --help                            Give this help
        -V --version                         Display version number

    5.配置—>主机—>点击server2主机—>点击监控项—>创建监控项

          

      添加监控项,写好之后记得更新

          

      再创建一个监控项,写好更新

          

      然后添加图形,将刚才的两个监控项导入:

          

      获得监控图形

          

      但是我们发现这里的字体是乱码,所以要进行修改。下载我们喜欢的字体到/usr/share/zabbix/fonts目录下,并替换defines.inc.php 的字体

       cd /usr/share/zabbix/fonts

       ls
        simkai.ttf

      pwd
        /usr/share/zabbix/include
      vim defines.inc.php
        :%s/graphfont/simkai/g

      再次刷新页面,显示的字体就不是乱码了,等待一会,就会有监控数据:

          

    四、监控 zabbix server 上的 mysql 服务

     1.首先我们可以给Zabbix server主机,添加自带的监控模板

          

          

          

      但是自带的模板监控项太少了,我们可以继续添加模板增加监控项

      向zabbix监控中导入模版监控mysql的模版percona

      percona:开源的mysql分析工具

    2.配置mysql

      mkdir /var/lib/zabbix
      cd /var/lib/zabbix/
      vim .my.cnf
        [mysql]
          host = localhost
          user = root
          password = westos
          socket = /var/lib/mysql/mysql.sock

        [mysqladmin]
          host = localhost
          user = root
          password = westos
          socket = /var/lib/mysql/mysql.sock

      systemctl restart zabbix-agent

    3.安装percona-zabbix模版

      ls
        percona-zabbix-templates-1.1.8-1.noarch.rpm
      rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
      cd /var/lib/zabbix/
      ls
        percona
      cd percona/
      cd templates/
      ls
        userparameter_percona_mysql.conf zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
      cp userparameter_percona_mysql.conf   /etc/zabbix/zabbix_agentd.d/   ##拷贝conf 文件到被监控的mysql服务器上(server1主机)

      cd ..
      cd scripts/
      ls
        get_mysql_stats_wrapper.sh ss_get_mysql_stats.php


      vim ss_get_mysql_stats.php.cnf  ##由于percona的监控脚本是使用php写的,所以需要准备好php运行环境, 将zabbix的数据库和密码写入php脚本中 
        <?php
          $mysql_user = 'root';
          $mysql_pass = 'westos';

        ?>

      systemctl restart zabbix-agent

    4.测试percona的脚本,过滤监控项

       cd /etc/zabbix/zabbix_agentd.d/
      /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg     ##测试脚本

      cd /tmp
      cat localhost-mysql_cacti_stats.txt    ##查看监控项

      rm -f localhost-mysql_cacti_stats.txt

     5.测试

          

          

          

  • 相关阅读:
    GoldenGate配置(一)之单向复制配置
    Qt4.8.6+mingw+Qgis2.4.0基于QGis的二次开发
    Linux用户及用户组设置
    HDU1013_Digital Roots【大数】【水题】
    随意一条查询sql转换为查询结果集相应的数目
    对文件地址的几种概念的理解
    2014-10深圳全球架构师峰会
    有沃更精彩,沃课堂理想的移动学习平台
    自己动手写CPU之第九阶段(8)——MIPS32中的LL、SC指令说明
    Inno Setup入门(二)——修改安装过程中的图片
  • 原文地址:https://www.cnblogs.com/wf-aiyouwei/p/10740396.html
Copyright © 2011-2022 走看看