监控的维度

物理硬件

(cpu温度,风扇转速,主板温度,电压,功率 ipmi工具监控
机房巡检)ipmitool命令行云厂商,或物理环境

硬件服务器,ipmi 只能平台管理接口,戴尔 远程管理控制卡idrac,惠普 远程管理控制卡
ilo ibm imm

raid 5:允许坏一块盘,物理环境需要定期巡检

操作系统监控

(cpu负责,内存,磁盘容量io,网卡io,进程数,安全监控/etc/password)linux模板

阈值:cpu防止过载,内存防瓶颈,磁盘防饱满,进程防挖矿,安全防黑入

应用软件监控

(nginx,php-fpm,mysql,redis,分布式文件系统glusterFS,ceph)修改开源的模板

选用需要的就行

业务监控

(业务状态,网页速度,pv(页面浏览次数),nv(用户数量),ip监控,会员活跃(日、周、月活)数量,每天的成单量)

  • 网站连不上

    • 代码上线的路径错误
    • 开发的代码错误
  • 用站长工具查询网站域名的访问速度

  • 服务器迁移 老ip 新ip

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    老域名 新域名(老域名重新指向新ip,但是不要马上清空老域名)
    博瑞监控

    在一个公司ip地址,一百个员工,每个人都有一台电脑,一部手机,打开"指定域名"两次
    pv:400
    uv:200
    ip:1

    统计pv,uv,ip
    安装一个统计分析软件
    使用第三方:百度统计,腾讯分析,谷歌分析
    注册账号,添加站点,复制js代码,添加到站点模板文件底部(为了解决js 代码 阻塞问题)

    网络设备监控 snmp

ELK监控日志

piwik matomo js代码 用于统计分析

AWstates

dell:

戴尔售后好,价格便宜

hp:

贵,但是质量好

web网站的可用性监控

监控web页面

curl登录zabbix_web

获取一个cookie

curl -b cookies -c cookies "http://192.168.1.10:56/zabbix/index.php"

模拟登录

curl -b cookies -c cookies -L -d "name=Admin&password=123465&autologin=1&enter=Sign+in" "http://192.168.1.10:56/zabbix/index.php"

验证

curl -b cookies -c cookies -L "http://192.168.1.10:56/zabbix/hosts.php?ddreset=1"

添加场景

第一步

第二步

第三步

第四步.添加触发器

使用percona 插件监控mysql

下载插件

第一步

第二步

安装插件

安装

rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

脚本路径 Scripts are installed to /var/lib/zabbix/percona/scripts

模板文件 Templates are installed to /var/lib/zabbix/percona/templates

默认模板为2.2以下,4.4无法使用

下载新模板

https://www.qstack.com.cn/archives/213.html

导入新模板

Pass

将配置文件导入(190行数)

手动取值

1
2
3
4
5
6
7
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh ij
取值失败,用sh -x 追踪脚本
sh -x /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh ij
发现调用了脚本,尝试执行脚本
/usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
会发现密码报错,修改密码
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php

再次测试

/usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg

取值成功

测试key

zabbix_get -s 127.0.0.1 -k MySQL.Open-files

取值成功

解决权限问题,删除之前的日志文件

rm -rf /tmp/localhost-mysql_cacti_stats.txt

链接模板

服务重启后主从部分会报错,因为不是以root执行,所以我们需要修改

vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh

这一行是判断IO线程和SQL线程是否都为yes

显示成功

snmp监控window和linux

安装snmp服务端,配置,启动

概念

以唯一的oid监控设备(支持很多可联网设备,如打印机)

Oid:object id 每一个对象都是一个指标

MIB库中每一个oid都是唯一的

安装

服务端

yum install net-snmp -y

编辑

修改口令

vim /etc/snmp/snmpd.conf

添加权限

设置开机自启

systemctl start snmpd

systemctl enable snmpd

zabbix-server安装snmp客户端测试取值

安装

客户端

yum install net-snmp-utils.x86_64 -y

安装失败的话,查询是否已存在包

