death114 发表于 2019-1-22 12:30:32

zatree for zabbix

  一、zatree for zabbix-2.4.6
  1、下载zatree
  git clone https://github.com/spide4k/zatree.git zatree
  git clone https://github.com/BillWang139967/zatree.git//3.0+
  

  2、复制zatree至httpd访问目录下:
  sudo cp zatree/zabbix-2.4.5/zatree-zabbix-2.4.5 /var/www/html/zabbix
  

  3、修改权限
  sudo chown -R apache.apache /var/www/html/zabbix
  

  4、修改zabbix配置,以使能够连接至数据库
  cd /var/www/html/zabbix
  sudo vim conf/zabbix.conf.php
  $DB['TYPE']   = 'MYSQL';
  $DB['SERVER']   = '192.168.10.15';
  $DB['PORT']   = '3306';
  $DB['DATABASE'] = 'zabbix';//数据库名
  $DB['USER']   = 'zabbix';//数据库用户
  $DB['PASSWORD'] = 'zabbix';//数据库密码
  // Schema name. Used for IBM DB2 and PostgreSQL.
  $DB['SCHEMA'] = '';
  $ZBX_SERVER      = '192.168.10.15';
  $ZBX_SERVER_PORT = '10051'; //zabbix监听端口
  $ZBX_SERVER_NAME = 'zabbix'; //主机名
  

  5、修改zabbix登录用的用户名和密码

  sudo vim zatree/zabbix_config.php
  'api_url'=>'api_jsonrpc.php',
  'user'=>'admin',
  'password'=>'zabbix',
  

  6、删除没用的图片信息
  sudo vim zatree/graph.php
  
  

  7、修改zatree标签的链接的错误(红色处为修改的地方)
  sudo vim zatree/header.php
  
  

  首页
  HostGraph
  Peckvalue-Table
  Peckvalue-Echart
  
  

  sudo vim zatree/echart.php
  
  
  
  
  
  
  
  

  sudo vim zatree/peckvalue.php
  
  
  
  
  
  
  
  

  sudo vim zatree/zabbix.php
  
  
  
  
  
  
  
  

  页面效果:
http://s1.运维网.com/wyfs02/M02/75/BD/wKioL1ZBsGzyDzQvAAAcnyhVJeE343.png
  

  8、如果出现下面的警告,可在php的配置文件中增加一行
  Warning:Cannot modify header information - headers already sent by (output started at /var/www/html/zabbix/zatree/graph.php:9) in /var/www/html/zabbix/zatree/graph.php
  

  sudo vim /etc/php.ini
  output_buffering = on
  

  9、重启zabbix_server服务
  sudo /etc/init.d/zabbix_server restart
  

  完成zatree的配置。
  

  二、zabbix discovery
  Configuration --> Discovery --> Create discovery rule

  配置name,IP range(支持网段),Delay,Check type,port range,key
http://s1.运维网.com/wyfs02/M01/86/BD/wKiom1fJCxTCvhuYAAAz7GRD-iA758.png
  Configuration --> Actions --> Create action (Event source Discovery)
  配置name
http://s3.运维网.com/wyfs02/M01/86/BD/wKioL1fJDASi8MvrAABGDhU_eDw563.png
  添加定义好的discovery rule,
  Received value 模糊匹配主机名
http://s3.运维网.com/wyfs02/M00/86/BD/wKioL1fJDASTnJOdAAA9PoncaV8081.png
  添加配置后的主机放置的组Add to host groups
  发现的主机使用的模板Link to templates
http://s3.运维网.com/wyfs02/M01/86/BD/wKiom1fJDASxDJEvAAAn1fsrFME082.png
  

  配置zabbix server的/etc/hosts 增加要发现的主机ip和对应的主机名,效果如下:
