1:zabbix安装
1.1 zabbix 环境要求
硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)
操作系统: Linux centos7.2 x86_64
bash
Python = 2.7.x
Mariadb Server ≥ 5.5.56
httpd-2.4.6-93.el7.centos.x86_64
PHP 5.4.16
1.2 zabbix安装版本
bash
[root@node1 zabbix]# zabbix_server -V
zabbix_server (Zabbix) 4.0.26
1.3下载zabbix的yum源
bash
wget https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@node1 ~]# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm
[root@node1 ~]# rpm -qa | grep zabbix
zabbix-release-4.0-1.el7.noarch
[root@node1 ~]# ls /etc/yum.repos.d/zabbix.repo
/etc/yum.repos.d/zabbix.repo
1.4 zabbix服务器配置如下:
zabbix-server服务器
bash
品牌:lenovo
cpu:4核
内存:3G
硬盘容量:40G硬盘
IP:192.168.xx.xx
网关 192.168.xx.xx
DNS1=8.8.8.8
zabbix-agent服务器
bash
品牌:lenovo
cpu:4核
内存:3G
硬盘容量:40G硬盘
IP:192.168.xx.xx
网关 192.168.xx.xx
DNS1=8.8.8.8
1.5安装zabbix服务
bash
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
验证
bash
[root@node1 alertscripts]# rpm -qa | grep zabbix
zabbix-release-4.0-1.el7.noarch
zabbix-web-4.0.26-1.el7.noarch
zabbix-server-mysql-4.0.26-1.el7.x86_64
zabbix-agent-4.0.26-1.el7.x86_64
zabbix-web-mysql-4.0.26-1.el7.noarch
1.6 安装mariadb-server
bash
yum -y install mariadb mariadb-server
[root@node1 alertscripts]# rpm -qa | grep mariadb
mariadb-libs-5.5.65-1.el7.x86_64
mariadb-server-5.5.65-1.el7.x86_64
mariadb-5.5.65-1.el7.x86_64
bash
创建数据库
create database zabbix character set utf8 collate utf8_bin;
创建用户
grant all on *.* to 'tom'@'localhost' identified by '123';
flush privileges;
导入数据
zcat /usr/share/doc/zabbix-server-mysql-4.4.5/create.sql.gz | mysql -uroot -p zabbix
2:zabbix部署
2.1 zabbix安装目录
安装目录ls /etc/zabbix/
2.2 zabbix配置文件路径及配置文件
root@node1 \~\]# ls /etc/zabbix/zabbix_server.conf  ```bash systemctl start zabbix-server zabbix-agent httpd ``` 2.3 zabbix常规操作/检查是否启动 (1)开启zabbix服务端 ```bash [root@node1 zabbix]# systemctl start zabbix-server [root@node1 ~]# systemctl enable zabbix-server ``` (2)关闭zabbix服务端 ```bash [root@node1 zabbix]# systemctl stop zabbix-server ``` (3)zabbix服务状态  (4)查看zabbix端口号 ```bash [root@node1 zabbix]# netstat -ntpl | grep 100 tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2860/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 3228/zabbix_server tcp6 0 0 :::10050 :::* LISTEN 2860/zabbix_agentd tcp6 0 0 :::10051 :::* LISTEN 3228/zabbix_server 10050端口是zabbix-agent端服务 10051端口是zabbix-server端服务(访问zabbix服务使用) ``` 3:zabbix页面配置 3.1 zabbix添加监控远程主机 远程主机安装agent端 下载yum源 wget ```bash https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm yum -y install zabbix-agent ``` 修改配置文件  在server端页面添加远程主机   3.2 zabbix远程主机添加模板     3.3 在zabbix远程主机上添加自定义监控项(监控端口)    3.4 编写shell脚本zabbix监控mysql的qps值和tps值 在远程监控主机上安装mysql服务 ```bash yum -y install mariadb mariadb-server ``` 在agent端新建mysql.conf文件,和zabbix-server端连接 ```bash [root@zabbix-agent zabbix_agentd.d]# pwd /etc/zabbix/zabbix_agentd.d [root@zabbix-agent zabbix_agentd.d]# ls mysql.conf [root@zabbix-agent zabbix_agentd.d]# cat mysql.conf UserParameter=mysql_status[*],sudo /etc/zabbix/scripts/mysql.sh $1 在zabbix-agent配置文件目录目录新建scripts目录 [root@zabbix-agent zabbix]# pwd /etc/zabbix [root@zabbix-agent zabbix]# mkdir scripts [root@zabbix-agent zabbix]# ls Scripts ``` 将在新建的目录下写mysql监控脚本 ```bash [root@zabbix-agent zabbix]# cd scripts/ [root@zabbix-agent scripts]# pwd /etc/zabbix/scripts [root@zabbix-agent scripts]# ls mysql.sh ``` 脚本编写内容  将编写好的脚本加上权限 chmod +x /etc/zabbix/scripts/mysql.sh 在zabbix-server端修改sudo文件 visudo  不加会报这样的错误  在zabbix-server端安装zabbix-get命令进行验证 ```bash yum -y install zabbix-get ``` 在zabbix-server测试脚本是否可用 ```bash [root@node1 ~]# zabbix_get -s 192.168.xx.xx -k mysql_status[qps] 0 ``` Zabbix-web页面配置 添加监控项  添加触发器  添加图形  可以查看图形已经有数据产生了  3.5 编写脚本zabbix监控nginx pv(页面浏览量)值和uv(页面访问量)值和状态码 新建nginx脚本 ```bash [root@zabbix-agent scripts]# pwd /etc/zabbix/scripts [root@zabbix-agent scripts]# vim nginx.sh ``` 脚本内容  新建nginx调用脚本文件 ```bash [root@zabbix-agent zabbix_agentd.d]# pwd /etc/zabbix/zabbix_agentd.d [root@zabbix-agent zabbix_agentd.d]# vim nginx.conf ``` 调用脚本文件内容  利用zabbix-get命令验证是否能获取到值 ```bash [root@node1 ~]# zabbix_get -s 192.168.10.66 -k nginx_get[pv] 183 ``` Zabbix--web页面配置 添加监控项(状态码)  添加触发器  添加图形  查看图形结果  3.6 zabbix配置邮件报警 在zabbix-server端安装邮件服务 ```bash yum -y install mailx yum -y install sendmail ``` 配置发送邮件参数  测试发送邮件是否正常 ```bash [root@zabbix alertscripts]# echo "zabbix test mail" |mail -s "zabbix" [email protected] ``` 编写发邮件脚本 ```bash [root@zabbix alertscripts]# cd /usr/lib/zabbix/alertscripts [root@zabbix alertscripts]# vi mailx.sh #!/bin/bash #send mail messages=echo $3 | tr '\r\n' '\n' subject=echo $2 | tr '\r\n' '\n' echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>& 修改权限 touch /tmp/mailx.log chown -R zabbix.zabbix /tmp/mailx.log chmod +x /usr/lib/zabbix/alertscripts/mailx.sh chown -R zabbix.zabbix /usr/lib/zabbix/ ``` Web页面配置       3.7 测试zabbix触发报警发送邮件 将监控的远程主机tomcat停止触发报警发送邮件    3.8测试 zabbix恢复报警发送邮件  3.9 zabbix邮件报警   4:zabbix钉钉报警 4.1钉钉群添加机器人        钉钉脚本  4.2脚本编写 查看zabbix自动执行脚本路径 vim /etc/zabbix/zabbix_server.conf  脚本存放位置以及内容 \[root@node1 alertscripts\]# pwd /usr/lib/zabbix/alertscripts \[root@node1 alertscripts\]# ls dingding.sh  脚本添加权限 \[root@node1 alertscripts\]# chmod +x dingding.sh 4.3zabbix页面配置 创建报警媒介  三个参数内容 {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} 创建动作  操作内容 默认接收人:故障{TRIGGER.STATUS}==\>服务器{HOSTNAME1} 发生 {TRIGGER.NAME}故障! 默认信息: 异常主机:{HOST.NAME} 告警 IP:{HOST.IP} 告警时间:{EVENT.DATE}-{EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件 ID:{EVENT.ID} 来自zabbix监控平台   恢复操作内容 恢复主题:恢复{TRIGGER.STATUS}==\>服务器{HOSTNAME1}: {TRIGGER.NAME}已恢复! 恢复信息: 恢复主机:{HOST.NAME} 恢复 IP:{HOST.IP} 恢复时间:{EVENT.RECOVERY.TIME} 等级:{TRIGGER.SEVERITY} 告警项目:{TRIGGER.KEY1} 恢复信息:{TRIGGER.NAME} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件 ID:{EVENT.ID} 来自zabbix监控平台  报警媒介设置   4.4测试zabbix报警是否正常发送信息 触发报警介质将agent端tomcat关闭(测试故障信息)  查看zabbix发送邮件日志   查看钉钉接收报警信息  粉丝福利 