目录

  • 一.zabbix server的nginx监控
    • nginx部署
    • 获取信息
  • 二.Zabbix监控添加mysql
    • 添加模板
    • 倒入外部模板
    • 手动测试如下:
  • 三.zabbix server 的tomcat+jave 监控
  • 四.Zabbix-agent主动模式 (全克隆)
  • 五.Zabbix + proxy分布式
  • 六.Zabbix+睿象云报警
  • 七.使用API
    • 介绍
    • 获取身份验证
      • 参数的意义
    • 检索主机
    • 删除主机
    • 创建主机

一.zabbix server的nginx监控

nginx部署

链接: nginx包 提取码: vuck
在server2上进行:

tar zxf nginx-1.20.1.tar.gz
cd nginx-1.20.1
yum install gcc pcre-devel opensll-devel -y
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
make
make install


完成之后,

cd /usr/local/nginx/
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin
vim /usr/local/nginx/conf/nginx.conflocation /status {stub_status on;access_log off;allow 127.0.0.1;deny all;
}


启动服务

nginx或者nginx -s reload
curl http://127.0.0.1/status


因为配置文件写了,只允许本机,其他机子被拒绝!!如下:

获取信息

我们先在shell中测试一次,抓取是否成果!

curl -s http://localhost/status | grep Active | awk '{print $3}'


接下来,编写一个nginx脚本,通过agent获取信息!

cd /etc/zabbix/zabbix_agentd.d/
cp userparameter_mysql.conf userparameter_nginx.conf


把刚才在shell测试的抓取指令写进去:
vim userparameter_nginx.conf

完成之后,重启agent

systemctl restart zabbix-agent.service

接下来在server1上操作:
我们需要一个模板simkai.ttf

cd /usr/share/zabbix/fonts/
get simkai.ttf
rm -fr graphfont.ttf
ln -s simkai.ttf graphfont.ttfll graphfont.ttf


安装zabbix-get

yum install -y zabbix-get
zabbix_get -s 172.25.0.2 -p 10050 -k "nginx.active"

OK,接下来需要图形化添加监控
网页访问172.25.1.1/zabbix
先点击server2

点击右上角的创建监控:

注意键值必须和刚才指令get到的保持一致!

解析来创建图形:

可以选择图形类别

创建完成,点击更新,查看图形结果
当出现数值时表明图形添加成功。

添加更多nginx监控项:

curl -s http://localhost/status | awk NR==3 | awk '{print $1}'
curl -s http://localhost/status | awk NR==3 | awk '{print $2}'
curl -s http://localhost/status | awk NR==3 | awk '{print $3}'

添加到之前的配置文件里面
vim userparameter_nginx.conf


重启agent端服务读取脚本

systemctl restart zabbix-agent.service

我们在server1验证一下配置是否成功!
能输出数字,不报错即可!

zabbix_get -s 172.25.0.2 -p 10050 -k "nginx.accept"
zabbix_get -s 172.25.0.2 -p 10050 -k "nginx.handle"
zabbix_get -s 172.25.0.2 -p 10050 -k "nginx.request"

web界面手动添加监控项,然后添加到图形中。
将刚才的生成的三个键置名称添加进去!

分别添加三个监控项nginx_accept,nginx_handle,nginx_request


然后图形nginx_status添加监控项点击添加:

选中

完成之后,预览一下图形

二.Zabbix监控添加mysql

因为之前在server1搭建了mysql,为了节省资源,我们直接使用server1!
agent可以通过mysql的密码认证,在zabbix下建立隐藏文件,说明具体命令执行的用户、密码、socket:

[root@server1 ~]# mkdir  /var/lib/zabbix
[root@server1 ~]# cd /var/lib/zabbix/
[root@server1 zabbix]# vim .my.cnf
[mysql]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock[mysqladmin]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock[root@server1 zabbix]# mysqladmin password    westos
[root@server1 zabbix]# systemctl restart zabbix-agent.service

