Zabbix监控交换机以及邮件报警配置
2022年3月11日
由于本篇文章稍有杂乱,现重新编辑。
搭建的文档链接:https://blog.csdn.net/liuyu_719/article/details/123418277
搭建zabbix
LNMP环境
本文主要讲述如何配置zabbix,搭建过程就不详细介绍了,只展示配置步骤。
本文所使用的安装包链接如下:
链接:https://pan.baidu.com/s/1TBXi-zqEucqLsCnifZzXoQ
提取码:dyfj
[root@zabbix_server ~]# yum -y install gcc pcre-devel openssl-devel
[root@zabbix_server ~]# useradd -s /sbin/nologin nginx
[root@zabbix_server ~]# tar -xf nginx-1.18.0.tar.gz
[root@zabbix_server ~]# cd nginx--1.18.0
[root@zabbix_server nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-stream --with-http_stub_status_module
//指定安装路径、指定用户、指定组、开启SSL加密功能、开启TCP/UDP代理模块、开启status状态页面
[root@zabbix_server nginx-1.18.0]# make && make install
[root@zabbix_server ~]# yum -y install php php-mysql mariadb mariadb-devel mariadb-server
[root@zabbix_server ~]# yum -y install php-gd php-xml
//以下三个包链接里有
[root@zabbix_server ~]# rpm -ivh --nodeps php-fpm-5.4.16-42.el7.x86_64.rpm
[root@zabbix_server ~]# rpm -ivh --nodeps php-bcmath-5.4.16-42.el7.x86_64.rpm
[root@zabbix_server ~]# rpm -ivh --nodeps php-mbstring-5.4.16-42.el7.x86_64.rpm
下一步
[root@zabbix_server ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai //设置时区
max_execution_time = 300 //最大执行时间,秒
post_max_size = 32M //POST数据最大容量
max_input_time = 300 //服务器接收数据的时间限制
memory_limit = 128M //内存容量限制
[root@zabbix_server ~]# systemctl restart php-fpm
[root@zabbix_server ~]# vim /usr/local/nginx/conf/nginx.conf
… …
http{
… …
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
//缓存php生成的页面内容,8个16k
//缓存php生产的头部信息
//连接PHP的超时时间
//发送请求的超时时间
//读取请求的超时时间
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
// 修改该行为.conf
include fastcgi.conf;
}
… …
[root@zabbix_server ~]# systemctl start mariadb
[root@zabbix_server ~]# systemctl start php-fpm
[root@zabbix_server ~]# ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
[root@zabbix_server ~]# nginx
[root@zabbix_server ~]# systemctl status firewall && firewall-cmd --set-default-zone=trusted
[root@zabbix_server ~]# setenforce 0
部署zabbix_server
此处简略
[root@zabbix_server ~]# yum -y install net-snmp-devel curl-devel
//下面这网盘里有
[root@zabbix_server ~]# yum -y install libevent-devel-2.0.21-4.el7.x86_64.rpm
[root@zabbix_server ~]# tar -xf zabbix-4.4.7.tar.gz
[root@zabbix_server ~]# cd zabbix-4.4.7/
[root@zabbix_server zabbix-4.4.7]# ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
// --enable-server安装部署zabbix服务器端软件
// --enable-agent安装部署zabbix被监控端软件
// --enable-proxy安装部署zabbix代理相关软件
// --with-mysql配置mysql_config路径
// --with-net-snmp允许zabbix通过snmp协议监控其他设备
// --with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
[root@zabbix_server zabbix-4.4.7]# make && make install
[root@zabbix_server ~]# mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
//创建数据库,支持中文字符集
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
//创建可以访问数据库的账户与密码
[root@zabbix_server ~]# cd zabbix-4.4.7/database/mysql/
[root@zabbix_server mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix_server mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbix_server mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
//刚刚创建是空数据库,zabbix源码包目录下,有提前准备好的数据
//使用mysql导入这些数据即可(注意导入顺序)
[root@zabbix_server ~]# cd zabbix-4.4.7/frontends/php/
[root@zabbix_server php]# cp -r * /usr/local/nginx/html/
[root@zabbix_server php]# chmod -R 777 /usr/local/nginx/html/星号
[root@zabbix_server ~]# vim /usr/local/etc/zabbix_server.conf
DBHost=localhost
//数据库主机,默认该行被注释
DBName=zabbix
//设置数据库名称
DBUser=zabbix
//设置数据库账户
DBPassword=zabbix
//设置数据库密码,默认该行被注释
LogFile=/tmp/zabbix_server.log
//设置日志,仅查看以下即可
[root@zabbix_server ~]# useradd -s /sbin/nologin zabbix
//不创建用户无法启动服务
[root@zabbix_server ~]# zabbix_server //启动服务
[root@zabbix_server ~]# ss -ntulp |grep zabbix_server //确认连接状态,端口10051
tcp LISTEN 0 128 *:10051 *:* users:(("zabbix_server",pid=23275,fd=4),("zabbix_server",pid=23274,fd=4)
[root@zabbix_server ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,**本机IP** //允许哪些主机监控本机
ServerActive=127.0.0.1,**本机IP** //允许哪些主机通过主动模式监控本机
Hostname=zabbix_server //设置本机主机名
LogFile=/tmp/zabbix_server.log //设置日志文件
UnsafeUserParameters=1 //是否允许自定义key
[root@zabbix_server ~]# zabbix_agentd //启动监控agent
[root@zabbix_server ~]# ss -ntulp |grep zabbix_agentd //查看端口信息为10050
tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=23505,fd=4),("zabbix_agentd",pid=23504,fd=4)
提示:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server,
一定要先使用killall zabbix_server关闭服务后,再重新启动一次。
修改Zabbix_agent配置文件,启动Zabbix_agent服务
配置zabbix
交换机开启SNMP
首先交换机需要开启SNMP服务,如何监控的是服务器,那肯定就不需要这一步操作了。
[Sysname] snmp-agent
[Sysname] snmp-agent community read public //如果团体名为其他的,那么后续需要再zabbix中配置
zabbix添加交换机
zabbix可在最右上角切换中文
zabbix中文乱码问题,可将本地字体上传至zabbix服务器,并mv改成原来的名字,权限配置好即可,具体操作本文暂无。
zabbix添加交换机–配置–主机–添加主机
访问http://serveraddr/index.php,下一步下一步点击安装,数据库的库名、用户名、密码,都是zabbix。
记得主机名,进行到有一步的时候需要用。
Zabbix平台的默认用户登陆密码为:Admin zabbix
新建主机
1.清理agent代理接口的信息
2.填写zabbix监控的交换机ip
3.点击模板,选中图中所示模板
4.将团体名改为在交换机上对应的
5.添加
自动发现
应用集:一个集合,方便管理监控项
监控项:可根据配置定时向被监控端索取监控数据,获取的数据由键值来决定
触发器:根据监控项获取到的数据进行判断
动作:可将触发器的判断结果与监控项的结果进行比对,如果匹配中,则怎么样怎么样
图形:将监控项的数据绘制成图形.
自动发现后会自动生成应用集-监控项-触发器-图形,所以我们后续需要做的就是配置动作,另外因为我们想要实现邮件报警的效果,所以还需要配置报警媒介等.
点击配置-主机-自动发现-选中-检查
等待1-2分钟后返回主机页面,查看SNMP是否为绿色
配置报警媒介
点击邮件–配置要邮件发送端 —测试,查看是否成功 (163试过了,没有成功,下面为QQ邮箱)
配置接收邮件用户
为了方便,我们可以将接受报警邮件的用户统一挂在Admin这里
最好一个用户下面对应收件人,比如新建用户张三,报警媒介的收件人为zhangsan@qq.com
后续配置动作的时候选中张三
配置动作
配置–动作–新建动作
可以选择"触发器"等于"监控项",由自动发现的触发器 等于 监控端口状态的监控项
匹配中了之后,执行那些操作/动作
测试邮件报警
把交换机的端口down掉,查看是否会报警.
交换机查看端口状态命令已H3C为例:
sys
dis int brief
关闭/启动端口的命令
int G 1/0/1
shutdown //关闭
no shutdown //开启