1.Zabbix安装
  IS4yhiOomKTv 2023年11月02日 89 0

zabbix架构

image-20230529133235151.png

监控端包括:(安装LTS版本)
zabbix server、Database、zabbix web
跨网络监控:
单装zabbix proxy代理,收集数据打包传输到zabbix server
被监控端:
安装zabbix agent
监控java程序
一:java程序打开JMX
二:安装java gateway收集数据

安装zabbix server(建议使用agent2,4G内存)

安装要求
https://www.zabbix.com/documentation/6.0/zh/manual/installation/requirements https://www.zabbix.com/documentation/5.0/zh/manual/installation/requirements https://www.zabbix.com/documentation/4.0/zh/manual/installation/requirements
安装三种方法(包安装、编译安装、容器安装)
包安装

1、包安装zabbix server官方参考文档

Zabbix5.0 https://www.zabbix.com/documentation/5.0/zh/manual/installation/install_from_pac kages https://www.zabbix.com/documentation/5.0/zh/manual/installation/install_from_pac kages/rhel_centos https://www.zabbix.com/documentation/5.0/zh/manual/installation/install_from_pac kages/debian_ubuntu

2、选择zabbix服务器的平台

image-20230529144112953.png

3、执行以下命令

image-20230529144128228.png

image-20230529144227213.png

zabbix server安装过程可使用脚本安装

脚本安装zabbix server使用前准备

脚本安装前需要准备字体
打开windows命令行输入fonts,出现windows自带字体,把想用的字体拖到windows界面并改名和脚本内FONT名字一样,然后拖入到linux系统,字体的文件名要与zabbix脚本上的一致

脚本安装zabbix server

[root@ubuntu2004 ~]#cat install_zabbix_server5.0.sh 
#!/bin/bash
ZABBIX_VER=5.0
URL="https://mirror.tuna.tsinghua.edu.cn/zabbix"
FONT=msyhbd.ttc

MYSQL_HOST=localhost
#MYSQL_HOST=10.0.0.100
MYSQL_ZABBIX_USER="zabbix@localhost"
#MYSQL_ZABBIX_USER="zabbix@'10.0.0.%'"

MYSQL_ZABBIX_PASS='123456'
MYSQL_ROOT_PASS='123456'

ZABBIX_IP=`hostname -I|awk '{print $1}'`
GREEN="echo -e \E[32;1m"
END="\E[0m"

. /etc/os-release 


color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $2 = "failure" -o $2 = "1"  ] ;then 
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo 
}

install_mysql () {
    [ $MYSQL_HOST != "localhost" ] && return 
    if [ $ID = "centos" -o $ID = "rocky" ] ;then
	    VERSION_ID=`echo $VERSION_ID | cut -d . -f1`
	    if [ ${VERSION_ID} == "8" ];then
            yum  -y install mysql-server
            systemctl enable --now mysqld
		elif [ ${VERSION_ID} == "7" ];then
		    yum -y install mariadb-server
			systemctl enable --now mariadb
		else
		    color "不支持的操作系统,退出" 1
		fi 
    else
        apt update
        apt -y install mysql-server
        [ $? -eq 0 ] || { color "安装MySQL失败,退出!" 1 ; exit ; }
		sed -i "/^bind-address.*/c bind-address  = 0.0.0.0" /etc/mysql/mysql.conf.d/mysqld.cnf
		systemctl restart mysql
    fi
    mysqladmin -uroot password $MYSQL_ROOT_PASS
    mysql -uroot -p$MYSQL_ROOT_PASS <<EOF
create database zabbix character set utf8 collate utf8_bin;
create user $MYSQL_ZABBIX_USER identified by "$MYSQL_ZABBIX_PASS";
grant all privileges on zabbix.* to $MYSQL_ZABBIX_USER;
quit
EOF
    if [ $? -eq 0 ];then
        color "MySQL数据库准备完成" 0
    else
        color "MySQL数据库配置失败,退出" 1
        exit
    fi
}

