Zabbix 监控案例 (Tomcat,Javagateway,TCP,memcache,Redis,Mysql,web)

Zabbix 监控案例

监控linux系统

在其他linux服务器安装zabbix agent,然后添加到zabbix server以对其进行资源监控

#zabbix agent安装 apt
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1%2Bbionic_all.deb
dpkg -i zabbix-release_5.0-1+bionic_all.deb
dpkg -L zabbix-release
vim /etc/apt/sources.list.d/zabbix.list  #将源指向aliyun
apt update
apt -y install zabbix-agent

#zabbix agent安装 yum
yum install -y http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm

vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.13    #远程zabbix服务器地址
ListenPort=10050    #监听端口
StartAgents=3       #被动状态时默认启动的实例数(进程数),为0不监听任何端口
Hostname=10.0.0.3   #区分大小写且在zabbix server唯一的值
Timeout=30

systemctl restart zabbix-agent  #启动agent

Zabbix web 界面添加被监控主机

在zabbix web管理界面添加上一步安装了zabbix agent的linux主机

web界面: 配置 主机 创建主机

关联监控模板:
在zabbix对主机实现监控,可以通过添加模板或者添加监控项实现对指定的监控目标进行数据采集,通常采用先创建模板,然后再将模板关联至主机的方式
选择模板:选择符合当前主机监控项目的模板

监控tomcat服务器

#配置agent与tomcat
yum install -y http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm
vim /etc/zabbix/zabbix_agentd.conf
  Server=10.0.0.13
  ListenPort=10050
  StartAgents=3
  Hostname=10.0.0.17