添加模板

在网页进行操作:

查看图像

手动测试
只有有返回值说明就OK了

但是由于自带的mysq模板监控项太少了,所以我们需要手动添加模板

倒入外部模板

删掉刚才添加的mysql模板

下载需要的导入工具
链接:percona 提取码: bru2
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@server1 ~]# cd /var/lib/zabbix/percona/templates/
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@server1 templates]# systemctl restart zabbix-agent.service
[root@server1 templates]# cd ..
[root@server1 percona]# cd scripts/
[root@server1 scripts]# vim ss_get_mysql_stats.php


修改真实的用户和密码如下:

重启服务:
systemctl restart zabbix-agent

手动测试如下:

[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
[root@server1 scripts]# zabbix_get -s 127.0.01 -p 10050 -k "MySQL.Key-read-requests"

注意:手动测试之后会生成一个txt文件,这个文件生成的默认权限是root,因为访问的时候是用zabbix用户访问的!所以需要权限是zabbix的,所以需要删除调手动测试生成的文件!!

[root@server1 scripts]# cd /tmp/
[root@server1 tmp]# ls
[root@server1 tmp]# cat localhost-mysql_cacti_stats.txt
[root@server1 tmp]#ll localhost-mysql_cacti_stats.txt
[root@server1 tmp]# rm -fr localhost-mysql_cacti_stats.txt


现在导入外部模板。模板是我在网上下载好的,所以直接导入
链接: 模板提取码: wysw
把之前的模板取消链接并清理掉

接下来导入新的模板!

点击导入:

导入文件,然后把复合图形打钩!!
把模板下载到真机上即可,直接选择

然后点击导入!

接着选择zabbix server导入模板!
选择zabbix server

点击选择

选择

然后点击添加

在点击更新,如下,添加成功!

最后点击更新

完成之后,发现zabbix server的监控项变多了

注意这时候,点击触发器,需要禁用一个触发器!
往下寻找,如下图,点击已启用,变为不启用!!

完成之后,进到tmp之下,自动生成了前面删掉的文件,而且用文件所属权是zabbix

可以看图形的监控如下:
如果没有数据,可以等待一会再看!!

三.zabbix server 的tomcat+jave 监控

我们在server1上搭建tomcat java 服务
链接:tomcat包 提取码: jqj6

[root@server1 bin]# yum install java-1.8.0-openjdk.x86_64 -y
[root@server1 bin]#systemctl enable --now zabbix-java-gateway
[root@server1 bin]# cd /etc/zabbixvim zabbix_java_gateway.conf[root@server1 zabbix]# netstat -antlp| grep :10052

vim zabbix_java_gateway.conf

修改内容如下:


重启服务:

在server3操作如下:

[root@server3 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[root@server3 ~]# cd /usr/local/
[root@server3 local]# ln -s apache-tomcat-7.0.37/ tomcat
[root@server3 local]# ls
[root@server3 local]# cd tomcat
[root@server3 tomcat]# cd bin/
[root@server3 bin]# vim catalina.sh     ##创建8888端口
CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false'
[root@server3 bin]# yum install -y java
[root@server3 bin]# ./startup.sh
[root@server3 bin]# netstat -antlp|grep 8888


然后安装java
yum install -y java

开启脚本

查看端口

点击server3,选择模板

点击选择

将java加入模板

将JMX端口写入:

然后更新!

测试点击主机发现JMX绿色亮了!

查看监控图形,出现数据

四.Zabbix-agent主动模式 (全克隆)

在server2上操作,

 vim zabbix_agentd.confsystemctl restart zabbix-agent.servicenetstat -antlp | grep :10050

访问网页,点击模板如下:

全克隆

然后左下角全选

点击下面的批量更新,监控项的类型一定要选对

添加模板
然后点击添加

更新

查看图形!

五.Zabbix + proxy分布式

准备一台虚拟机server4,安装zabbix+proxy安装包,配置zabbix+proxy分布式!

yum list zabbix-*
yum install -y zabbix-proxy-mysql.x86_64


修改配置文件

vim /etc/zabbix/zabbix_proxy.conf
DBName=zabbix_proxy #数据库中的库名称
DBHost=172.25.0.1 #数据库位置
DBUser=zabbix #访问数据库的身份
DBPassword=westos #访问数据库的密码


将生成的数据库信息传给数据库位置server1中

cd /usr/share/doc/zabbix-proxy-mysql-4.0.5/
scp schema.sql.gz server1:

开启server4的服务
systemctl start zabbix-proxy.service

查看服务进程是否开启

ps ax


接着将server4的主机名改为proxy
hostnamectl set-hostname proxy
在server1,2,3,4的本地解析都把server4解析proxy如下图:

接着在server1上打开数据库
创建mysql数据库zabbix_proxy,并将库的所有权利给zabbix用户,授权后刷新

create database zabbix_proxy character set utf8 collate utf8_bin;
grant all on zabbix_proxy.* to zabbix@'%' identified by 'westos';
flush privileges;


将schema.sql.gz 文件解压后导入 zabbix_proxy 库中

zcat schema.sql.gz | mysql -pwestos zabbix_proxy


测试web创建agent代理程序

然后输入代理名称,代理地址,点添加

在server4的配置文件里面继续修改一下:

vim /etc/zabbix/zabbix_proxy.conf
Server=172.25.0.1 #分布式服务位于zabbix-server端
ServerPort=10051 #默认端口为10051
Hostname=proxy #主机名为proxy,需要与添加的proxy名保持一致


systemctl restart zabbix-proxy.service

看一下日志:server1,server4
cat /var/log/zabbix/zabbix_proxy.log

看到server4日志显示:成功接受server1的信息

server1日志显示:成功发送信息给server4

然后再网页上点击主机server3

往下拖,选择proxy代理

点击更新

将server3的服务指向proxy
原理:
通过proxy连接server,agent(3)----> proxy(4) ----> server(1)

vim /etc/zabbix/zabbix_agentd.conf
Server=172.25.0.4
ServerActive=172.25.0.4systemctl restart zabbix-agent.service

接着来到服务器端查看一下日志
server4显示

cat /var/log/zabbix/zabbix_server.log


设定server3中的java导入proxy后日志变化

server1端查看日志显示不能找到

若是遇到报错,怎么办?
刷新zabbix-server 数据修改缓存

server1
zabbix_server -R config_cache_reload


接着在server4修改配置文件

vim /etc/zabbix/zabbix_proxy.confJavaGateway=172.25.0.1 #java服务监听端口指向zabbix-server端
StartJavaPollers=5 #Java轮询器为5,实际设置根据需求systemctl restart zabbix-proxy.service

可以把server3也重启一下服务agent

server3通过server4的proxy成功连接到zabbix-server端,并且所有服务恢复启用。
最后等待一会,web界面两个都亮了就OK

六.Zabbix+睿象云报警

需要用到server1,2,3
server1为zabbix-server主机,server2、3为zabbix-agent主机。且已经连接完成。那么需要把刚才的代理去掉!

首先需要server1能够上网
在真机开启路由策略

iptables -t nat -I POSTROUTING -s 172.25.0.0/24 -j MASQUERADE

server1检测是否能上网:

打开浏览器,进入睿象云,先注册账号,绑定邮箱(一定要绑定!!)CA - >添加集成---->监控工具


生成了Appkey

接下来需要我们在server1上操作:

注:一定要解压在这个目录下!!!
进入报警文件读取目录,解压云报警插件,进入解压目录

获取睿象云 Cloud Alert agent包:
链接: ca探针包 提取码: k9p3

cd /usr/lib/zabbix/alertscripts
tar zxf ca_zabbix_release-2.1.0.tar.gzcd cloudalert/bin/
./install.sh ****************(自己生成的key)

处填入您新建应用时生成的appkey
在安装过程中根据安装提示,输入zabbix管理/监控/web登陆地址、管理员用户名、密码。
当显示安装成功,就说明已经配置完成

然后到web上的zabbix把之前的报警媒介禁用

然后把动作打开:

到睿象云新建通知策略

选择如下,通知人选择自己,若是没有,邮箱没有绑定!!
设置后出现:

禁用一个触发器

接着开始测试:

[root@server2 ~]# systemctl stop zabbix-agent.service

在zabbix上查看


发现出现了报警而且发送到了睿象云

然后再睿象云上也可以看到报警信息过来了!

手机上短信,微信都来了!!

短信如下

当认领了告警之后,会在睿象云提示处理中

重启服务server2 agent
systemctl restart zabbix-agent.service
在zabbix上查看问题端口状态显示 已解决

睿象云也显示解决!

显示已关闭!!

微信也发送来了

七.使用API

介绍

Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
创建新的应用程序以使用Zabbix;
将Zabbix与第三方软件集成;
自动执行常规任务。

大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据,但是某些API提供一套完全不同的一组方法。

获取身份验证

在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。让我们假设你想要以标准Zabbix Admin用户身份登录。然后,你的JSON请求将如下所示:

[root@server1 ~]# curl -XPOST http://172.25.0.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null
}' | python -m json.tool

参数的意义

jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现的JSON-RPC版本是2.0;
method - 被调用的API方法名;
params - 将被传递给API方法的参数;
id - 请求的任意标识符;
auth -用户认证令牌; 因为我们还没有一个,它的设置null。
如果你正确提供了凭据,API返回的响应将包含用户身份验证令牌:

检索主机

[root@server1 ~]# vim zabbix.api
curl -XPOST http://172.25.0.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "host.get","params": {"output": ["hostid","host"],"selectInterfaces": ["interfaceid","ip"]},"id": 1,"auth":"09dc3830f5e6780328c9f4a6fc60c503"
}' | python -m json.tool

