企业 Zabbix监控配置


目前使用的监控程序种类有很多,zabbix、negios、cacti,我们这里使用zabbix来介绍配置监控的方法。

zabbix下载

访问官网:https://www.zabbix.com/cn/,zabbix是有中文官网的,所以可以直接去中文文档
需要下载的软件包:https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/,这里有zabbix配置安装需要的各个组件
在这里插入图片描述


安装

安装zabbix时,我们除了它本身的组件以外,还需要安装php对它的支持插件

[root@server1 4.4]# yum -y install zabbix-server-mysql-4.4.1-1.el7.x86_64.rpm \
> zabbix-web-4.4.1-1.el7.noarch.rpm\
> zabbix-web-mysql-4.4.1-1.el7.noarch.rpm\
> zabbix-agent-4.4.1-1.el7.x86_64.rpm\
> fping-3.10-1.el7.x86_64.rpm\
> php-5.4.16-46.el7.x86_64.rpm\
> php-bcmath-5.4.16-46.el7.x86_64.rpm\
> php-cli-5.4.16-46.el7.x86_64.rpm\
> php-common-5.4.16-46.el7.x86_64.rpm\
> php-gd-5.4.16-46.el7.x86_64.rpm\
> php-ldap-5.4.16-46.el7.x86_64.rpm\
> php-mbstring-5.4.16-46.el7.x86_64.rpm\
> php-mysql-5.4.16-46.el7.x86_64.rpm\
> php-pdo-5.4.16-46.el7.x86_64.rpm\
> php-xml-5.4.16-46.el7.x86_64.rpm\

#需要安装数据库配合测试
[root@server1 4.4]# yum -y install mariadb-server
#安装后进行安全初始化

配置启用zbbix

安装zabbix组件和数据库之后
我们按照官网的方式配置数据库

第一步

在这里插入图片描述

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;	#创建库使用utf8
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create user zabbix@localhost identified by 'redhat';	#建立用户
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;	#授权用户对zabbix库的特权
Query OK, 0 rows affected (0.00 sec)
第二步

在这里插入图片描述

[root@server1 4.4]# zcat /usr/share/doc/zabbix-server-mysql-4.4.1/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: 
第三步

在这里插入图片描述
编辑配置文件 /etc/zabbix/zabbix_server.conf ,写入密码
在这里插入图片描述

第四步

配置时区
在这里插入图片描述
编辑配置文件 /etc/httpd/conf.d/zabbix.conf,
在这里插入图片描述

启动服务

[root@server1 4.4]# systemctl start zabbix-server zabbix-agent httpd
第五步

使用浏览器访问zabbix 配置
在这里插入图片描述
在Configure DB connection 这里只需要把之前设置的zabbix密码输入即可点下一步
在这里插入图片描述
下来到这里输入一个name,自己设置
在这里插入图片描述
后面直接下一步然后点完成,就完成配置了
接下来登录zabbix
在这里插入图片描述
可以点击右上角小人里设置为中文
在这里插入图片描述
可以看到配置里是有一台显示的主机,就是本机,因为我们安装了agent程序所以才会加入到集群里来
在这里插入图片描述

zabbix添加监控主机

使用另一台主机server2,只安装agent,需要在server1里配置地址解析

[root@server2 ~]# yum install -y zabbix-agent-4.4.1-1.el7.x86_64.rpm 

编辑配置文件 /
配置服务端,就是上面安装zabbix 的主机ip
在这里插入图片描述
在这里插入图片描述
更改主机名,改为自己主机的主机名
在这里插入图片描述
保存退出,启动zabbix-agent

在server1里添加监控主机,右上角点击创建主机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就完成了添加主机的监控配置
在这里插入图片描述
注意: 在zabbix-server主机上要关闭火墙,并且将selinux设为警告模式,否则server的启动会出错
zabbix里的监控模板有很多可以去下载其他人写的来使用,如果自己可以写也可以自己去写模板

zabbix 自动发现添加监控主机

对于少量的几台主机,我们可以去手动添加到监控里,但是对于几十上百台主机这样的操作就显得十分消耗时间了。
可以使用自动发现功能去批量添加符合规则的主机群
先去删除我们之前添加的server2主机监控,然后再去配置自动发现
在这里插入图片描述

第一步首先我们需要配置动作

在这里插入图片描述

第二步 点击名称Auto discovery. Linux servers进入配置