rpm -qa | grep snm

测试取值

snmpwalk -v 2c -c aosatech 192.168.1.10 .1.3.6.1.4.1.2021.11.9

参数

  • 2c:版本
  • -c: commuity,口
  • Ip:pas
  • Oid:要查询的oid

将值重定向到文件

snmpwalk -v 2c -c aosatech 192.168.1.10 >/tmp/1.txt

查询参数

/参数 or 安装的包名

web界面添加snmp监控

第一步

第二步

第三步,配置密码(宏)

注意:Linux很多模板和snmp冲突,二者不可得兼

第四步,更新刷新时间

Pass

第五步,查看状态

zabbix分布式监控proxy

应用场景:全国服务器,参考docker外网映射(只不过内外网做全隔离)

部署步骤

配置zabbix repo

rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

安装zabbix-proxy

yum install zabbix-proxy-mysql -y

配置zabbix-proxy

安装并启动mariadb(proxy)

yum install mariadb-server -y &>/dev/null

systemctl start mariadb systemctl enable mariadb

创库授权,导入数据

1
2
3
4
5
6
7
8
9
10
11
12
server端:
创建zabbix_proxy数据库
create database zabbix_proxy;
授权远程登录
grant all privileges on zabbix_proxy.* to 'zabbix'@'192.168.1.87' identified by '123456' with grant option;
flush privileges;

proxy端:
查询数据所在目录
rpm -ql zabbix-proxy-mysql | grep mysql
远程导入数据
zcat schema.sql.gz | mysql -uzabbix -p登录密码 -h server IP地址 zabbix_proxy(库名)

修改zabbix-proxy(proxy端)

1
2
3
4
5
6
7
8
9
10
11
vim /etc/zabbix/zabbix_proxy.conf

Server = 192.168.1.10(server端IP地址)
Hostname = sh-proxy(填写地域名称,如shanghai-proxy)
DBHost = 192.168.1.10(需要取消注释数据库地址)
DBName = zabbix_proxy
DBUser = zabbix
DBPassword = 123456 (需要取消注释)
HeartbeatFrequency = 60(填写心跳检测时间,用来检测节点是否挂掉了,默认60s)
ConfigFrequency = 36009(填写配置同步时间,默认一小时)
DataSenderrFrequency = 1(数据发送频率,默认一秒一次)

启动zabbix-proxy

systemctl start zabbix-proxy

systemctl enable zabbix-proxy

web添加监控

image-20200807085130682

修改agent配置文件

1
2
3
4
5
vim /etc/zabbix/zabbix_agentd.conf

ServerActive = 192.168.1.87(proxy端地址)
Hostname=agent端IP
Server=agent端IP

web手动开启proxy

proxy日志查看

vim /var/log/zabbix/zabbix_proxy.log

在最后会发现有发现有效配置的报告

zabbix监控jvm原理

专门用来监控java

被监控的主机条件:jdk、tomcat

zabbix-server 用c语言开发

zabbix-server zabbix-java-gateway监控java信息

服务端部署

下载安装

1
2
3
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.9-3.el7.x86_64.rpm

yum localinstall zabbix-java-gateway-4.0.9-3.el7.x86_64.rpm

修改配置文件

1
2
3
vim /etc/zabbix/zabbix_java_gateway.conf

START_POLLERS = 2(起多少个进程用于监控)

启动服务

systemctl start zabbix-java-gateway.service

systemctl enable zabbix-java-gateway.service

修改server配置文件

JavaGateway=127.0.0.1 (java业务地址)

StartJavaPollers=2(采集器数量)

客户端部署

开启监控页面

配置步骤,参考https://blog.csdn.net/dongdong2980/article/details/78476393

停tomcat

pass

加入参数

pass

启动tomcat

pass

查看端口是否存在

netstat -lntup \| grep 12345

开始监控

第一步

第二步

第三步,刷新zabbix-server

zabbix_server -R config_cache_reload

查看状态

更新模板

pass,原因是因为自带模板为tomcat6