install_zabbix () {
    if [ $ID = "centos" -o $ID = "rocky" ] ;then 
        rpm -Uvh  $URL/zabbix/${ZABBIX_VER}/rhel/${VERSION_ID}/x86_64/zabbix-release-${ZABBIX_VER}-1.el${VERSION_ID}.noarch.rpm
        if [ $? -eq 0 ];then
	        color "YUM仓库准备完成" 0
        else
            color "YUM仓库配置失败,退出" 1
		    exit
	    fi
	    sed -i "s#http://repo.zabbix.com#$URL#" /etc/yum.repos.d/zabbix.repo
	    if [ ${VERSION_ID} == "8" ];then 
		    yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent2 zabbix-get langpacks-zh_CN
		else 
		    yum -y install zabbix-server-mysql zabbix-agent2  zabbix-get
			yum -y install centos-release-scl
			rpm -q yum-utils  || yum -y install yum-utils
			yum-config-manager --enable zabbix-frontend
			yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
		fi
    else 
	   	wget $URL/zabbix/${ZABBIX_VER}/ubuntu/pool/main/z/zabbix-release/zabbix-release_${ZABBIX_VER}-1+${UBUNTU_CODENAME}_all.deb
	    if [ $? -eq 0 ];then
           	color "APT仓库准备完成" 0
	    else
           	color "APT仓库配置失败,退出" 1
            exit
        fi
	   	dpkg -i zabbix-release_${ZABBIX_VER}-1+${UBUNTU_CODENAME}_all.deb
	   	sed -i "s#http://repo.zabbix.com#$URL#"   /etc/apt/sources.list.d/zabbix.list
	    apt update
        apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent2 zabbix-get language-pack-zh-hans
    fi
}
config_mysql_zabbix () {
	if [ -f $FONT ] ;then 
	    mv /usr/share/zabbix/assets/fonts/graphfont.ttf{,.bak}
		cp  $FONT /usr/share/zabbix/assets/fonts/graphfont.ttf
	else
		color "缺少字体文件!" 1
	fi
	if [ $MYSQL_HOST = "localhost" ];then
		zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p$MYSQL_ZABBIX_PASS -h$MYSQL_HOST zabbix
	fi
	sed -i -e "/.*DBPassword=.*/c DBPassword=$MYSQL_ZABBIX_PASS" -e "/.*DBHost=.*/c DBHost=$MYSQL_HOST" /etc/zabbix/zabbix_server.conf
	if [ $ID = "centos" -o $ID = "rocky" ];then
	    if [ ${VERSION_ID} == "8" ];then 	        
            sed -i -e "/.*date.timezone.*/c php_value[date.timezone] = Asia/Shanghai" -e "/.*upload_max_filesize.*/c php_value[upload_max_filesize] = 20M" /etc/php-fpm.d/zabbix.conf
		    systemctl enable --now zabbix-server zabbix-agent2 httpd php-fpm
		else
		    sed -i "/.*date.timezone.*/c php_value[date.timezone] = Asia/Shanghai" /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
		    systemctl restart zabbix-server zabbix-agent2 httpd rh-php72-php-fpm
		    systemctl enable zabbix-server zabbix-agent2 httpd rh-php72-php-fpm
		fi
	else
	    sed -i "/date.timezone/c php_value date.timezone Asia/Shanghai" /etc/apache2/conf-available/zabbix.conf		
		chown -R www-data.www-data /usr/share/zabbix/
		systemctl enable  zabbix-server zabbix-agent2 apache2
        systemctl restart  zabbix-server zabbix-agent2 apache2
    fi
    if [ $?  -eq 0 ];then  
        echo 
        color "ZABBIX-${ZABBIX_VER}安装完成!" 0
        echo "-------------------------------------------------------------------"
        ${GREEN}"请访问: http://$ZABBIX_IP/zabbix"${END}
    else
        color "ZABBIX-${ZABBIX_VER}安装失败!" 1
        exit
    fi
}

install_mysql
install_zabbix
config_mysql_zabbix

执行脚本

bash install_zabbix_server5.0.sh

安装完毕后域名解析进行访问www.meng.org/zabbix

image-20230529143226188.png

image-20230529143249012.png

连接数据库并输入密码(0表示默认端口)

image-20230529143317724.png

name可不写,写上是个描述字样

image-20230529143503933.png

输入默认账号和密码

image-20230529143544688.png

左下角User settings修改成中文字体

image-20230529143725235.png

字体放在/usr/share/zabbix/assets/fonts/目录下,可以更换字体。

安装zabbix agent