在这里插入图片描述

第三步 配置自动发现

在这里插入图片描述
在这里插入图片描述
完成配置后可以重启zabbix-server,等待一段时间刷新页面就可以看到server2被添加进来了
在这里插入图片描述

zabbix自动注册

自动注册是agent主机主动发起请求去添加到zabbix监控里。
关闭自动发现,和动作里的自动发现
我们使用另一台server3测试,在server3上安装agent,需要在server1里配置地址解析
同样去修改配置,开启agent服务
在这里插入图片描述
在zabbix页面上动作里选择自动注册,然后创建动作
在这里插入图片描述
设置名称,添加条件,因为我的测试agent都是server几名称,所以添加筛选名称为server的
在这里插入图片描述
在操作里我们需要添加操作细节,添加主机,添加到主机群组:Linux servers,链接到模板: Template OS Linux by Zabbix agent,这些选择都是和server2的操作配置是一样的,然后选择下面的添加
在这里插入图片描述
然后重启server1的zabbix-server和server3上的zabbix-agent,
刷新页面过一会就可以看到server3也添加进来了,并且可用性zabbix也是可用的
在这里插入图片描述

API

Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:

  • 创建新的应用程序以使用Zabbix;
  • 将Zabbix与第三方软件集成;
  • 自动执行常规任务。

测试方式,根据官万文档来操作
在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。编写一个脚本来获取身份令牌
在这里插入图片描述

[root@server1 4.4]# cat zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool	#后面使用json格式显示,注意要有python

[root@server1 4.4]# chmod +x zabbix-api	#添加可执行权限

[root@server1 4.4]# ./zabbix-api 
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "9608d4c61c747f58dade26804373ea05"	#身份令牌
}

身份令牌每次执行脚本去获取都是会改变的
获取到之后检索主机
在这里插入图片描述
编写脚本

[root@server1 4.4]# cat zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "00b61d9f92c70e3be34150e3fe28c375"	#这里的id号是刚才获取到的身份令牌
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool

然后执行脚本,既可以看到我们配置zabbxi的主机信息
在这里插入图片描述

使用API配置删除主机

配置脚本

[root@server1 4.4]# cat zabbix-api
curl -s -XPOST -H "Content-Type: application/json-rpc" -d'
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": [
        "10306"	#这里是需要删除的主机的id号
    ],
    "id": 2,
    "auth": "00b61d9f92c70e3be34150e3fe28c375"	#身份令牌不变
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool

主机的id号怎么看呢?在监控页面点击主机名,在地址里就可以看到hostid=10306,这是我server3的id
在这里插入图片描述
执行之后server3就删除消失了
在这里插入图片描述

使用API配置创建主机
curl -s -XPOST -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.254.3",	#需要添加的主机ip
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"	#群组id
            }
        ],
        "templates": [
            {
                "templateid": "10001"	#模板id
            }
        ]
    },
    "id": 2,
    "auth": "00b61d9f92c70e3be34150e3fe28c375"
}' http://172.25.254.1/zabbix/api_jsonrpc.php | python -m json.tool

groupid可以在主机群组里点击组名去查看,在地址栏最后显示
在这里插入图片描述
templateid同样方法在模板里找模板名称点进去在地址栏中查看
在这里插入图片描述

写完脚本去执行

[root@server1 4.4]# ./zabbix-api 
{
    "id": 2,
    "jsonrpc": "2.0",
    "result": {
        "hostids": [
            "10309"
        ]
    }
}

刷新页面就可以看到server3添加进来了
在这里插入图片描述


配置zabbix监控

自定义监控nginx

给server3添加监控项,添加nginx监控
首先在server3中安装nginx