systemctl start zabbix-agent  
yum install java-1.8.0-openjdk.x86_64 -y   #安装jdk环境
tar xf apache-tomcat-8.5.53.tar.gz -C /opt/
ln -s /opt/apache-tomcat-8.5.53/ /opt/tomcat
ln -s /opt/tomcat/bin/* /usr/sbin/
catalina.sh  #查看帮助与安装目录等信息
catalina.sh start  #开启tomcat服务
ss -ntal

配置javagateway

zabbix无法直接监控java,需要通过Javagateway获取java程序的监控数据
javagateway是一个独立于zabbix server和zabbix agent的组件,也就是java gateway可以是单独的一台服务器,也可以和zabbix server或者zabbix agent共用一台服务器,前提是端口不要配置冲突了
#ubuntu安装javagateway
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1%2Bbionic_all.deb
dpkg -i zabbix-release_5.0-1+bionic_all.deb
apt update
apt install zabbix-java-gateway -y

#centos安装javagateway使用
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
yum install zabbix-java-gateway -y

grep "^[a-Z]" /etc/zabbix/zabbix_java_gateway.conf
  LISTEN_IP="0.0.0.0"
  LISTEN_PORT=10052
  PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"
  START_POLLERS=5
  TIMEOUT=30
systemctl restart zabbix-java-gateway
systemctl enable zabbix-java-gateway
ss -ntal

#配置zabbix server调用java gateway
vim /etc/zabbix/zabbix_server.conf
  JavaGateway=10.0.0.13
  JavaGatewayPort=10052
  StartJavaPollers=20
systemctl restart zabbix-server
ps aux | grep java

tomcat开启JMX监控

# tomcat服务器开启JMX监控
JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务,通常使用JMX来监控系统的运行状态
https://www.jianshu.com/p/8c5133cab858  #文档
vim /opt/tomcat/bin/catalina.sh 
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.0.17"

-Djava.rmi.server.hostname=  #tomcat服务器地址
catalina.sh stop
catalina.sh start

#zabbix web界面添加主机
ageny接口  10.0.0.17  端口 10050
JMX接口    10.0.0.17  端口 12345
关联模块   java JMX
#验证当前JMX状态是否为绿色

Zabbix 主动与被动监控模式

无论是主动模式还是被动模式,都是站在zabbix agent角度来说的工作模式

被动模式

被动模式:
被动模式,是说zabbix agent被动的接受zabbix server周期性发送过来的数据收集指令,在被动模式下,zabbix server会根据主机关联的模板中的监控项和数据采集间隔时间,周期性的打开随机端口并向zabbix agent服务器的10050发起tcp连接,然后发送获取监控项数据的指令,zabbix agent不用关心其监控项和数据采集周期间隔时间 

被动模式的优点就是配置简单,是zabbix的默认工作模式,但是被动模式的最大问题就是会加大zabbix server的工作量
netstat -ntal  #被动模式下server端会开启许多端口向agent端发起连接

主动模式

主动模式是由zabbix agent主动向zabbix server的10051端口发起tcp连接请求,因此主动模式下必须在zabbix agent配置文件中指定zabbix server的IP或者主机名,在主动模式下不再需要zabbix serve向zabbix agent发起连接请求,因此主动模式在一定程度上减少zabbix server打开的本地随机端口和进程数,减轻zabbix server的压力

#修改zabbix agent为主动模式
grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf
  PidFile=/var/run/zabbix/zabbix_agentd.pid
  LogFile=/var/log/zabbix/zabbix_agentd.log
  LogFileSize=0
  DenyKey=system.run[*]
  Server=10.0.0.13
  ListenPort=10050
  StartAgents=0
  ServerActive=10.0.0.13   #主动模式的zabbix server地址
  Hostname=10.0.0.17
systemctl restart zabbix-agent

web界面生成主动模式模板
添加主机: 主机名为 agent设置的hostname 
IP地址:0.0.0.0   端口:0
netstat -tanl  #验证主动模式端口

自定义监控TCP连接数

cd /etc/zabbix/zabbix_agentd.d/
vim tcp_conn.sh
tcp_conn_status(){
TCP_STAT=$1
ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > /tmp/tcp_conn.txt
TCP_NUM=$(grep -i "$TCP_STAT" /tmp/tcp_conn.txt | cut -d ' ' -f2)
echo $TCP_NUM
}
main(){
  case $1 in 
tcp_status)
   tcp_conn_status $2;
  ;;
   esac
}
main $1 $2

#Zabbix agent自定义监控项
chmod a+x ./*.sh
tcp_conn.sh tcp_status listen #测试
vim /etc/zabbix/zabbix_agentd.conf
  UserParameter=tcp_status[*],/etc/zabbix/zabbix_agentd.d/tcp_conn.sh "$1" "$2"
systemctl restart zabbix-agent
#Zabbix server服务器测试
/opt/zabbix/bin/zabbix_get -s 10.0.0.27 -p 10050 -k "tcp_status[tcp_status,listen]"
#zabbix web创建模板
1,监控项键值: tcp_status[tcp_status,listen]
2,关联至agent客户端地址
3,将监控项关联至图形
4,查看监控数据

自定义端口监控

nginx--监控项键值:net.tcp.listen[80]
tomcat--监控项键值:net.tcp.listen[8080]

自定义监控memcache

yum install memcached nmap -y
systemctl enable --now memcached
echo -e "stats\nquit" | ncat 127.0.0.1 11211
cd /etc/zabbix/zabbix_agentd.d
vim memcached.sh
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

chmod a+x ./*.sh
#测试
./memcached.sh memcached_status 11211 curr_connections
#zabbix agent自定义监控项
vim /etc/zabbix/zabbix_agentd.conf 
UserParameter=memcached_status[*],/etc/zabbix/zabbix_agentd.d/memcached.sh "$1" "$2" "$3"
systemctl restart zabbix-agent
#zabbix server测试监控项数据
/opt/zabbix/bin/zabbix_get -s 10.0.0.27 -p 10050 -k "memcached_status[memcached_status,11211,curr_connections]"
#zabbix web创建模板
1,监控项键值: memcached_status[memcached_status,11211,curr_connections]
2,关联至agent客户端地址
3,将监控项关联至图形
4,查看监控数据

自定义监控redis

一个模板中创建多个监控项、多个触发器和多个图形
图形与触发器依赖于监控项

yum install redis nmap -y
vim /etc/redis.conf
 bind 0.0.0.0
systemctl restart redis 
systemctl enable redis
cd /etc/zabbix/zabbix_agentd.d
vim redis.sh
redis_status(){
R_PORT=$1
R_COMMAND=$2
echo -en "INFO \r\n" | ncat 127.0.0.1 6379 > /tmp/redis.tmp
REDIS_STAT_VALUE=$(grep ""$R_COMMAND":" /tmp/redis.tmp | cut -d ':' -f2)
echo $REDIS_STAT_VALUE  
}
main(){
    case $1 in
redis_status)
   redis_status $2 $3
   ;;
esac
}
main $1 $2 $3

chmod a+x redis.sh
./redis.sh redis_status 6379 used_memory
#zabbix agent添加自定义监控项
vim /etc/zabbix/zabbix_agentd.conf
UserParameter=redis_status[*],/etc/zabbix/zabbix_agentd.d/redis.sh "$1" "$2" "$3"
systemctl restart zabbix-agent
#zabbix server测试监控项数据
/opt/zabbix/bin/zabbix_get -s 10.0.0.27 -p 10050 -k "redis_status[redis_status,6379,used_memory]"
#zabbix web创建模板
1,监控项键值: redis_status[redis_status,6379,used_cpu_sys]
              redis_status[redis_status,6379,used_memory]
2,关联至agent客户端地址
3,将监控项关联至图形
4,查看监控数据

#创建触发器
1,主机-创建内存触发器  
   需将内存转换为字节单位:当内存使用达2G时就触发
   2*1024*1024*1024=2147483648
2,添加表达式

#创建图形
1,配置-模板-创建图形
2,关联监控项

监控Mysql数据库

#首先实现mysql主从复制
二进制安装mysql5.7--省略
#主mysql服务器配置
vim /etc/mysql/mysql.conf.d/mysqld.cnf
  bind-address       = 0.0.0.0
  server-id = 3
  log_bin  = /var/log/mysql/mysql-bin.log
systemctl restart mysql
mysql 
  grant all on *.* to 'yunge'@'10.0.0.%' identified by 'ssy192011';
mysqldump --all-databases --single_transaction --flush-logs --master-data=2 --lock-tables > /opt/backup.sql
scp /opt/backup.sql 10.0.0.23:/opt/

#从服务器配置
vim /etc/mysql/mysql.conf.d/mysqld.cn
  bind-address       = 0.0.0.0
  server-id = 13
systemctl restart mysql
head -30 /opt/backup.sql  #查看二进制文件名称与位置
mysql < /opt/backup.sql
mysql  
  help change master to;
  CHANGE MASTER TO
   MASTER_HOST='10.0.0.3',
   MASTER_USER='yunge',
   MASTER_PASSWORD='ssy192011',
   MASTER_PORT=3306,
   MASTER_LOG_FILE='mysql-bin.000002',
   MASTER_LOG_POS=154;
   start slave;
   show slave status;    #完成主从复制
   
#两台mysql安装zabbix-agent
apt install zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf 
  Server=10.0.0.13
  Timeout=30
  Include=/etc/zabbix/zabbix_agentd.d/*.conf
  AllowRoot=1
  User=root
systemctl daemon-reload  
systemctl restart zabbix-agent
systemctl enable zabbix-agent

#以下步骤主从mysql都需要执行
#开源mysql监控方案Percona   
#插件地址
https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html 
#安装包下载地址
https://www.percona.com/downloads/  
#安装Percona软件包
yum install percona-zabbix-templates   #yum安装
apt install percona-zabbix-templates   #apt安装
dpkg -i percona-zabbix-templates_1.1.8-1.artful_all.deb  #dpkg包安装
mkdir /etc/zabbix/zabbix_agentd.d
mv /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd..d/
vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
     if [ `expr $TIMENOW - $TIMEFLM` -gt 5 ]; then   #改为5
systemctl restart zabbix-agent   
#安装php5.6
add-apt-repository ppa:ondrej/php
apt update
apt install -y php5.6 php5.6-mysql
cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf  #mysql认证文件
  <?php
  $mysql_user = 'root';
  $mysql_pass = 'ssy192011';
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg  #测试数据

#zabbix-server测试数据,如果获取不到数据就不行
zabbix_get -s 10.0.0.23 -p 10050 -k "MySQL.Key-read-requests"  

#zabbix web导入自定义的Percona模板
percona模块与主机关联 从服务器IP地址

grafana 图形化

grafana: 提供更好看的图形化工具
apt-get install -y adduser libfontconfig1
grafana-cli plugins install alexanderzobnin-zabbix-app
dpkg -i grafana_6.7.3_amd64.deb
systemctl restart grafana-server
浏览器访问:10.0.0.13:3000
启动zabbix数据源
import: 添加7877模板

SNMP设备监控

SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是“简单网络管理协议,SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议,SNMP主要用于网络设备的管理

yum install -y net-snmp    #apt-get install snmpd
vim /etc/snmp/snmpd.conf
com2sec notConfigUser default  public  #第一步:设置团体认密码,默认为public
group   notConfigGroup v1     notConfigUser
group   notConfigGroup v2c    notConfigUser #第二步:将团体名称notConfigUser 关联至组notConfigGroup
view   systemview   included   .1.3.6.1.2.1.1
view   systemview   included   .1.3.6.1.2.1.25.1.1 #创建一个view,授权可访问的OID范围
view   systemview   included   .1.  #自定义授权,否则zabbix server无法获取数据
access notConfigGroup “”     any       noauth   exact systemview none none #将组notConfigGroup关联至systemview 从而完成对组的授权

systemctl enable --now snmpd

#zabbix web添加snmp监控主机
添加SNMP接口: 10.0.0.27 161

web 监测

1,部署好监测的网站
2,选择主机进行web监测
3,创建web场景 应用集,名称
4,步骤: 名称,URL,跟随跳转
5,添加即可
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值