编译安装zabbix4.0

1、 创建zabbix用户和用户组

[root@centos7 ~]# groupadd -g 2020 zabbix
[root@centos7 ~]# useradd -g 2020 -u 2020 zabbix
[root@centos7 ~]# cd /usr/local/src/

在数据库上创建用户授权

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@"10.0.0.%" identified by '123456';

在客户端连接数据库验证能否登上去

[root@centos7 src]# mysql -uzabbix -h10.0.0.110 -p123456

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| zabbix             |
+--------------------+
2 rows in set (0.01 sec)

先解决zabbix依赖包的问题

yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb- Devel libevent libevent-devel java-devel  php-bcmath php-gd php-xml php-sockets  php-mysql  php-ldap  -y

解压包

[root@centos7 src]# tar xf zabbix-4.0.20.tar.gz 

解压完成进入zabbix目录

[root@centos7 src]# cd zabbix-4.0.20

–help可以查看需要的编译选项

[root@centos7 zabbix-4.0.20]# ./configure --help
[root@centos7 zabbix-4.0.20]# ./configure --prefix=/apps/zabbix --enable-server --enable-agent --with-mysql --enable-java --with-net-snmp --with-libcurl --with-libxml2

对于虚拟机–with-libcurl,–with-libxml2需要监视和配置选项;–with-libcurlSMTP身份验证和web.page.*Zabbix代理项也需要。请注意,配置选项要求使用cURL 7.20.0或更高版本–with-libcurl。

[root@centos7 zabbix-4.0.20]# make install 
root@centos7 zabbix-4.0.20]# ll database/  #这里面放得是zabbix数据库文件

导入数据库文件

[root@centos7 zabbix-4.0.20]# mysql -uzabbix -h10.0.0.110 -p123456 zabbix < database/mysql/schema.sql 

[root@centos7 zabbix-4.0.20]# mysql -uzabbix -h10.0.0.110 -p123456 zabbix < database/mysql/images.sql 

[root@centos7 zabbix-4.0.20]# mysql -uzabbix -h10.0.0.110 -p123456 zabbix < database/mysql/data.sql 

接下来编辑zabbix的配置文件

[root@centos7 zabbix-4.0.20]# vim /apps/zabbix/etc/zabbix_server.conf
DBHost=10.0.0.110  #数据库地址
DBName=zabbix #数据库名
DBUser=zabbix #数据库用户名
DBPassword=123456 #数据库密码
启动zabbix

[root@centos7 zabbix-4.0.20]# /apps/zabbix/sbin/zabbix_server -c

/apps/zabbix/etc/zabbix_server.conf
[root@centos7 zabbix-4.0.20]# ps -ef |grep zabbix

[root@centos7 zabbix-4.0.20]# ss -tnl
State      Recv-Q Send-Q                              Local Address:Port                                             Peer Address:Port              
LISTEN     0      100                                     127.0.0.1:25                                                          *:*                  
LISTEN     0      128                                             *:10051 

接下来定义zabbix前端web页面

[root@centos7 zabbix-4.0.20]# yum install httpd
[root@centos7 zabbix-4.0.20]# ps -ef |grep apache
[root@centos7 zabbix-4.0.20]# mkdir /var/www/html/zabbix
[root@centos7 zabbix-4.0.20]# ll frontends/php/
[root@centos7 zabbix-4.0.20]# cd frontends/php/
[root@centos7 php]# cp -a ./* /var/www/html/zabbix/
现在就可以访问:http://10.0.0.140/zabbix/setup.php

在这里插入图片描述
在这里插入图片描述

这里需要改[root@centos7 php]# vim /etc/php.ini  Ubuntu的路径是vim /etc/php/7.2/apache2/php.ini

post_max_size = 8M  #改成16M

max_execution_time = 30 #改成300

max_input_time = 60 #改成300
date.timezone = Asia/Shanghai
修改完之后重启一下apache[root@centos7 php]# systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里是说没有权限生成文件
在这里插入图片描述
在这里插入图片描述
进入这个目录里面

