设为首页 收藏本站
查看: 1568|回复: 0

[经验分享] zabbix-agent安装及添加配置nginx,mysql及系统的监控

[复制链接]

尚未签到

发表于 2018-11-14 13:20:12 | 显示全部楼层 |阅读模式
  本文接上文 --zabbix3.0版本部署使用http://blog.51cto.com/superleedo/2070775
  增加一台新的客户端机器 192.168.1.13
  
  系统版本centos7最小化安装,配置好网络能访问外网,关闭防火墙,配置基础环境及java环境
  网络自行配置
  关闭防火墙
  setenforce 0
  systemctl stop firewalld
  systemctl disable firewalld
  sed -i 's/enforcing/disabled/g' /etc/selinux/config
  
  设置yum源
  yum install wget -y
  cd /etc/yum.repos.d/
  wget http://mirrors.aliyun.com/repo/Centos-7.repo
  wget http://mirrors.aliyun.com/repo/epel-7.repo
  yum -y install epel-release
  yum install net-tools -y
  yum install tree -y
  yum install lrzsz -y
  yum install vim-enhanced -y
  本机的zabbix-agent,nginx,mysql都采用yum方式安装
  安装zabbix-agent
  yum install -y unixODBC
  rpm -Uvh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.3-1.el6.x86_64.rpm
  修改配置
  vim /etc/zabbix/zabbix_agentd.conf
  PidFile=/var/run/zabbix/zabbix_agentd.pid
  LogFile=/var/log/zabbix/zabbix_agentd.log
  LogFileSize=0
  Server=192.168.1.12
  ServerActive=192.168.1.12
  Hostname=192.168.1.13
  Include=/etc/zabbix/zabbix_agentd.d/
  创建目录
  cd /var/run/
  mkdir zabbix
  touch zabbix/zabbix_agentd.pid
  chown zabbix.zabbix zabbix/ -R
  chmod g+w zabbix/
  cd /var/log/
  mkdir zabbix
  chown zabbix.zabbix zabbix/ -R
  启动zabbix-agent
  /etc/init.d/zabbix-agent start
  用netstat -lnupt 查看 10050是否启动
  安装nginx,mariadb
  rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  yum install -y nginx
  systemctl start nginx
  yum install mariadb* -y
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  mysql安装无法启动可能需要清理原有的内容
  yum remove mysql* -y
  yum remove mariadb* -y
  find / -name "mariadb" -exec rm -rf {} \;
  rm -f my.cnf.rpmsave
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  systemctl start mariadb
[root@zabbix-agent run]# netstat -lnupt  
Active Internet connections (only servers)
  
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
  
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2284/mysqld
  
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2340/nginx: master
  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      983/sshd
  
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      2540/zabbix_agentd
  
tcp6       0      0 :::22                   :::*                    LISTEN      983/sshd
  
tcp6       0      0 :::10050                :::*                    LISTEN      2540/zabbix_agentd
  监控服务端界面接入1.13机器的系统状态监控
  添加新主机
  配置---主机---创建主机---添加
DSC0000.jpg

  选择添加 OS linux 模板,用来监控1.13机器的系统磁盘内存等
DSC0001.jpg

  在模板中添加完成后,在主机上也要点击添加,添加后生成的监控图如下
DSC0002.jpg

  问题解决:监控图的图例显示不正常,汉字注释无法正常显示
  从windows下控制面板->字体->选择一种中文字库例如“楷体” 上传到zabbix服务器上
DSC0003.jpg

  将这个文件拷贝到zabbix服务端的数据目录的fonts目录下
  [root@slave02 run]# ll /data/web/www.zabbix.com/fonts/
  总用量 12252
  -rw-r--r-- 1 zabbix zabbix   756072 5月  18 2016 DejaVuSans.ttf
  -rw-r--r-- 1 zabbix zabbix 11785184 6月  11 2009SIMKAI.ttf
  接着修改配置文件
  vim  /data/web/www.zabbix.com/include/locales.inc.php
  下面两项的DejaVuSans修改为SIMKAI
  define('ZBX_GRAPH_FONT_NAME',           'SIMKAI');
  define('ZBX_FONT_NAME', 'SIMKAI');
  修改完成后,zabbix监控图形中的中文字就不会出现乱码了!
DSC0004.jpg

  下面添加nginx监控
  在客户端修改nginx配置
  vim /etc/nginx/conf.d/default.conf
  添加stub_status on
  server {
  listen       80;
  server_name  localhost;
  location / {
  stub_status on;
  root   /usr/share/nginx/html;
  index  index.html index.htm;
  }
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
  root   /usr/share/nginx/html;
  }
  }
  然后重启nginx
  systemctl restart nginx
  使用网页浏览 http://192.168.1.13:80/nginx_status,显示如下图则模块已打开
