从零开始搭建Zabbix监控系统:安装配置全攻略,轻松掌握企业级监控利器

#作者:stackofumbrella

文章目录

  • 前提
  • 安装及配置
  • 开始安装
  • 设置mysql编码
  • 开始安装
  • 查询是否启动成功
  • 编译安装zabbix

前提

selinux关闭

# vim  /etc/selinux/config

SELINUX=disabled
# setenforce 0
关闭防火墙

# systemctl stop firewalld
yum安装mysql


检查系统是否安装其他版本的MYSQL

# yum list installed | grep mysql

在查到的安装列表中删除无用的包

# yum -y remove mysql-libs.x86_64

安装及配置



# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

# rpm -ivh mysql-community-release-el7-5.noarch.rpm

# yum repolist all | grep mysql       #可以不执行此操作

安装哪个版本就只开启哪个版本

# yum-config-manager --disable mysql56-community

# yum-config-manager --enable mysql57-community*

开始安装


# yum -y install mysql-community-server 


设置开机启动

# systemctl enable mysqld

# systemctl daemon-reload
注意:1、如果需要修改配置文件的参数或者有专用的配置文件,必须在这步进行替换,
如果启动之后再替换就会出现各种不可预测的错误!!!

2、修改Mysql的数据目录时,如果是挂载卷,里面会有lost+found这个目录,请务必将此目录删除,因为mysql启动时要求数据目录为空,才能进行正常的初始化操作!

启动mysql初始化

# systemctl start mysqld

查看mysql5.7的初始密码

# grep 'temporary password' /var/log/mysqld.log

# journalctl -xe|grep 'temporary password'


登陆MYSQL

# mysql -uroot -p 

为root用户授权,尽量设置复杂密码

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你设置的密码' WITH GRANT OPTION;

mysql> flush privileges;

mysql5.7在设置简单的root密码时会出现以下报错


mysql5.7在设置简单的root密码时会出现以下报错

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 


解决办法

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=1;

mysql> update mysql.user set authentication_string = password('root'), password_expired = 'N', password_last_changed=now()  where user = 'root';

mysql> flush privileges;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> alter user 'root'@'localhost' identified by 'WSQ=+@27A/SJkqa>zsQA';

mysql> flush privileges;

设置mysql编码



mysql> show variables like 'character%';

# systemctl stop mysqld

# vim /etc/my.cnf

[mysqld]

character-set-server=utf8mb4 

collation-server=utf8mb4_general_ci   #如果启动报错,这个参数可以删除

再次启动mysql

# systemctl start mysqld

创建zabbix数据库和账号

mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';

mysql> flush privileges;  

mysql> show databases;

下载zabbix-5.0.17.tar.gz解压
下载地址:https://cdn.zabbix.com/zabbix/sources/stable/
# tar -C /usr/local/  -xf  zabbix-5.0.17.tar.gz  

# cd /usr/local/zabbix-5.0.17/database/mysql/

# ls

data.sql  images.sql  schema.sql  double.sql

mysql> use zabbix;

mysql> source /usr/local/zabbix-5.0.17/database/mysql/schema.sql;

mysql> source /usr/local/zabbix-5.0.17/database/mysql/images.sql;

mysql> source /usr/local/zabbix-5.0.17/database/mysql/data.sql;

mysql> source /usr/local/zabbix-5.0.17/database/mysql/double.sql;

mysql> show tables;

yum安装nginx

配置Nginx的yum仓库

# vim /etc/yum.repos.d/nginx.repo 

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

开始安装

# yum -y install nginx

启动并加入开机启动

# systemctl enable nginx

# systemctl daemon-reload

# systemctl start nginx

编译安装php

下载:https://www.php.net/releases/

# yum -y install libxml2-devel bzip2 bzip2-devel curl-devel libjpeg-devel libpng libpng-devel freetype-devel libxslt-devel libzip-devel oniguruma-devel sqlite-devel libicu-devel krb5-devel openldap openldap-devel

# tar -xf php-7.4.25.tar.gz -C /usr/local/

# cd /usr/local/php-7.4.25

# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-fpm-user=nginx --with-fpm-group=nginx --with-curl --with-freetype --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd  --with-jpeg --with-pdo-sqlite --with-pear --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --with-ldap=shared --without-gdbm --enable-fpm --enable-bcmath --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-shared  --enable-mysqlnd  --enable-ftp --enable-gd --enable-intl  --enable-mysqlnd-compression-support --enable-maintainer-zts --disable-fileinfo --disable-debug 