[root@server3 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
#编译时需要添加这个模块支持状态查询

安装好后,在 /usr/local/nginx/conf/nginx.conf 里写入status的location
在这里插入图片描述

	    location /status {
            stub_status on;	#开启功能
            access_log off;	#关闭它的日志
            allow 127.0.0.1; #只允许本机访问
            deny all;	#拒绝其他所有
        }

写完配置启动nginx,测试访问正常

[root@server3 nginx]# curl http://127.0.0.1/status
Active connections: 1 
server accepts handled requests
 2 2 2 
Reading: 0 Writing: 1 Waiting: 0 

/etc/zabbix/zabbix_agentd.d/ 目录下,复制userparameter_mysql.conf 为userparameter_nginx.conf

[root@server3 nginx]# cd /etc/zabbix/zabbix_agentd.d/
[root@server3 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server3 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf

通过这个配置文件,我们可以自行进行为nginx监控的更改,只写入下面这一条配置
在这里插入图片描述
保存,重启zabbix-agent
在server1主机上则需要安装: zabbix-get-4.4.1-1.el7.x86_64.rpm
在这里插入图片描述
安装完成后就可以使用zabbix_get 命令

[root@server1 4.4]# zabbix_get -s 172.25.254.3 -p 10050 -k "nginx.active"
1
#获得的1这个值就是在server3上curl http://127.0.0.1/status看到的Active connections: 1

测试没有问题,我们就可以去页面上配置监控,
在主机里点击server3,进入选择监控项,然后点击右上角的创建监控项
在这里插入图片描述
在创建监控项里,名称自定义,键值这里的写的就是在server3刚才写的配置 UserParameter= 后面写的键值,更新间隔改为20s
在这里插入图片描述
然后配置图形,在图形里右上角点击创建图形
在这里插入图片描述
编写名称,在下面的监控项里添加刚才配置的键值,最后选择添加
在这里插入图片描述
在图形的预览里可以看到数值的变化,但是下方的显示并不正常,需要去更改字体,因为我们显示的是中文,如果英文的话就不会有问题了
在这里插入图片描述
在这里插入图片描述
在网上下载 simkai.ttf 字体可以支持中文,将它放入 /usr/share/zabbix/assets/fonts/
在这里插入图片描述
然后去编辑配置,执行新的字体

[root@server1 rpms]# cd /usr/share/zabbix/include/
[root@server1 include]# vim defines.inc.php 
 67 define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name
 111 define('ZBX_FONT_NAME', 'simkai');

再去页面更新,就可以看到中文信息了
在这里插入图片描述
这样我们就完成了自定义监控项配置
像这样我们还可以去获取server3上nginx状态的其他信息,获取状态信息里的第三个91是requests,请求是一个不断变化的数字

[root@server3 zabbix_agentd.d]# curl 127.0.0.1/status 
Active connections: 1 
server accepts handled requests
 91 91 91 
Reading: 0 Writing: 1 Waiting: 0 

去server3里编辑配置文件

[root@server3 nginx]# vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
添加一条键值配置
UserParameter=nginx.requests,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $3}'

重启zabbix-agent,然后和上面的配置一样,创建监控项和图形
图形设置里我们可以把在刚才的nginx_acctive_status 再里添加一个监控项 ,这样我们就制作里一个复合性监控,并且下面有标识什么颜色的线是什么监控项
在这里插入图片描述

模板监控

监控server1里的mysql
先去编写配置文件

[root@server1 rpms]# cat /usr/lib/zabbix/.my.cnf
[mysql]
host=loaclhost
user=root
password=redhat
socket=/var/lob/mysql/mysql.sock

[mysqladmin]
host=loaclhost
user=root
password=redhat
socket=/var/lob/mysql/mysql.sock

[root@server1 rpms]# systemctl restart zabbix-agent.service 

重启zabbix-agent
这样去添加mysql的监控模板就可以了,但是zabbix里自带的mysql监控它的项比较少,不适合我们企业工作中的监控需求。所以我们需要使用 percona 来优化监控。可以去下载 percona-zabbix-templates-1.1.8-1.noarch.rpm

[root@server1 rpms]# yum install -y percona-zabbix-templates-1.1.8-1.noarch.rpm

[root@server1 rpms]# cat /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf | wc -l
190	#可以看到它一共用190个监控项

[root@server1 rpms]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

它的执行脚本在:/var/lib/zabbix/percona/scripts/
我们需要去给ss_get_mysql_stats.php 编辑配置文件

[root@server1 rpms]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
<?php
$mysql_user='root';
$mysql_pass='redhat';

[root@server1 rpms]# systemctl restart zabbix-agent.service 

这里我在网上下载了一个模板来使用zbx_percona_mysql_template.xml
在页面里模板选项右上角导入
在这里插入图片描述
在这里插入图片描述
给Zabbix server 添加Percona模板
在这里插入图片描述
可以去图形里查看Percona监控项的预览图形
在这里插入图片描述
这就是使用第三方模板去实行监控的方式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Howei__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值