赞
踩
安装说明:Download and install Zabbix
中文手册:Zabbix 文档
环境准备:
主机名 | 地址 |
---|---|
zabbixserver | 192.168.88.5/24 |
web1 | 192.168.88.100/24 |
关闭防火墙,将 SELinux 设置为宽容模式(Permissive)
先将Zabbix rpm包更新到yum仓库,安装包清单如下:
1.在Zabbixserver上安装相应软件包
dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent mysql-server langpacks-zh_CN
2. 启动mysqld服务
[root@pubserver zabbix]# systemctl enable mysqld --now
3.配置数据库
- # 在zabbix上创建连接数据库的用户
- [root@zabbixserver ~]# mysql
- mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
- # 在binlog日志开启的情况下,打开函数生成器
- mysql> set global log_bin_trust_function_creators = 1;
- mysql> create user zabbix@localhost identified by 'zabbix';
- mysql> grant all privileges on zabbix.* to zabbix@localhost;
- mysql> quit;
-
- # 验证数据库配置,如果登陆不到数据库表示上一步配置不正确
- [root@zabbixserver ~]# mysql -uzabbix -pzabbix -hlocalhost zabbix
-
- # 在数据库中创建表并导入数据
- [root@zabbixserver ~]# cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .
- [root@zabbixserver ~]# gzip -d server.sql.gz
- [root@zabbixserver ~]# mysql -uzabbix -pzabbix zabbix < server.sql
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
4.配置zabbix_server
- [root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.conf
- DBPassword=zabbix
5.配置Zabbix_agent
- [root@zabbixserver ~]# vim +182 /etc/zabbix/zabbix_agentd.conf
- Hostname=zabbixserver
6.配置Nginx展示Zabbix
- [root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf
- # 打开第2、3行的注释,结果如下所示:
- server {
- listen 8080;
- server_name example.com;
- ...以下省略...
7.启动相关服务
- [root@pubserver zabbix]#systemctl enable zabbix-server --now
- [root@pubserver zabbix]#systemctl enable zabbix-agent --now
- [root@pubserver zabbix]#systemctl enable nginx --now
- [root@pubserver zabbix]#systemctl enable php-fpm --now
访问zabbixserver的8080端口,进行初始化:
注意:这里的用户名Admin,A是大写的!密码是小写的zabbix
1.在web1上安装agent
安装配置启动agent
- [root@web1 ~]# dnf -y install zabbix-agent
- 修改web1配置文件
- [root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf
- 117 Server=127.0.0.1,192.168.88.5
- 182 Hostname=web1
- 启动服务
- [root@web1 ~]# systemctl enable zabbix-agent --now
UserParameter=自定义key值,命令
# 命令的执行结果,是key的value
- root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/usercnt.conf
- UserParameter=usercnt,sed -n '$=' /etc/passwd
- [root@web1 ~]# systemctl restart zabbix-agent.service
- # 1. 安装zabbix-get
- [root@zabbixserver ~]# yum install -y zabbix-get
- [root@web1 ~]# yum install -y zabbix-get
-
- # 2. 获取监控项的值
- [root@web1 ~]# zabbix_get -s 127.0.0.1 -k usercnt
- 46
- [root@zabbixserver ~]# zabbix_get -s 192.168.88.100 -k usercnt
- 46
上图中,点击“添加”后,出现下图:
上图中,点击“插入”后的结果如下:
注意上面的Webhook地址,不要泄露,谁拥有此地址,谁就可以控制机器人说话。
- # 安装钉钉机器人脚本需要用到的模块
- [root@zabbixserver ~]# yum install -y python3-requests
-
- # 编写钉钉机器人脚本
- [root@zabbixserver ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py
- #!/usr/bin/env python3
-
- import json
- import requests
- import sys
-
- def send_msg(url, remiders, msg):
- headers = {'Content-Type': 'application/json; charset=utf-8'}
- data = {
- "msgtype": "text",
- "at": {
- "atMobiles": remiders,
- "isAtAll": False,
- },
- "text": {
- "content": msg,
- }
- }
- r = requests.post(url, data=json.dumps(data), headers=headers)
- return r.text
-
- if __name__ == '__main__':
- msg = sys.argv[1]
- remiders = []
- url = '钉钉机器人Webhook地址' # 注意此处需输入机器人的webhook地址
- print(send_msg(url, remiders, msg))
-
- [root@zabbixserver ~]# chmod +x /usr/lib/zabbix/alertscripts/dingalert.py
-
- [root@zabbixserver ~]# /usr/lib/zabbix/alertscripts/dingalert.py 'warn: 测试消息' # 注意消息中要包含关键字warn
- {"errcode":0,"errmsg":"ok"}
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
- [root@web1 ~]# for user in user{6..10}; do useradd $user; done
- [root@web1 ~]# zabbix_get -s 127.0.0.1 -k usercnt
- 56
(这是之前测试的用户数量超过35的截图)
附监控原理图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。