# make && make install

复制三个文件

# cp php.ini-production /usr/local/php/etc/php.ini

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# cp /usr/local/php/etc/php-fpm.d/www.conf.default  /usr/local/php/etc/php-fpm.d/www.conf

设置php.ini

注意:php的注释为分号,如果前面有分号请删除

# vim /usr/local/php/etc/php.ini 

max_execution_time = 300

max_input_time = 300

memory_limit = 128M

post_max_size = 16M

upload_max_filesize = 2M

date.timezone = Asia/Shanghai

修改nginx配置

# vim /etc/nginx/conf.d/default.conf

server {

    listen       80;

    server_name  192.168.1.103;

    access_log  /var/log/nginx/host.access.log  main;

    location / {

        root   /usr/share/nginx/html;

        index  index.html index.htm index.php;

    }

    location /zabbix {

        root    /usr/share/nginx/html;

        index   index.html index.htm index.php;

    }



    error_page  404              /404.html;

    error_page   500 502 503 504  /50x.html;
  

    location = /50x.html {

        root   /usr/share/nginx/html;

    }

    

    location ~ \.php$ {

        root           html;

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;

        include        fastcgi_params;

    }

}



创建zabbix目录

# mkdir /usr/share/nginx/html/zabbix

测试php是否安装成功

# /usr/local/php/sbin/php-fpm -t

配置启动文件

# vim /usr/local/php/etc/php-fpm.conf

在这里插入图片描述

# vim /usr/lib/systemd/system/php-fpm.service

[Unit]

Description=The PHP FastCGI Process Manager

After=network.target



[Service]

Type=forking

PIDFile=/var/run/php-fpm.pid

ExecStart=/usr/local/php/sbin/php-fpm

ExecReload=/bin/kill -USR2 $MAINPID





[Install]

WantedBy=multi-user.target
# systemctl enable php-fpm

# systemctl daemon-reload

# systemctl start php-fpm 

# systemctl restart nginx

查询是否启动成功

# ps -ef | grep php-fpm

root      27332      1  0 08:51 ?        00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)

mysql     27333  27332  0 08:51 ?        00:00:00 php-fpm: pool www

mysql     27334  27332  0 08:51 ?        00:00:00 php-fpm: pool www

root      27336   7898  0 08:51 pts/1    00:00:00 grep --color=auto php-fpm

编译安装zabbix

# groupadd zabbix

# useradd -g zabbix -m -s /sbin/nologin zabbix

# yum -y install gcc  mysql-community-devel fping curl-devel libxml2 libxml2-devel unixODBC-devel net-snmp-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel libevent-devel 

# cd /usr/local/zabbix-5.0.17/

# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --enable-java --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-ssh2 --with-openipmi --with-openssl --enable-proxy --prefix=/usr/local/zabbix

# make && make install 

复制zabbix初始化页面和启动脚本

# cp -r /usr/local/zabbix-5.0.17/ui/*  /usr/share/nginx/html/zabbix/

# chown -R  nginx:nginx  /usr/share/nginx/html/zabbix

# cp /usr/local/zabbix-5.0.17/misc/init.d/fedora/core/*   /etc/init.d/

# chmod +x /etc/init.d/zabbix_*

修改/etc/init.d/zabbix_server和/etc/init.d/zabbix_agentd的BASEDIR=/usr/local/为BASEDIR=/usr/local/zabbix

修改zabbix_server.conf

# vim /usr/local/zabbix/etc/zabbix_server.conf

LogFile=/usr/local/zabbix/log/zabbix_server.log

SNMPTrapperFile=/usr/local/zabbix/log/snmptrap.log

DBName=zabbix

DBUser=zabbix

DBHost=192.168.1.103

DBPassword=zabbix         

StartPollers=10

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

ExternalScripts=/usr/local/zabbix/share/zabbix/externalscripts

重启nginx和php

# systemctl restart nginx

# systemctl restart php-fpm
zabbix server配置开机自启
# vim /etc/systemd/system/zabbix-server.service
[Unit]

Description=Zabbix Server

After=network.target



[Service]

Type=forking

Restart=on-failure

PIDFile=/run/zabbix/zabbix-server.pid

KillMode=control-group

ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

ExecStop=/bin/kill -SIGTERM $MAINPID

RestartSec=10s