一定要使用刚才获得的身份验证!


sh zabbix.api执行脚本

删除主机

object host.delete(array hosts)
(array) 要删除的主机的ID.

curl -XPOST http://172.25.0.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "host.delete","params": ["10265"],"id": 1,"auth":"09dc3830f5e6780328c9f4a6fc60c503"
}' | python -m json.tool

hostid 和前面查出来的保持一致

执行脚本

然后观察结果,删除成功!!

创建主机

需要把动作里的,自动注册禁用,不然执行脚本报错也会成功创建server3
对象 host.create(对象/数组 hosts)

curl -s -XPOST http://172.25.0.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{"jsonrpc": "2.0","method": "host.create","params": {"host": "server3","interfaces": [{"type": 1,"main": 1,"useip": 1,"ip": "172.25.0.3","dns": "","port": "10050"}],"groups": [{"groupid": "2"}],"templates": [{"templateid": "10001"}]},"auth": "09dc3830f5e6780328c9f4a6fc60c503","id": 1
}' | python -m json.tool

组的查询方式:

templateid查询方法:


执行脚本,然乎观察
sh zabbix.api

在web页面查看server3是否添加成功

zabbix结合nginx、mysql、proxy、睿象云报警、API批量操作相关推荐

  1. 企业运维实战--Zabbix监控之结合nginx、mysql、java应用、proxy分布式、睿象云报警、API批量操作、替换mysql为tidb数据库

    一.zabbix server的nginx监控 nginx部署 在server5上进行: tar zxf nginx-1.20.1.tar.gz cd nginx-1.20.1 yum install ...

  2. 运维实操——zabbix监控结合睿象云报警平台及API调用

    zabbix监控结合睿象云报警平台及API调用 1.zabbix监控结合睿象云报警平台 2.API调用 1.zabbix监控结合睿象云报警平台 由于我们不能时时刻刻盯着zabbix监控,所以呢,我们想 ...

  3. 分布式系统监控软件zabbix—— 通过qqmail或第三方报警平台(睿象云)发送告警信息

    文章目录 分布式系统监控软件zabbix-- 通过qqmail或第三方报警平台(睿象云)发送告警信息 1.zabbix+ qqmail 报警实现步骤 2.zabbix+ 睿象云报警 实现步骤 分布式系 ...

  4. 分布式系统监控软件——zabbix详解(七) zabbix+ (qqmail 或者 第三方报警平台(睿象云))的 报警实现

    文章目录 zabbix+ qqmail 报警实现步骤 zabbix+ 睿象云报警 实现步骤 实验环境 redhat7.5环境 (低版本的redhat系统可能解决不了php的依赖性) server4 1 ...

  5. 清理 zabbix 历史数据, 缩减 mysql 空间

    zabbix 由于历史数据过大, 因此导致磁盘空间暴涨,  下面是结局方法步骤 1. 停止 ZABBIX SERER 操作 [root@gd02-qa-plxt2-nodomain-web-95 ~] ...

  6. zabbix的安装与部署(proxy、睿象云)

    一.简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速 ...

  7. 云告警: zabbix + 睿象云

    Zabbix 是由Alexei Vladishev 开发的一种网络监视.管理系统,基于 Server-Client 架构.可用于监视各种网络服务.服务器和网络机器等状态. Zabbix 使用 MySQ ...

  8. 【Linux36-2】zabbix监控(mysql+percona+tomcat+主动式监控+onealert云告警)

    文章目录 1. 监控数据库 1.2 种类1:mysql 1.2 种类2:percona 2. 监控java(使用apache-tomcat) 2.1 agent端配置 2.2 server端配置 2. ...

  9. 管理 zabbix_Zabbix 2019 峰会丨看睿象云如何在 Zabbix 中玩转告警

    2019年11月29日-30日,为期两天的 Zabbix 大会中国站在北京盛大召开,本届 Zabbix 大会以"新视界,新技术,共建未来新监控!"为主题,为与会人员提供前沿的监控技 ...