[root@centos7 php]# cd /var/www/html/zabbix/conf/

手动上次刚下载的文件
在这里插入图片描述
在这里插入图片描述
账号是Admin
密码是zabbix
现在我们启动zabbix_agent

[root@centos7 conf]# /apps/zabbix/sbin/zabbix_agentd 

编写启动脚本

[root@centos7 ~]# vim /lib/systemd/system/zabbix-server.service 

[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service
After=mariadv.service

[Service]
Environment="CONFFILE=/apps/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-
Type=forking
Restart=on-failure
PIDFile=/apps/zabbix/run/zabbix/zabbix_server.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeeoutSec=infinity

[Install]
WantedBy=multi-user.target


用启动脚本启动zabbix
[root@centos7 ~]# pkill zabbix_server
[root@centos7 ~]# systemctl start zabbix-server

Zabbix-agent启动脚本
[root@centos7 zabbix]# vim /lib/systemd/system/zabbix-agent.service 
[root@centos7 ~]# vim /lib/systemd/system/zabbix-agent.service 

[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/apps/zabbix/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/apps/zabbix/run/zabbix/zabbix_agentd.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target

Chown zabbix.zabbix /apps/zabbix/run  -R

启动zabbix-agent
[root@centos7 ~]# pkill zabbix_agent
[root@centos7 ~]# systemctl start zabbix-agent

Zabbix server 和性能相关的几个因素
1、数据库:
数据库服务器的cpu和磁盘io要快空间要大、内存16G-32G内存(监控2000个主机)

2、zabbix server的配置:16核cpu、磁盘io最差 RAID 10、监 控几十个服务器8G内存、监控几百台16G、32G监控2000左右。主要是看监控项的多少,一个服务器差不多五十个监控项。
3、zabbix.conf文件的优化 编译安装的日志默认是放在/tmp目录下 yum或者apt是在/var目录下

配置文件详解

[root@centos7 zabbix-4.0.20]# vim /apps/zabbix/etc/zabbix_server.conf
DBHost=10.0.0.110  #数据库地址
DBName=zabbix #数据库名
DBUser=zabbix #数据库用户名
DBPassword=123456 #数据库密码
HistoryStorageURL= #elasticsearch 服务器地址,保存zabbix历史数据到ES里面,优化zabbix性能,新版本zabbix才支持(一般不用)
HistoryStorageTypes=uint,db1,str.log.text  #elasticsearch索引类型
HistoryStorageDateIndex=0 #将历史数据保存到不同的elasticsearch索引   
ExportDir #定义实时到处触发器事件,监控采集值,趋势数据的目录(一般不用)
ExportFileSize=1G #定义每个导出文件的最大大小(一般不用)



ADVANCED PARAMETERS  必须优化类
StartPollers=5 (默认是5 这里至少和cpu核心数保持一致)

StartIPMIPollers=0 (IPMI 默认是0 可以开0-1000个用的时候才开)

StartPreprocessors=3 (这个值可以设置高点)预启动多少个进程用于处理zabbix-agent数据

StartPollersUnreachable=1 (这个保持默认)#不可达主机的轮询进程的初始实例启动数量

StartTrappers=5 (默认为5稍微调大点不超过cpu核心数)预启动的Trappers进程数主要做触发器的,少了的话会延迟报警

 StartPingers=1 (默认为1表示同一时间只能ping一个服务器,需要设置多一点)#ICMP ping 进程的初始实例进程数量

StartDiscoverers=1 #自动发信主机的进程数量消耗zabbix性能(一般不用)

StartHTTPPollers=1 #http 进程数量 (默认为1,一般情况下开4个)

StartTimers=1 #计时器实例数量,计时器用于计算问题的发生时间和步骤同步等

StartEscalators=1 #escalators进程的初始实例数量,用于处理动作中的自动步骤的进程数量(通常只开4个)

StartAlerters=3  #报警实例预启动数量

JavaGateway=192.168.7.101  #javagateway 服务器地址,java plllers 必须设置

JavaGatewayPort=10052   #javagateway端口

StartJavaPollers=0      #预启动多少个进程来收集java的监控数据

StartVMwareCollectors=0 #用于设置监控vmwar esxi主机实例时使用,若为0则不启用,若要监控esxi主机此值最少为1,根据监控esxi数量设置对应的值。
VMwareFrequency=60 #监控vmware获取最新数据间隔频率,单位为秒

VMwarePerfFrequency=60 #监控vmware获取性能数据间隔
VMwareCacheSize=8M #vmware数据缓存大小,会占用zabbix server服务器内存

VMwareTimeout=10 #超时时间,主机在多长时间没有反馈就认为挂了


SNMPTrapperFile=/tmp/zabbix_traps.tmp #snmp触发器临时文件路径
 StartSNMPTrapper=0 #SNMP触发器预启动数量

ListenIP=0.0.0.0 #zabbix 监听地址

HousekeepingFrequency=1 #多少小时清理一次代理数据库的history
数据

MaxHousekeeperDelete=5000 #每次最多删除历史数据的行数(一般删不干净,得找dba写sql语句删)



CacheSize=8M #配置信息缓存大小(128M-512M)
CacheUpdateFrequency=60 #zabbix更新缓存数据的频率,单位为秒(一般不要设置太多默认就好)

StartDBSyncers=4 #zabbix和数据库同步数据的进程数量(和cpu核心一致)

HistoryCacheSize=16M #历史数据的缓存大小(可以设置多点)
HistoryIndexCacheSize=4M #历史数据索引缓存大小
TrendCacheSize=4M #用去设置划分多少系统共享内存用于存储计算出来的趋势数据,此参数值从一定程度上可影响数据库读压力,范围是128K-2G (可以设置多点)

ValueCacheSize=8M #历史值缓存的大小,用于缓存历史数据请求的共享内存大小(可以设置64G)

Timeout=4 #数据获取等待超时时间(通常配置30s)
TrapperTimeout=300 #触发器处理新数据的最长时间,单位是秒(默认就行)
UnreachablePeriod=45 #当主机不可达多少秒后,设置为主机不可用。(默认就行)
UnavailableDelay=60 #当主机不可以用了,多久检查一次主机的可用性
AlertScriptsPath=${datadir}/zabbix/alertscripts #监控报警脚本路径,取决于编译时的datadir参数


ExternalScripts=${datadir}/zabbix/externalscripts #自定义脚本存储路径

FpingLocation=/usr/sbin/fping #fping命令的位置

Fping6Location=/usr/sbin/fping6 #fping6的位置  #改成fping命令实际的路径

SSHKeyLocation= #用于ssh检查和操作的公钥私钥的位置 (一般不用)
LogSlowQueries=0 #慢日志时间,仅当debugLevel 设置为3,4或者5时才不可用,0-不记录慢查询,范围是1-3600000

StartProxyPollers=1 #启动多少子进程与代理通信,若代理较多可考虑加大此数值,范围是0-250 (和代理数量相等)

ProxyConfigFrequency=3600 #proxy被动模式下,server多少秒同步配置文件至proxy,该参数仅用于被动模式下的代理,范围是1-3600*24*7  

ProxyDataFrequency=1 #被动模式下,zabbix server 间隔多少秒向proxy请求历史数据(被动模式下值设置短点)
AllowRoot=0  #是否允许root启动(不允许)
User=zabbix #启动用户
# Include=/usr/local/etc/zabbix_server.general.conf
# Include=/usr/local/etc/zabbix_server.conf.d/
# Include=/usr/local/etc/zabbix_server.conf.d/*.conf #导入配置文件
SSL (一般用不上)
StatsAllowedIP= # 定义允许访问zabbix server的ip地址列表(白名单一般不用,都是在防火墙上控制)
LoadModulePath=${libdir}/modules #第三方模块目录路径 (一般用不上)
TLS (一般用不上)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值