1:zabbix安装
1.1 zabbix 环境要求
硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)
操作系统: Linux centos7.2 x86_64
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安装版本
[root@node1 zabbix]# zabbix_server -V
zabbix_server (Zabbix) 4.0.26
1.3下载zabbix的yum源
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服务器
品牌:lenovo
cpu:4核
内存:3G
硬盘容量:40G硬盘
IP:192.168.xx.xx
网关 192.168.xx.xx
DNS1=8.8.8.8
zabbix-agent服务器
品牌:lenovo
cpu:4核
内存:3G
硬盘容量:40G硬盘
IP:192.168.xx.xx
网关 192.168.xx.xx
DNS1=8.8.8.8
1.5安装zabbix服务
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
验证
[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
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
创建数据库
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
systemctl start zabbix-server zabbix-agent httpd
2.3 zabbix常规操作/检查是否启动
(1)开启zabbix服务端
[root@node1 zabbix]# systemctl start zabbix-server
[root@node1 ~]# systemctl enable zabbix-server
(2)关闭zabbix服务端
[root@node1 zabbix]# systemctl stop zabbix-server
(3)zabbix服务状态
(4)查看zabbix端口号
[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
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服务
yum -y install mariadb mariadb-server
在agent端新建mysql.conf文件,和zabbix-server端连接
[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监控脚本
[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命令进行验证
yum -y install zabbix-get
在zabbix-server测试脚本是否可用
[root@node1 ~]# zabbix_get -s 192.168.xx.xx -k mysql_status[qps]
0
Zabbix-web页面配置
添加监控项
添加触发器
添加图形
可以查看图形已经有数据产生了
3.5 编写脚本zabbix监控nginx pv(页面浏览量)值和uv(页面访问量)值和状态码
新建nginx脚本
[root@zabbix-agent scripts]# pwd
/etc/zabbix/scripts
[root@zabbix-agent scripts]# vim nginx.sh
脚本内容
新建nginx调用脚本文件
[root@zabbix-agent zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@zabbix-agent zabbix_agentd.d]# vim nginx.conf
调用脚本文件内容
利用zabbix-get命令验证是否能获取到值
[root@node1 ~]# zabbix_get -s 192.168.10.66 -k nginx_get[pv]
183
Zabbix–web页面配置
添加监控项(状态码)
添加触发器
添加图形
查看图形结果
3.6 zabbix配置邮件报警
在zabbix-server端安装邮件服务
yum -y install mailx
yum -y install sendmail
配置发送邮件参数
测试发送邮件是否正常
[root@zabbix alertscripts]# echo "zabbix test mail" |mail -s "zabbix" [email protected]
编写发邮件脚本
[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发送邮件日志
查看钉钉接收报警信息
粉丝福利