最新文章

  1. 重磅!中科院白洋研究员加入《宏微名师讲堂》分享高通量分菌技术啦!
  2. 11 个 AI 和机器学习模型的开源框架
  3. python使用教程视频-Python入门教程视频分享
  4. 链表——PowerShell版
  5. 转 公有密匙 私有密匙
  6. linux网络编程之inet_pton和inet_ntop函数
  7. C语言应用笔记:C语言typedef关键字及其使用
  8. linux sar 历史负载,查看负载、vmstat、top、sar以及nload命令
  9. makefile之通配符(4)
  10. 如何成为java高手
  11. 惠普在安全领域发力 收购大数据加密企业
  12. 关于static继承的问题
  13. ffmpeg aac解码pcm
  14. android 主流分辨率是多少,android手机常用分辨率有哪些?
  15. 【KD】2022 计算机学报 深度学习中知识蒸馏研究综述
  16. 暴雪插件占用服务器,你还在用这款插件吗?暴雪公布《魔兽世界》怀旧服卡顿原因...
  17. oss图片无法在网站中显示
  18. 计算机专业的研究方向
  19. 【计算机视觉】深度相机(七)--体感设备对比
  20. Pandas数据显示不全?快来了解这些设置技巧! ⛵

热门文章

  1. catia切割红色框框_更改CATIA二维图自带的图框命令-下篇
  2. NP问题和NPC问题
  3. php object 数组赋值,php object转数组示例
  4. SimHash算法原理与应用(Java版)
  5. 黑科技软件使用---Writage
  6. 2020年下一个创业风口是什么?
  7. Geth-1.10.16 私链搭建
  8. Boot strap
  9. Python课程学习笔记 下
  10. FAT16和FAT32文件定位