zabbix_server.conf常用配置参数:
参数 | 作用 |
---|---|
LogFile | 设置服务端日志文件存放路径 |
ListenIP | 设置服务端监听IP |
ListenPort | 设置服务端监听的端口号 |
PidFile | 设置服务端进程号文件存放路径 |
DBHost | 指定zabbix的数据库服务器IP |
DBName | 指定zabbix使用的数据库库名 |
DBUser | 指定zabbix数据库登录用户 |
DBPassword | 指定zabbix数据库登录密码 |
DBPort | 指定zabbix数据库端口号 |
User | 设置zabbix以什么用户身份运行 |
AlertScriptsPath | 设置告警脚本存放路径 |
ExternalScripts | 外部脚本存放路径 |
zabbix_agentd.conf常用配置参数:
参数 | 作用
Server | 指定zabbix服务器的IP或域名
ServerActive | 指定zabbix服务器的IP或域名
Hostname | 只当本机的主机名1,此项必须与web界面配置项一致
UnsafeUserParameters | 是否用自定义监控i项,可选值为{1 | 0}
UserParameter | 指定自定义监控脚本呢参数
LogFile | 设置客户端日志文件存放路径
因为zabbix使用php语言开发的,所以必须先部署lamp架构,使其能够支持运行php网页。
这里我们先安装lamp架构,这里只写步骤,若想知道步骤代表的意思请看之前的文章。
[root@node4 ~]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
[root@node4 ]#curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
[root@node4 ]#yum -y install epel-release wget make openssl openssl-devel pcre pcre-devel gcc gcc-c++ zlib-devel expat-devel zlib expat
[root@node4 ]#yum groups mark install 'Development Tools' -y
[root@node4 src]#wget -P /usr/src/ https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.7.0.tar.gz
[root@node4 src]#wget -P /usr/src/ https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@node4 src]#wget -P /usr/src/ https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.49.tar.gz
[root@node4 src]#useradd -r -M -s /sbin/nologin apache
[root@node4 src]#tar xf apr-1.7.0.tar.gz
[root@node4 src]#tar xf apr-util-1.6.1.tar.gz
[root@node4 src]#tar xf httpd-2.4.49.tar.gz
[root@node4 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@node4 apr-1.7.0]# make && make install
[root@node4 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@node4 apr-util-1.6.1]# make && make install
[root@node4 httpd-2.4.49]#
./configure --prefix=/usr/local/apache \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@node4 httpd-2.4.49]# make && make install
[root@node4 ~]# echo 'export PATH=/sur/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
[root@node4 ~]# source /etc/profile.d/httpd.sh
[root@node4 ~]# ln -s /usr/local/apache/include/ /usr/include/httpd
[root@node4 ~]# vim /etc/man_db.conf
MANDATORY_MANPATH /usr/local/share/man
MANDATORY_MANPATH /usr/local/apache/man
[root@node4 ~]# vim /usr/local/apache/conf/httpd.conf
ServerName www.example.com:80
[root@node4 system]# cp /usr/lib/systemd/system/sshd.service httpd.service
[root@node4 ~]# vim /usr/lib/systemd/system/httpd.service
[Unit]
Description=httpd server daemon
Documentation=man:httpd(8)
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/apache/bin/apachectl start
ExecStop=/usr/local/apache/bin/apachectl stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@node4 ~]# systemctl daemon-reload
[root@node4 ~]# systemctl enable --now httpd.service
MySQL官网
[root@node4 src]# tar xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@node4 ]#yum -y install gcc gcc-c++ make zlib zlib-devel pcre pcre-devel openssl openssl-devel ncurses-compat-libs perl ncurses-devel cmake
[root@node4 src]# useradd -r -M -s /sbin/nologin mysql
[root@node4 local]# ln -s mysql-5.7.34-linux-glibc2.12-x86_64/ mysql
[root@node4 local]# chown -R mysql.mysql mysql
[root@node4 local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@node4 local]# source /etc/profile.d/mysql.sh
[root@node4 local]# vim /etc/man_db.conf
MANDATORY_MANPATH /usr/local/mysql/man
[root@node4 local]# ln -s /usr/local/mysql/include/ /usr/include/mysql
[root@node4 ~]# vim /etc/ld.so.conf.d/mysql.conf
[root@node4 ~]# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/bin
[root@node4 ~]# ldconfig
[root@node4 ~]# mkdir -p /opt/data
[root@node4 ~]# chown -R mysql.mysql /opt/data/
[root@node4 ~]# mysqld --initialize--insecure --user mysql --datadir /opt/data/
[root@node4 ~]# cat > /etc/my.cnf < [mysqld]
> basedir = /usr/local/mysql
> datadir = /opt/data
> socket = /tmp/mysql.sock
> port = 3306
> pid-file = /opt/data/mysql.pid
> user = mysql
> skip-name-resolve
> EOF
[root@node4 ~]# vim /usr/local/mysql/support-files/mysql.server
basedir=/usr/local/mysql
datadir=/opt/data
[root@node4 ~]# cp /usr/lib/systemd/system/httpd.service /usr/lib/systemd/system/mysqld.service
[root@node4 ~]# vim /usr/lib/systemd/system/mysqld.service
[root@node4 ~]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysql server daemon
Documentation=man:httpd(1)
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@node4 data]# systemctl daemon-reload
[root@node4 data]# systemctl enable --now mysqld
[root@node4 data]# mysql -uroot -e "set password=password('123');"
官网下载php源码包
[root@node4 ~]# yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd libsqlite3x-devel libzip-devel http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-2.el8.x86_64.rpm
[root@node4 src]# tar xf php-7.4.24.tar.xz -C /usr/local/
[root@node4 local]# cd php-7.4.24/
[root@node4 php-7.4.24]# ./configure --prefix=/usr/local/php7 --with-config-file-path=/etc --enable-fpm --disable-debug --disable-rpath --enable-shared --enable-soap --with-openssl --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --enable-exif --enable-ftp --enable-gd --with-jpeg --with-zlib-dir --with-freetype --with-gettext --enable-mbstring --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-readline --enable-shmop --enable-simplexml --enable-sockets --with-zip --enable-mysqlnd-compression-support --with-pear --enable-pcntl --enable-posix
[root@node4 php-7.4.24]# echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php.sh
[root@node4 php-7.4.24]# source /etc/profile.d/php.sh
[root@node4 php-7.4.24]# cp php.ini-production /etc/php.ini
cp:是否覆盖'/etc/php.ini'? y
[root@node4 php-7.4.24]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@node4 php-7.4.24]# chmod +x /etc/init.d/php-fpm
[root@node4 etc]# cp php-fpm.conf.default php-fpm.conf
[root@node4 etc]# pwd
/usr/local/php7/etc
[root@node4 etc]# cd php-fpm.d/
[root@node4 php-fpm.d]# cp www.conf.default www.conf
[root@node4 php-fpm.d]# pwd
/usr/local/php7/etc/php-fpm.d
[root@node4 php-fpm.d]# cp /usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/php-fpm.service
[root@node4 php-fpm.d]# vim /usr/lib/systemd/system/php-fpm.service
[root@node4 php-fpm.d]# cat /usr/lib/systemd/system/php-fpm.service
[Unit]
Description=php server daemon
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/php-fpm start
ExecStop= /etc/init.d/php-fpm stop
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@node4 php-fpm.d]# systemctl daemon-reload
[root@node4 php-fpm.d]# systemctl enable --now php-fpm.service
[root@node4 ~]# vim /usr/local/apache/conf/httpd.conf
120 LoadModule proxy_module modules/mod_proxy.so
121 #LoadModule proxy_connect_module modules/mod_proxy_connect.so
122 #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
123 #LoadModule proxy_http_module modules/mod_proxy_http.so
124 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
[root@node4 htdocs]# mkdir PHP
[root@node4 htdocs]# pwd
/usr/local/apache/htdocs
[root@node4 htdocs]# cd PHP/
[root@node4 PHP]# vim index.php
[root@node4 PHP]# cat index.php
[root@node4 PHP]# chown -R apache.apache /usr/local/apache/htdocs/
[root@node4 conf]# vim httpd.conf
[root@node4 conf]# pwd
/usr/local/apache/conf
DocumentRoot "/usr/local/apache/htdocs/PHP"
ServerName www.PHP.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/PHP/$1
Options none
AllowOverride none
Require all granted
399 AddType application/x-httpd-php .php
400 AddType application/x-httpd-php-source .phps
261 DirectoryIndex index.html index.php
[root@node4 conf]# systemctl restart httpd.service
源码包到官网下载
[root@node4 local]# tar xf zabbix-5.4.4.tar.gz -C /usr/local/
[root@node4 local]# yum -y install net-snmp-devel libevent-devel
[root@node4 local]# useradd -r -M -s /sbin/nologin zabbix
[root@node4 ~]# mysql -uroot -p123
mysql> create database zabbix character set utf8 collate utf8_bin; //创建zabbix数据库并设置字符集
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123!'; //授权数据库用户并设置用户密码
mysql> flush privileges; //刷新授权
[root@node4 mysql]# pwd
/usr/local/zabbix-5.4.4/database/mysql
[root@node4 mysql]# mysql -uzabbix -pzabbix123! zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@node4 mysql]# mysql -uzabbix -pzabbix123! zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@node4 mysql]# mysql -uzabbix -pzabbix123! zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@node4 zabbix-5.4.4]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@node4 zabbix-5.4.4]# make install
[root@node4 etc]# pwd
/usr/local/etc
[root@node4 etc]# vim zabbix_server.conf
123 DBPassword=zabbix123! //设置zabbix数据库连接密码
如果遇到启动zabbix服务报错
zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
意思是:加载共享库时出错:libmysqlclient.so.20:无法打开共享对象文件:没有此类文件或目录
所以解决的方法是:
find / -name "libmysqlclient.so.20"
他会告诉你libmysqlclient.so.20文件的地方
在下面的文件里面添加/usr/local/mysql/lib
[root@node4 etc]# vim /etc/ld.so.conf
[root@node4 etc]# ldconfig //重现加载配置文件
[root@node4 etc]# zabbix_server
[root@node4 ~]# zabbix_agentd
[root@node4 etc]# ss -anlt
最后出现10051、10050端口号就成功了
修改/etc/php.ini的配置并重启php-fpm
可以使用此方法:
[root@node4 ~]# vim /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
也可以使用下面的方法:
[root@node4 ~]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@node4 ~]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@node4 ~]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@node4 ~]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@node4 ~]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
[root@node4 htdocs]# mkdir zabbix
[root@node4 htdocs]# pwd
/usr/local/apache/htdocs
[root@node4 zabbix-5.4.4]# cp -r /usr/local/zabbix-5.4.4/ui/* /usr/local/apache/htdocs/zabbix/
[root@node4 zabbix-5.4.4]# vim /usr/local/apache/conf/httpd.conf
[root@node4 zabbix-5.4.4]# tail -11 /usr/local/apache/conf/httpd.conf
DocumentRoot "/usr/local/apache/htdocs/zabbix"
ServerName www.zabbix.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
Options none
AllowOverride none
Require all granted
让zabbix有权限生成配置文件zabbix.conf.php
[root@node4 apache]# chmod 777 /usr/local/apache/htdocs/zabbix/conf
启动php-fpm报错
ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[root@node4 ~]# pkill php-fpm
[root@node4 ~]# systemctl restart php-fpm.service
就可以启动成功了
下载源码包这里我们之前有就不下载了
先创建一个zabbix用户
[root@node3 local]# useradd -r -M -s /sbin/nologin zabbix
将源码包解压到/usr/local目录下
[root@node3 src]# tar xf zabbix-5.4.4.tar.gz -C /usr/local/
// 下载zabbix所需要的依赖包
[root@node3 local]# yum -y install make gcc gcc-c++ openssl openssl-devel pcre pcre-devel
// 进入zabbix安装目录进行编译安装
[root@node3 zabbix-5.4.4]# ./configure --enable-agent
[root@node3 zabbix-5.4.4]# make install
// 修改客户端的配置文件
[root@node3 etc]# pwd
/usr/local/etc
[root@node3 etc]# vim zabbix_agentd.conf
113 Server=192.168.182.140 //这里的IP地址为服务端的IP地址
154 ServerActive=192.168.182.140
165 Hostname=uHOXyzzjkf
这里的Hostname需要唯一,所以这里我们随机生成一组字母,使用下面的命令。
tr -dc A-Za-z < /dev/urandom | head -c 10 | xargs
为了方便我们翻译成中文,先点击配置,然后找到主机点击右上角的创建主机
这里的主机名就是我们在zabbix客户端的配置文件里面写的那个名字
这里的团体是就是英文就是groups组的意思。就是创建一个组的名字
接口这里就是使用什么方式去监控,这里的代理就是我们所安装的agent、网络管理协议就是SNMP协议,JMX是用来监控Java里的jvm。
IPMI是传感器是用来监控硬件的。
这里的知识产权是IP,域名系统是DNS,若有域名那就写域名,若没有,就使用IP地址连接。这里的IP地址填客户端的IP。这些都做好之后就点击添加。
为了方便管理我们将hostname的名字修改一下。点击刚创建的那个主机名。
这里的主机名是我们的名字,但是下面的可见名称就是我们创建成功之后显示的主机名。但是我们连接时还是使用主机名称进行连接。这里的可见名称根据实际需要进行修改。这里我们就改为web01.最后点击更新。
改完之后发现名称改为了web01。
我们对比可以发现web01的ltems等后面都没有数字,而系统自带的有数字,这是因为我们创建的服务没有监控对象。
下面我们使用模板为其添加一个监控对象。点击我们web01,找到里面的templates模板。
点击链接新模板这一栏里的选择,点击选择之后会出现一个模板的窗口,在里面找到选择,点击选择之后会有一个名为主机组的窗口,然后再里面选择和你操作系统相关的模板,这里我们时Linux系统又因为我们时使用agent来进行监控的所以就选择Linux by zabbix agent,最后点击选择之后再点击更新即可。
更新完成之后就有监控对象了,我们发现这里的ZBX是显示灰色的我们重复刷新几次之后就会变绿了。
如果出现爆红那么就检查以下的几个地方。首先看服务端和客户端的防火墙和selinux是否关闭。再查看服务端的zabbix和agent开启没有,还有客户端的agent是否开启。