监控工程系列:(1)ZABBIX 4.4 部署
以下文章来源于网络技术杂谈 ,作者 SYANG
监控工程
专题内容(更新中):
1、Zabbix 监控网络设备告警信息
2、Zabbix + Grafana 展示网络设备状态信息
3、Influxdb + Telegraf + Grafana 监控展示网络设备流量信息
zabbix是一种类似于cacti 、nagios的监控服务系统;可通过web界面提供可视化管理;支持分布式的系统架构;网络监控功能的企业级的开源的监控方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix架构由5部分构成,Zabbix server、Web UI、Database、Zabbix Proxy、zabbix agent。
一、组件
负责接收 agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
专用于存储所有配置信息,以及由 zabbix 收集的数据;
Zabbix 的 GUI 接口,通常与 Server 运行在同一台主机上;
可选组件,常用于分布监控环境中,代理 Server 收集部分被监控端的监控数据
并统一发往 Server 端;
部署在被监控主机上,负责收集本地数据并发往 Server 端或 Proxy 端;
二、相关术语
要监控的网络设备,可由 IP 或 DNS 名称指定;
Zabbix 的 GUI 接口,通常与 Server 运行在同一台主机上;
一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是 zabbix 进行数据收集的核心,相对某个监控对象,每个 item 都由"key"标识;
一个表达式,用于评估某监控对象的特定 item 内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为OK;
触发一个值得关注的事情,比如触发器状态转变,新的 agent 或重新上 线的 agent 的自动注册等;
指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;
用于快速定义被监控主机的预设条目集合, 通常包含了 item、 trigger、graph、 screen、 application 以及 low-level discovery rule;模板可以直接链接至某个主机;
三、端口
zabbix_server | 10051 |
zabbix_agent | 10050 |
|
|
|
|
|
|
一、安装YUM工具
下载
$ wget http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz
解压
$ tar -xvf yum-3.4.3.tar.gz
创建配置文件
$ touch /etc/yum.conf
安装
$ cd yum-3.4.3
$ ./yummain.py install yum
二、替换YUM国内源
备份原文件
$ cd /etc/yum.repos.d
$ cp CentOS-Base.repo CentOS-Base-repo.bak
下载 YUM 源 repo 文件
$ wget http://mirrors.163.com/.help/CentOS7-Base-163.repo ## 网易
清除 YUM 缓存
$ yum clean all
更换 YUM 源文件
$ mv CentOS7-Base-163.repo CentOS-Base.repo ## 网易或阿里源
生成缓存并更新
$ yum makecache
$ sudo yum -y update //此过程缓慢,请耐心等待
三、操作系统优化
关闭 SELinux
$ sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
关闭防火墙
$ sudo systemctl stop firewalld.service && systemctl disable firewalld.service
重启系统
$ reboot
四、安装Zabbix基本组件
获取数据库源
$ sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
安装MySQL数据库
$ sudo yum install mysql-* --skip-broken 有冲突的软件跳过(建议执行两次,可能有安装遗漏)
安装Apache Web服务
$ sudo yum -y install httpd
$ systemctl start httpd.service #启动
$ systemctl enable httpd.service #开机启动
安装PHP
$ sudo yum -y install php
安装php扩展
$ sudo yum -y install php-mysqlnd php-gd libjpeg* php-snmp php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash php-common php-ctype php-xml php-xmlreader php-xmlwriter php-session php-mbstring php-gettext php-ldap php-mysqli --skip-broken
$ sudo yum -y install wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC
设置 MySQL 参数
$ sudo vi /etc/my.cnf
在文件最后添加以下内容并保存(8G):
$ innodb_file_per_table = 1
$ innodb_status_file = 1
$ innodb_buffer_pool_size = 6G
$ innodb_flush_log_at_trx_commit = 2
$ innodb_log_buffer_size = 16M
$ innodb_log_file_size = 64M
$ innodb_support_xa = 0
$ default-storage-engine = innodb
$ bulk_insert_buffer_size = 8M
$ join_buffer_size = 16M
$ max_heap_table_size = 32M
$ tmp_table_size = 32M
$ max_tmp_tables = 48
$ read_buffer_size = 32M
$ read_rnd_buffer_size = 16M
$ key_buffer_size = 32M
$ thread_cache_size = 32
$ innodb_thread_concurrency = 8
$ innodb_flush_method = O_DIRECT
$ innodb_rollback_on_timeout = 1
$ query_cache_size = 16M
$ query_cache_limit = 16M
$ collation_server = utf8_bin
$ character_set_server = utf8
启动 MySQL
$ sudo systemctl enable mysqld && systemctl start mysqld
获取MySQL数据库root初始密码
$ grep 'temporary password' /var/log/mysqld.log
进行 MySQL 安全配置
$ mysql_secure_installation //一直yes
重启MySQL
$ sudo systemctl restart mysqld
配置 MySQL 中 Zabbix要的库和账号权限
$ mysql -u root -p
$ mysql> create database zabbix character set utf8 collate utf8_bin;
$ mysql>grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
$ mysql>exit;
五、安装Zabbix
安装Zabbix仓库
$ rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
$ yum clean all
安装zabbix服务器、代理、前端
$ yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent //多尝试几次,容易失败
导入初始架构和数据
$ cd /usr/share/doc/zabbix-server-mysql-4.4.0
$ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
配置zabbix参数
$ sudo vi /etc/zabbix/zabbix_server.conf
DBPassword=XXX //填入数据库密码
CacheSize=512M
(CacheSize在371行)
HistoryCacheSize=128M
(HistoryCacheSize在397行)
HistoryIndexCacheSize=128M
(HistoryIndexCacheSize在405行)
TrendCacheSize=128M
(TrendCacheSize在414行)
ValueCacheSize=256M
(ValueCacheSize在425行)
Timeout=30
(Timeout在432行)
配置 Apache 中的 PHP 参数
$ sudo vim /etc/httpd/conf.d/zabbix.conf
配置如下(8GB 内存为例):
sudo vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 600
php_value memory_limit 256M
php_value post_max_size 32M
php_value upload_max_filesize 32M
php_value max_input_time 600
php_value always_populate_raw_post_data -1
date.timezone 去掉注释符号#,并将值修改为 Asia/Shanghai
重启系统
$ systemctl stop mysqld && reboot
启动 zabbix
$ sudo systemctl start httpd && systemctl start zabbix-server
浏览器输入
http://127.0.0.1/zabbix 进入Zabbix安装页面,如下:
安装页面
环境检查
数据库配置
端口信息配置
配置预览
安装成功
进行登录页面,默认用户名密码:Zabbix/admin
进入首页
好啦,本次的技术分享就至此结束啦,下次会介绍Zabbix如何监控华为、思科网络设备,感兴趣的同学可以关注一波,爱你呦!
Done!
注:本文仅是开源技术分享,没有任何商业目的,如有版权问题请联系小编删除处理,我们并表示歉意
END
看完本文有收获,请分享给更多的人
关注 网络技术杂谈 加星标,提升网络技能