zabbix结合nginx、mysql、proxy、睿象云报警、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.conf

location /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.ttf

ll 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/zabbix
 vim 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.conf
 systemctl restart zabbix-agent.service
 netstat -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.4

systemctl 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.conf

JavaGateway=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.gz

cd 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是否添加成功
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dudududu--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值