http://s4.运维网.com/wyfs02/M02/86/BD/wKiom1fJDI-w43G6AAAWIT8SJ9o520.png
  

  三、进程发现及监控
  1、发现进程名(合并数组)

  vim check_process_jqlm.sh
  #!/bin/bash
  array1=($(ps aux|grep eam|awk '{print $36}'|awk '/data/{print $0}'|awk -F "/" '{print $(NF)}'|awk '{sub(/"$/,"")}1'))
  array2=($(ps aux|grep eam|awk '{print $37}'|awk '/data/{print $0}'|awk -F "/" '{print $(NF)}'|awk '{sub(/"$/,"")}1'))
  array=(${array1[@]} ${array2[@]})
  

  COUNT=${#array[@]}
  INDEX=0
  echo '{"data":['
  for a in ${array[@]};do
  echo -n '{"{#PROCESSNAME}":"'$a'"} '
  INDEX=`expr $INDEX + 1`
  if [ $INDEX -lt $COUNT ]; then
  echo ','
  fi
  done
  echo ']}'
  结果:

http://s3.运维网.com/wyfs02/M01/87/D8/wKioL1fjU_XSq6WiAABwnC07-KQ313.png
  PS:非数组格式保存的情况下
  #!/bin/bash
  array=$(ps aux|egrep "amed|orldd" --color|awk -F "/" '{print $NF}')
  COUNT=`echo "$array" |wc -l`
  INDEX=0
  

  echo '{"data":['
  #    echo "$array" | while read LINE; do
      for a in ${array[@]};do
        echo -n '{"{#PROCESSNAME}":"'$a'"}'
        INDEX=`expr $INDEX + 1`
        if [ $INDEX -lt $COUNT ]; then
              echo ','
        fi
      done
      echo ']}'
  

  2、获取该进程的cpu,mem,status
  vim check_resource_jqlm.sh
  #!/bin/bash
  process=$1
  if [ ! -n "${process}" ];then
  exit 1
  else
  if [ $# -eq 2 ] ; then
  basename=$(echo $0|awk -F "." '{print $1}')
  name=$2
  case $2 in
  cpu)
  ps aux|grep "${process}" -w|egrep -v "grep|${basename}" |awk '{print $3}'
  ;;
  mem)
  ps aux|grep "${process}" -w|egrep -v "grep|${basename}"|awk '{print $6/1024}'
  ;;
  "${process}")
  ps aux|grep "${process}" -w|egrep -v "grep|${basename}"|wc -l
  ;;
  esac
  else
  echo 0
  fi
  fi
  

  3、配置zabbix_agentd.conf并重启
  UnsafeUserParameters=1
  UserParameter=jqlm_proc.discovery,/tmp/check_process_jqlm.sh
  UserParameter=jqlm_proc.rec
[*],/tmp/check_resource_jqlm.sh $1 $2
  

  4、zabbix面板配置
  1)、创建发现规则名字
http://s2.运维网.com/wyfs02/M01/87/DC/wKiom1fjVaKBvzovAAAhYlygjdw990.png
  2)、创建发现items
http://s4.运维网.com/wyfs02/M02/87/DC/wKiom1fjVgDjxUQVAABAK6KCPMw442.png
  3)、依次创建相关items
http://s2.运维网.com/wyfs02/M00/87/DC/wKiom1fjVjyBIQoiAABb2c6wk4w338.png
  

  四、zabbix3.0实现告警配置
  1)、邮件
http://s2.运维网.com/wyfs02/M00/87/F8/wKiom1fk9xHRuDsnAABbTvMWyYk391.png
  故障{TRIGGER.STATUS},服务器:{HOSTNAME}发生:{TRIGGER.NAME}
  告警主机:{HOSTNAME} {HOST.IP}
  告警时间:{EVENT.DATE} {EVENT.TIME}
  告警等级:{TRIGGER.SEVERITY}
  告警信息:{TRIGGER.NAME}
  告警项目:{TRIGGER.KEY1}
  问题详情:{ITEM.NAME}:{ITEM.VALUE}
  当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
  事件ID:{EVENT.ID}
  

  2、短信
http://s3.运维网.com/wyfs02/M01/87/F8/wKiom1fk9zmyCNsFAABRLv4id0M382.png
  {TRIGGER.STATUS}:{HOSTNAME}: {TRIGGER.NAME}



页: [1]
查看完整版本: zatree for zabbix