1、zabbix的软件架构
2、zabbix的安装
a:安装什么版本?
- 标准版
- 长期支持版: LTS
b:zabbix的安装
1:安装zabbix的repo源
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
2:安装zabbix-server-mysql和zabbix-web-mysql
yum install zabbix-server-mysql zabbix-web-mysql -y
yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml -y
3:安装配置数据库 mariadb-server,导入初始数据
#安装数据库
yum install mariadb-server.x86_64 -y
#设置自动启动数据库
systemctl enable mariadb.service
systemctl start mariadb.service
# 数据库初始化
mysql_secure_installation
# 数据库配置
mysql
# 添加一个新的zabbix的数据库
mysql> create database zabbix charset utf8;
# 授权用户和密码
mysql> grant all on zabbix.* to zabbix@localhost identified by '123456';
# 查看文件的位置
rpm -al zabbix-server-mysql
# 进入数据的文件位置
cd /usr/share/doc/zabbix-server-mysql-4.0.18/
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
# 查看文件
file create.sql.gz
# 解压文件
gzip -d create.sql.gz
# 把文件导入数据库中的zabbix库中
mysql -uzabbix -p123456 zabbix < create.sql
4:修改zabbix-server配置文件
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
# 开启zabbix
systemctl enable zabbix-server-mysql
systemctl start zabbix-server-mysql
netstat -nltp
5:修改zabbix-web配置文件
# 开启apache
systemctl start httpd
systemctl enable httpd
# 修改配置文件
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
# 重启apache
systemctl restat httpd
6:本地浏览器访问IP地址(也就是上述操作的主机地址)
上面的最后一个password是自己最开始在命令行设置的zabbix数据库用户zabbix的密码123456
用户名Admin 密码zabbix
3、添加监控主机
zabbix-server安装agent (自己监控自己,监听的端口是10050)
# zabbix-server主机
yum -y install zabbix-agent
systemctl enable zabbix-agent
systemctl start zabbix-agent
# web主页显示为绿色
其他主机监控
# 找一个别的主机安装zabbix-agent
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum -y install zabbix-agent
# 修改配置
vim /etc/zabbix/zabbix_agent.conf
Server=192.168.248.3 # 这里的IP地址是zabbix-server的主机IP地址
systemctl enable zabbix-agent
systemctl start zabbix-agent
主机名称,群组自己设定,agent代理程序的接口也就是要被监控的主机的IP地址
在这里输入 linux选择第一个即可 添加 更新
4、granfa
# 下载granfa
wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-6.5.2-1.x86_64.rpm
# 安装granfa
yum localinstall grafana-6.5.2-1.x86_64.rpm -y
# 启动
systemctl start grafana-server
systemctl enable grafana-server
# 搜索grafana的zabbix插件
grafana-cli plugins list-remote | grep zabbix
id: alexanderzobnin-zabbix-app version: 3.10.5
# 解压安装插件
grafana-cli plugins install alexanderzobnin-zabbix-app
# 重启grafana
systemctl restart grafana-server
web页面访问安装grafana的主机IP:3000 用户名和密码都是admin
找到zabbix,启用它
5、使用percona监控mysql
插件下载地址:https://www.percona.com/downloads/percona-monitoring-plugins/LATEST/
安装插件:rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@zabbix-server templates]# pwd
/var/lib/zabbix/percona/templates
[root@zabbix-server templates]# mv userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
# 下载这个文件到自己的电脑上
[root@zabbix-server templates]# sz zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
导入刚下载下来的模版
模版不兼容的问题:
1:安装一个低版本的zabbix2.2,导入模版
2:升级zabbix2.2到4.0,导出升级之后的模版
解决:下载下述的模版文件
http://pan.baidu.com/s/1pL1wDYj
给主机导入模版
zabbix+percona监控MySQL之各个监控项的解释
https://www.jianshu.com/p/516955dd3099
# 重启zabbix-server的agent
systemctl restart zabbix-agent
# 编辑文件
[root@zabbix-server ~]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbix'; 数据库zabbix的用户名
$mysql_pass = '123456'; 数据库zabbix的密码
# 修改更新的时间间隔为30s
[root@zabbix-server ~]# vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
if [ `expr $TIMENOW - $TIMEFLM` -gt 30 ]; then
rm -f $CACHEFILE
6、zabbix版本升级
zabbix2.2升级到zabbix4.0
1、找到zabbix4.0的源,并下载到老版本zabbix的服务器上
wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
2、修改zabbix源的地址为清华源zabbix的地址
vim /etc/yum.repos.d/zabbix.repo
baseurl=http://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/
3、升级zabbix的yum源
rpm -Uvh zabbix-release-4.0-2.el7.noarch.rpm
4、数据库的备份(为了防止升级错误失败,可以有回滚的选择)
mysqldump -B zabbix > zabbix.sql
5、安装包
yum -y install zabbix-server-mysql zabbix-web-mysql
6、启动zabbix
systemctl start zabbix-server
7、重启apache
systemctl restart httpd
8、web页面访问则显示新的版本的界面
7、zabbix分布式监控
当zabbix server与被监控机器不在同一个机房时,跨公网监控会很麻烦, 也会带来安全隐患(比如有防火墙的情况,需要防火墙开放的端口增多。而且像mysql数据库这类应用是不适合直接被公网连接的)
当监控机主机特别多,甚至分散在不同的地域机房。这个时候zabbix server压力很大,所以可以通过增加zabbix proxy来代理收集每个机房里的主机信息,再统一给zabbix server.
8、zabbix性能调优
-
针对mysql,写多读少 mariadb 5.5 innodb 升级 mysql 5.7 tokudb
-
去掉无用监控项,增加监控项的取值间隔,减少历史数据保存周期
- 100台主机 100个监控项 10000个监控项/30 * 365 * 24 * 3600 = 10512000000
-
把被动模式修改为主动模式,增加zabbix-proxy
-
针对zabbix-server进程调优,谁忙,就加大它的进程数量
-
针对zabbix-server缓存调优,谁生的内存少,就加大它的缓存值
-
针对zabbix 历史数据和趋势图的表,进行周期性分表(分表)
-
进程调优
-
vim /etc/zabbix/zabbix_server.conf
StartDiscoverers=5 (默认启动discover是1)
-
-
缓存调优
-
vim /etc/zabbix/zabbix_server.conf
CacheSize=256k (初始缓存的值是8M)
-