zabbix-agent(数据采集) --> zabbix-server(数据分析\报警) --> 数据库(数据存储) --> zabbix-web(数据展示)
一、zabbix数据库拆分
目前zabbix的架构:
--单台zabbix服务:LAMP+zabbix
需要实现zabbix架构,将数据库拆分成单独的一台,LAP+zabbix+MySQL
1.环境准备
主机名 | wanIP | lanIP | 角色 |
zabbix | 10.0.0.71 | 172.16.1.71 | zabbix-server |
db02 | 10.0.0.52 | 172.16.1.52 | MySQL |
2.导出MySQL中zabbix的数据
#1.导出zabbix数据
[root@zabbix ~]# mysqldump -uroot -p -B zabbix >/tmp/zabbix.sql
Enter password:
--注意:我这里zabbix的数据库是没有设置密码的
#2.拷贝数据到db02中
[root@zabbix ~]# scp /tmp/zabbix.sql 10.0.0.52:/tmp
The authenticity of host '10.0.0.52 (10.0.0.52)' can't be established.
ECDSA key fingerprint is SHA256:RPmo1SSy0e1t+q1jP0mMc+MX3c0UdqFgGiJOQULqqGg.
ECDSA key fingerprint is MD5:de:de:07:0a:21:f5:59:46:2c:89:e0:96:a2:ff:ef:5d.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '10.0.0.52' (ECDSA) to the list of known hosts.
root@10.0.0.52's password:
zabbix.sql 100% 2194KB 23.8MB/s 00:00
--注意这里的密码是登录虚拟机连接时的root密码
3.准备新的数据库环境
zabbix对于数据库没有什么要求,可以用之前安装好的,也可以yum安装mariadb使用。我用的是之前安装好的5.7.28版本的数据库
#安装数据库
[root@db01 ~]# yum install -y mariadb-server
#启动数据库
[root@db01 ~]# systemctl start mariadb
#导入数据
[root@db01 ~]# mysql -uroot -p < /tmp/zabbix.sql
#查看导入的zabbix库
[root@db02 ~]# mysql -u root -p
Enter password:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hhh |
| mysql |
| performance_schema |
| school |
| sys |
| test |
| world |
| zabbix |
+--------------------+
4.关闭原来的数据库并且测试
#关闭数据库
[root@zabbix ~]# systemctl stop mariadb
#打开浏览器查看
这里访问是失败的,为什么会失败呢?
因为我们需要修改PHP代码连接数据库
#修改php文件
[root@zabbix ~]# vim /etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '10.0.0.52';
$DB['PORT'] = '3306';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = '123';
#修改zabbix配置文件
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=10.0.0.52
#问题解决
这里我们会发现,新的错误又会出现了,刚才是连接不上localhost
--说明现在我们的数据库不支持远程连接
#解决办法:所以我们创建个用户就好
MariaDB [(none)]> grant all on zabbix.* to zabbix @'10.0.0.%' identified by '123';
二、如何添加自定义监控项
自定义监控格式
### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=<key>,<shell command>
# See 'zabbix_agentd' directory for examples.
#官方示例
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
1.自定义监控第一步
#使用命令查看服务器当前登录用户会话数量(服务端)
[root@zabbix ~]# uptime |awk '{print $4}'
2
#客户端
[root@db02 ~]# uptime |awk '{print $5}'
2
2.使用自定义监控第二步
#把命令加入配置文件并起名(服务端)
[root@zabbix ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix zabbix_agentd.d]# vi userparameter_login.conf
UserParameter=user.count,uptime |awk '{print $4}'
#重启agent
[root@zabbix ~]# systemctl restart zabbix-agent.service
#客户端
[root@db02 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@db02 zabbix_agentd.d]# vi userparameter_login.conf
UserParameter=user.count,uptime |awk '{print $5}'
#重启agent
[root@db02 zabbix_agentd.d]# systemctl restart zabbix-agent.service
#查看本机
[root@zabbix zabbix_agentd.d]# zabbix_get -s 127.0.0.1 -k user.count
2
#查看客户端
[root@zabbix zabbix_agentd.d]# zabbix_get -s 10.0.0.52 -p 10050 -k user.count
2
3.自定义监控第三步
#查看监控项
[root@zabbix ~]# zabbix_agentd -p
user.count [t|2]
[root@db02 ~]# zabbix_agentd -p
user.count [t|2]
4.自定义监控第四步
#在zabbix-server 端获取agent端数据,使用zabbix_get命令
#1.安装zabbix_get命令
[root@zabbix ~]# yum install -y zabbix-get
#2.语法
[root@web02 ~]# zabbix_get
usage:
zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address]
--tls-connect cert --tls-ca-file CA-file
[--tls-crl-file CRL-file] [--tls-agent-cert-issuer cert-issuer]
[--tls-agent-cert-subject cert-subject]
--tls-cert-file cert-file --tls-key-file key-file -k item-key
zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address]
--tls-connect psk --tls-psk-identity PSK-identity
--tls-psk-file PSK-file -k item-key
zabbix_get -h
zabbix_get -V
#3.获取数据
[root@zabbix ~]# zabbix_get -s 10.0.0.52 -k user.count
2
5.自定义监控第五步
1)在web页面添加监控项
配置—>主机—>监控项—>创建监控项
2)创建模板
6.自定义监控第六步
1)添加触发器,当用户超过2个人的时候,就要报警
2)优化触发器名称
使用zabbix内置变量,来优化触发器的名称,此处使用的是
主机名变量:{}
IP地址变量:{HOST.IP}
7.自定义监控第七步
1)添加图形化界面
2)查看添加的图形化界面
8.自定义监控第八步
1)添加报警媒介类型
如果事件源是触发器,那么就会触发动作,触发什么动作呢?就需要自己来创建了。
自定义触发器—>动作—>通知
如果事件源是触发器–>则创建一个触发的动作–>通知
1.我怎么通知。通过介质(配置一个邮箱的发件人)
2.通知给谁。(接收的邮箱)
3.通知的内容(内容可以自定义
2)选择qq邮箱报警(注意:我这里的是添加的)
3)如何看邮箱的授权码
4)用户关联报警媒介
5)设置触发器动作
6)设置关动作的条件内容
7)设置故障恢复动作内容
查看接收到的邮件报警内容
三、配置短信报警
1.第三方报警平台
通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,可以在最合适的时间,将最重要的信息推送给最合适的人员。
https://newuser.aiops.com/
2.zabbix服务端配置
2.1切换到zabbix脚本目录 [(如何查看zabbix脚本目录)](javascript:void(0)😉:
[root@zabbix ~]# find / -name alertscripts
/usr/lib/zabbix/alertscripts
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
2.2获取Cloud Alert Agent包:
[root@zabbix alertscripts]# wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-3.0.1.tar.gz
2.3 解压、安装。
tar -xzf ca_zabbix_release-3.0.1.tar.gz
cd cloudalert/bin
bash 95501940-c8e9-476b-8bb9-f2bb82a88625
注:1、在安装过程中根据安装提示,输入zabbix管理地址、管理员用户名、密码。
2、zabbix管理地址正确示例:http:///zabbix
2.4 当提示"安装成功"时表示安装成功!
验证告警集成
产生新的zabbix告警(problem),动作状态为“已送达”表示集成成功。
3.alter平台配置分派策略和通知策略
新建分派策略
新建通知策略
4.zabbix web界面配置短信与微信通知
alter平台报警功能
打开多个终端,查看登录人数
[root@db02 ~]# uptime
16:49:07 up 41 min, 4 users, load average: 0.00, 0.01, 0.03