Zabbix4.0
安装部署zabbix监控、定义监控项、生成触发器、使用telegram报警
一、安装部署zabbix、nginx版本
1. 安装zabbix
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all
# yum install zabbix-server-mysql zabbix-agent -y
# yum install centos-release-scl -y
#编辑zabbix的yum源
# vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...1
2.安装mysql、导入数据库
# yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl mariadb-server -y
# systemctl start mariadb
# 创建zabbix数据库、赋予权限
# mysql -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> flush privileges;
mysql> quit;
#导入zabbix官方自带的数据库
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
#填写zabbix连接mysql的密码
# vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
3.编辑zabbix配套的nginx配置文件
#注释#去掉
# vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
# listen 80;
# server_name 192.168.234.13;1
#更改acl权限和时区 #nginx版本要加nginx
# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
listen.acl_users = apache,nginx
php_value[date.timezone] = Asia/Shanghai1
4.启动所有服务
# systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm1
5.网页开始安装zabbix
1.欢迎
2.检查预先需要的配置文件
3.zabbix数据库配置
4.zabbix服务端详细设置
5.汇总
6.点击下载配置文件
重命名为zabbix.conf.php至/etc/zabbix/web/目录
7.安装成功
8.设置
9.新修改为中文
二、自定义监控项、触发器、图形
1.配置->模板->创建模板
2.模板名称
3.进入模板->监控项
4.创建监控项
5.创建触发器
6.创建显示监控项的图形
7.将模板添加到主机
8.查看主机监控图是否显示正确
三、使用Telegram报警
1.申请telegram机器人
搜索机器人@BotFather->newbot->最后拿到api token
2.加入机器人到群组
将新生成的 bot 加入需要被告警的 Tel 群组.输入一些文本.稍后获取信息.
3.配置 Zabbix-in-Telegram
打开zabbix_server配置,查看
AlertScriptsPath=/usr/lib/zabbix/alertscripts
4.clone 代码,安装依赖.
# cd /usr/lib/zabbix/alertscripts
# git clone https://github.com/ableev/Zabbix-in-Telegram.git
# yum install python-pip
# cd Zabbix-in-Telegram/
# pip install -r requirements.txt
5.复制告警脚本至配置路径
# cp zbxtg.py zbxtg_settings.example.py zbxtg_group.py /usr/lib/zabbix/alertscripts/
# cd /usr/lib/zabbix/alertscripts/
# mv zbxtg_settings.example.py zbxtg_settings.py
6.修改zbxtg_settings.py
# vim zbxtg_settings.py
tg_key = "XXX:YYY" # telegram bot api key
zbx_server = "http://youip:port/zabbix/" # zabbix server full url
zbx_api_user = "Admin"
zbx_api_pass = "zabbix"
tg_key 是生成的 Tel Token.zabbix用户名密码必须是能够登陆的,且有权限.可以使用Admin.
测试脚本是否可以正常发送告警.
7.修改要发送的group-id
# vim zbxtg.py
8.zabbix-server配置脚本
创建用户组->创建用户->将用户分组
添加用户的报警媒介
添加触发器之后的动作
1.添加动作
2.添加操作
操作
{{fire}}{{fire}}{{fire}}:告警节点:{TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
告警主机: {HOST.NAME}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}
Last value: {ITEM.LASTVALUE1} ({TIME})
zbxtg;graphs
zbxtg;graphs_period=10800
zbxtg;itemid:{ITEM.ID1}
zbxtg;title:{HOST.HOST} - {TRIGGER.NAME}
恢复操作
{{OK}}{{OK}}{{OK}}:恢复节点:{TRIGGER.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
恢复主机: {HOST.NAME}
恢复时间: {EVENT.DATE} {EVENT.TIME}
事件等级: {TRIGGER.SEVERITY}
恢复项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}
Last value: {ITEM.LASTVALUE1} ({TIME})
zbxtg;graphs
zbxtg;graphs_period=10800
zbxtg;itemid:{ITEM.ID1}
zbxtg;title:{HOST.HOST} - {TRIGGER.NAME}
3.配置报警媒介
zbxtg.py
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
--group
10.调试脚本