DSC0005.jpg

  在客户端编写脚本:nginx_status.sh,并将其放至/etc/zabbix/scripts 目录下,并添加执行权限
  cd /etc/zabbix/
  mkdir scripts
  cd scripts/
  vim nginx_status.sh
  #!/bin/bash
  HOST=192.168.1.13
  PORT=80
  function ping {
  /sbin/pidof nginx | wc -l
  }
  function active {
  curl -s "http://$HOST:$PORT/nginx_status" | grep 'Active'| awk '{print $NF}'
  }
  function reading {
  curl -s "http://$HOST:$PORT/nginx_status" | grep 'Reading' |awk '{print $2}'
  }
  function writing {
  curl -s "http://$HOST:$PORT/nginx_status" | grep 'Writing' | awk '{print $4}'
  }
  function waiting {
  curl -s "http://$HOST:$PORT/nginx_status" | grep 'Waiting' | awk '{print $6}'
  }
  function accepts {
  curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $1}'
  }
  function handled {
  curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $2}'
  }
  function requests {
  curl -s "http://$HOST:$PORT/nginx_status" | awk NR==3 | awk '{print $3}'
  }
  $1
  保存问件,添加执行权限
  chmod 755 nginx_status.sh
  然后,将自定义的 UserParameter 加入配置文件,然后重启 zabbix-agent
  vim /etc/zabbix/zabbix_agentd.conf
  UserParameter=nginx.status
  • ,/etc/zabbix/scripts/nginx_status.sh $1
      项目回到服务端,下载Template App Nginx  模板
      http://www.ttlsa.com/wp-content/uploads/2015/10/zabbix_monitor_nginx_template_ttlsa_com.zip
      解压后将其中的zbx_export_templates文件导入即可
    DSC0006.jpg

      导入后即可使用nginx模板 添加到1.13
    DSC0007.jpg

      图形查看监控状态
    DSC0008.jpg

      添加,mysql监控
    DSC0009.jpg

      添加后的mysql图形监控状态
    DSC00010.jpg

      添加自定义服务监控
      Simple checks 简单检查  通常用来检查远程未安装客户端的服务,被监控客户端无需安装 zabbix agent 客户端,zabbixserver 直接使用 simplechecks(简单检查) 来收集数据,用来检测远程服务器某端口是否在监听。
      配置----主机----监控项----创建监控项---创建触发器
    DSC00011.jpg

    DSC00012.jpg

      停止ftp服务后查看监控提示
    DSC00013.jpg

      监控报警有提示,自定义监控成功。
      mysql监控
      结合上面已经使用的mysql模板,会生产相应的配置文件userparameter_mysql.conf
      /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
      为数据库的root创建密码
      $ mysqladmin -uroot password  "zabbix"
      进入数据库  mysql -uroot -pzabbix
      登录数据库,创建zabbix数据库及用户名和密码
      mysql> create database zabbix default charset utf8;
      Query OK, 1 row affected (0.00 sec)

      mysql> grant all privileges on *.* to zabbix@'localhost'>  Query OK, 0 rows affected (0.03 sec)

      mysql> grant all privileges on *.* to zabbix@'%'>  Query OK, 0 rows affected (0.03 sec)
      mysql> flush privileges;
      Query OK, 0 rows affected (0.00 sec)
      下面用我们自定义下mysql监控脚本 check_mysql.sh
      cd /etc/zabbix/scripts/
      vim check_mysql.sh  添加下面内容
      #!/bin/bash
      # 用户名
      MYSQL_USER='zabbix'
      # 密码
      MYSQL_PWD='zabbix'
      # 主机地址/IP
      MYSQL_HOST='192.168.1.13'
      # 端口
      MYSQL_PORT='3306'
      # 数据连接
      MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
      # 参数是否正确
      if [ $# -ne "1" ];then
      echo "arg error!"
      fi
      # 获取数据
      case $1 in
      Uptime)
      result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`
      echo $result
      ;;
      Com_update)
      result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
      echo $result
      ;;
      Slow_queries)
      result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`
      echo $result
      ;;
      Com_select)
      result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
      echo $result
      ;;
      Com_rollback)
      result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
      echo $result
      ;;
      Questions)
      result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`
      echo $result
      ;;
      Com_insert)
      result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
      echo $result
      ;;
      Com_delete)
      result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
      echo $result
      ;;
      Com_commit)
      result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`
      echo $result
      ;;
      Bytes_sent)
      result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
      echo $result
      ;;
      Bytes_received)
      result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
      echo $result
      ;;
      Com_begin)
      result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`
      echo $result
      ;;
      *)
      echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
      ;;
      esac
      然后给文件加上执行权限
      chmod 755 check_mysql.sh
      下面修改配置userparameter_mysql.conf
      vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
      将配置修改成下面这样,注释掉原有的mysql.status和mysql.ping,添加自己定义的UserParameter值
      UserParameter=mysql.status
  • ,/etc/zabbix/scripts/check_mysql.sh $1
      UserParameter=mysql.size
  • ,bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N'
      UserParameter=mysql.ping,/usr/bin/netstat -ntpl |grep 3306|grep mysql|wc |awk '{print $1}'
      UserParameter=mysql.version,mysql -V
      执行 chmod +s /bin/netstat 防止 zabbix-server 远程调用失效
      然后重启zabbix客户端
      /etc/init.d/zabbix-agent stop
      /etc/init.d/zabbix-agent start
      在界面查看自定义的mysql监控项是否生效
    DSC00014.jpg

    DSC00015.jpg

      显示已启用表示生效
      可以到图形监控中查看mysql图形显示
    DSC00016.jpg

      下面增加mysqlstatus的新图形
    DSC00017.jpg

    DSC00018.jpg

      监控状态运行正常
      本文先到这里,下文继续深化zabbix报警功能。



  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-635045-1-1.html 上篇帖子: CentOS 7 yum 安装 Nginx 下篇帖子: nginx配置状态模块报错
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表