User=root

Group=root



[Install]

WantedBy=multi-user.target
# systemctl start zabbix_server
zabbix server启动报错
9883:20191127:110257.147 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2 "No such file or directory")
解决办法
# find / -name mysql.sock 
# ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock
# vim /data/zabbix/etc/zabbix_server.conf
DBSocket=/data/mysql/mysql.sock
重新启动zabbix server即可
访问zabbix主页,进行数据库和服务名称的配置

例如服务器ip为192.168.1.103,即访问http://192.168.1.103/zabbix/setup.php


如果web页面显示PHP  ldap   Warning

# ls /usr/local/php/lib/php/extensions/no-debug-zts-* 

opcache.a  opcache.so

出现告警是因为ldap.so模块不存在,需要编译生成此模块并重新加载
,到源码包的解压目录下,进行源码编译ldap模块(其他模块缺失编译方法一样)

# cd /usr/local/php-7.4.25/ext/ldap

# /usr/local/php/bin/phpize        #编译PHP扩展工具,主要是根据系统信息生成对应的configure文件

# ./configure  --with-php-config=/usr/local/php/bin/php-config  --with-ldap  && make && make install

执行过程中可能会有如下报错

configure: error: Cannot find ldap.h  解决办法:yum -y install openldap openldap-devel

configure: error: Cannot find ldap libraries in /usr/lib  解决办法:cp -frp /usr/lib64/libldap* /usr/lib/

# ls /usr/local/php/lib/php/extensions/no-debug-zts-*/

opcache.a  opcache.so  ldap.so

# vim /usr/local/php/etc/php.ini     

找到;extension=ldap的行把注销去掉,改成extension=ldap.so,如果模块存在,直接修改php.ini文件,然后保存退出,重启php-fpm和nginx即可
如果是yum安装的php

# yum -y install php-ldap

安装完成后同样按照上面方式修改配置文件
,然后看下ldap有没有加载

# /usr/local/php/bin/php -m

如果在列表中说明没有问题

页面配置完后进行zabbix汉化

1.管理员登入zabbix页面,找到User settings并点击进入,更改语言为Chinese(zh_CN),点击Update

2.解决zabbix图形页面中文乱码

2.1在windows系统中的C:\Windows\Fonts找到字体文件simsun.ttc

2.2将simsun.ttc文件上传至/usr/share/nginx/html/zabbix/assets/fonts目录,就是DejaVuSans.ttf所在的目录

# mv simsun.ttc simsun.ttf

# chown -R nginx:nginx  /usr/share/nginx/html/zabbix/assets/fonts/simsun.ttf

2.3将配置文件/usr/share/nginx/html/zabbix/include/defines.inc.php中的以下两行更换为新的字体

define('ZBX_GRAPH_FONT_NAME',           'simsun'); // font file name

define('ZBX_FONT_NAME', 'simsun');

安装zabbix-agent

# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# yum -y install zabbix-agent

将已有的配置文件和脚本上传到/etc/zabbix下,覆盖原有的即可

修改配置文件

# vim /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=100

Server=192.168.1.103                        #zabbix server的ip地址

ServerActive=192.168.1.103                  

Hostname=zabbix-jenkins                     #agent的主机名

Include=/etc/zabbix/zabbix_agentd.d/*.conf

UnsafeUserParameters=1

Timeout=10

# chmod +x  /etc/zabbix/scripts/*

# chmod 644 /etc/zabbix/zabbix_agentd.conf

# chmod 644 /etc/zabbix/zabbix_agentd.d/*

# systemctl enable zabbix-agent

# systemctl daemon-reload

# systemctl start zabbix-agent

zabbix产生的数据主要由四部分组成

配置数据(忽略)

历史数据:50bytes

历史趋势数据:128bytes

事件数据:130bytes

历史数据:采样生成的数据

历史趋势数据:每小时的最大值、最小值、平均值、统计

通过对以上数据的计算,可以得出需要一个多大的zabbix数据库,来定制磁盘大小,具体算法

假设有60000个监控项,每秒中处理的数据就有60000/60=1000条

历史数据大小=天数X每秒钟处理的数据量X24X3600X50Bytes

趋势数据

每一个趋势128Bytes,大小=天数X监控项X24X128Bytes

事件数据

每个占据130Bytes,大小=天数X86400X130(假设每秒产生一个事件)

你可能感兴趣的:(Zabbix,zabbix,adb)