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.调试脚本


四、测试