1、zabbix部署环境说明
zabbix监控服务器:mastsc
zabbix被监控服务器:slave
两台机器关闭"selinux":setenforce 0
两台机器关闭防火墙:systemctl stop firewalld
永久关闭:systemctl disable firewalld
2、zabbix监控服务器:mastsc部署
一、安装zabbix软件
[root@mastec ~] rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@mastec ~] yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent httpd mariadb mariadb-server
二、启动并登录mariadb数据库
[root@mastec ~] systemctl start mariadb
[root@mastec ~] mysql
创建数据库
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
创建数据库账户密码
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> exit
三、导入数据
[root@mastec ~] zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix
四、修改数据库信息
[root@mastec ~] vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
五、启动zabbix服务
[root@mastec ~] systemctl start zabbix-server zabbix-agent
六、配置时区(注意求掉#号)
[root@mastec ~] vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
七、启动httpd
[root@mastec ~] systemctl start httpd
八、使用游览器登录:http://mastsc的IP地址/zabbix
九、输入用户名Admin 密码zabbix
3、zabbix被监控服务器:slave部署
一、安装zabbix软件
[root@slave ~] rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
二、安装zabbix客户段软件
[root@slave ~] yum -y install zabbix-agent
三、修改配置文件
[root@slave ~] vim /etc/zabbix/zabbix_agentd.conf
Server=mastsc的IP地址 //zabbix服务器地址
ServerActive=mastsc的IP地址 //主动模式的服务器IP地址
Hostname=slave的IP地址 //客户端主机名称ps:直接写IP地址也可以
UnsafeUserParameters=1 //支持特殊字符
SourceIP=0.0.0.0 //改成支持所有人
四、启动客户端服务
[root@slave ~] systemctl start zabbix-agent
4、监控cpu部署
1、直接创建主机群组
二、创建主机
3、添加监控项 监控项键值
system.cpu.util[,idle] #这个键值是监控cpu到达某个数值会报警
system.cpu.util[,] #这个键值是实时监控cpu
五、添加触发器
六、添加图形
七、测试cpu是能正常检测ps:这条命令是求圆周率的35000可以根据硬件方面来改变
[root@slave ~] echo "scale=3500; 4*a(1)" | bc -l -q
八、去zabbix界面中查看监控图形是否有变化
5、使用邮箱报警
前提是cpu图形检测正常方可执行以下步骤
一、我选取的是163邮箱
二、设置报警媒介
三、告警用户
四、创建动作
五、提高cpu使用率测试是否发送邮件
[root@slave ~] echo "scale=3500; 4*a(1)" | bc -l -q
六、也可以查看动作日志是否发送成功
6、使用钉钉报警
一、首先去钉钉上面创建一个钉钉机器人 记住创建机器人时的“关键字”,“webhook”这两个值
二、zabbix服务器端进行配置
[root@localhost ]# cd /usr/lib/zabbix/alertscripts
[root@localhost alertscripts]# vim zabbix_send_ding.py
to=$1
subject=$2
text=$3
#此处的 xxxxx 就是刚刚复制存留的 api 接口地址。
curl -i -X POST \
'api接口地址' \
-H 'Content-type':'application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": "'监控报警:text''"$text"'"
#text是你创建钉钉机器人的自定义关键字必须要加上 $text是监控报警内容
#没有前面一个text钉钉里不会显示报警 没用后面这个$text不会显示报警内容
},
"at":{
"atMobiles":[
"'"$1"'"
],
"isAtAll":false
}
}'
三、给这个文件一个执行权限
[root@localhost alertscripts]# chmod +x zabbix_send_ding.py
测试一下是否能像钉钉发送信息
[root@localhost alertscripts]# sh zabbix_send_ding.py
四、设置前端创建脚本与告警媒介
五、创建动作
操作 ps:消息内容里面也填写一样的信息
标题:服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
告警信息:{TRIGGER.NAME}
告警项目:{ITEM.NAME}
告警时间:{EVENT.DATE}_{EVENT.TIME}
当前状态:故障 值={ITEM.VALUE}
故障已持续{EVENT.AGE},请尽快处理
事件ID:{EVENT.ID}
恢复操作 ps:消息内容里面也填写一样的信息
标题:服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
告警信息:{TRIGGER.NAME}
告警项目:{ITEM.NAME}
告警时间:{EVENT.DATE}{EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE}{EVENT.RECOVERY.TIME}
当前状态:{TRIGGER.STATUS} 值={ITEM.VALUE}
故障共持续{EVENT.AGE}
事件ID:{EVENT.ID}
确认操作 ps:消息内容里面也填写一样的信息
标题:服务器:{HOST.NAME}: 报警确认!
确认信息:"{ACK.MESSAGE}"
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
确认人:{USER.FULLNAME}
时间:{ACK.DATE} {ACK.TIME}
当前的问题是: {TRIGGER.NAME}
时间ID:{EVENT.ID}
六、测试
[root@slave ~] echo “scale=3500; 4*a(1)” | bc -l -q