Zabbix Agent 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端, zabbix server将数据存储到数据库中,zabbix web 访问数据库在前端进行展现和绘图.
安装Zabbix代理有三种方式
包安装 二进制安装 编译安装
包安装

1、zabbix agent官方参考文档

Zabbix5.0 https://www.zabbix.com/documentation/5.0/zh/manual/installation/install_from_pac kages https://www.zabbix.com/documentation/5.0/zh/manual/installation/install_from_pac kages/rhel_centos https://www.zabbix.com/documentation/5.0/zh/manual/installation/install_from_pac kages/debian_ubuntu

2、选择zabbix服务器的平台

image-20230529140928337.png

3、执行命令

image-20230529140955029.png

zabbix agent安装过程可使用脚本安装

[root@ubuntu2004 ~]#cat install_zabbix_agent2_5.0.sh 
#!/bin/bash
ZABBIX_SERVER=zabbix.meng.org
ZABBIX_VER=5.0
URL="https://mirror.tuna.tsinghua.edu.cn/zabbix"

. /etc/os-release


color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $2 = "failure" -o $2 = "1"  ] ;then 
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo 
}

install_zabbix_agent2() {
    if [ $ID = "centos" -o $ID = "rocky" ];then
	    VERSION_ID=`echo $VERSION_ID|awk -F. '{print $1}'` 
        rpm -Uvh $URL/zabbix/${ZABBIX_VER}/rhel/${VERSION_ID}/x86_64/zabbix-release-${ZABBIX_VER}-1.el${VERSION_ID}.noarch.rpm
        if [ $? -eq 0 ];then
            color "YUM仓库准备完成" 0
        else
            color "YUM仓库配置失败,退出" 1
            exit
        fi
        sed -i "s#http://repo.zabbix.com#$URL#" /etc/yum.repos.d/zabbix.repo
        yum -y install zabbix-agent2
    else 
        wget $URL/zabbix/${ZABBIX_VER}/ubuntu/pool/main/z/zabbix-release/zabbix-release_${ZABBIX_VER}-1+${UBUNTU_CODENAME}_all.deb
        if [ $? -eq 0 ];then
            color "APT仓库准备完成" 0
        else
            color "APT仓库配置失败,退出" 1
            exit
        fi
        dpkg -i zabbix-release_${ZABBIX_VER}-1+${UBUNTU_CODENAME}_all.deb
        sed -i "s#http://repo.zabbix.com#$URL#"   /etc/apt/sources.list.d/zabbix.list
        apt update
        apt -y install zabbix-agent2
    fi
}

config_zabbix_agent2 (){ 
    sed -i -e "/^Server=127.0.0.1/c Server=$ZABBIX_SERVER"  -e "/^Hostname=Zabbix server/c Hostname=`hostname -I`"  /etc/zabbix/zabbix_agent2.conf
}

start_zabbix_agent2 () {
    systemctl enable zabbix-agent2.service
    systemctl restart zabbix-agent2.service
    systemctl is-active zabbix-agent2.service
    if [ $?  -eq 0 ];then  
        echo "-------------------------------------------------------------------"
        color "Zabbix Agent 安装完成!" 0
    else
        color "Zabbix Agent 安装失败" 1
        exit
    fi
}

install_zabbix_agent2
config_zabbix_agent2
start_zabbix_agent2

zabbix server和zabbix agent的端口号

10051是zabbix服务器端口号      10050是zabbxi客户端端口号

zabbix server开启很多进程

systemctl status zabbix-server.service
可看到zabbix关于报警的进程
可看到zabbix关于发现的进程
可看到zabbix关于同步的进程
可看到zabbix拉取监控项的进程

pstree -p 也可查看进程
其web界面打开不一定代表zabbix的服务启动
其web界面是nginx(apache)+php+mysql提供的,关闭zabbix server服务不影响web界面的打开
停掉zabbix 服务器,web界面如下显示

image-20230529150452783.png

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  SzVG4h2uFmuP   2023年12月06日   20   0   0 zabbix
  SzVG4h2uFmuP   2023年12月06日   26   0   0 监控zabbix
  SzVG4h2uFmuP   2023年12月12日   29   0   0 zabbix
  SzVG4h2uFmuP   2023年12月09日   42   0   0 zabbix