1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
其实相对 zabbix 来说,直接按照官网 yum 安装还是要方便点,我这里已经有 lnmp 的环境了,就想自己编译安装试下。 官网yum安装中文文档:https://www.zabbix.com/documentation/4.0/zh/manual/installation/install_from_packages/rhel_centos 官网源码安装中文文档:https://www.zabbix.com/documentation/4.0/zh/manual/installation/install 环境说明: 此处环境都为 (centos6系列),7系列一样的操作方式。当前安装机器已有 lnmp 网站环境。安装 zabbix-4.0.6 版本。 zabbix 各版本下载地址:https://sourceforge.net/p/zabbix/activity/?page=0&limit=100#5cb76912f0d3475bbf780be2 zabbix-4.4.6 版本下载地址:https://sourceforge.net/p/zabbix/activity/?page=0&limit=100#5e4fe661f0d3473447c2db97 https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX Latest Stable/4.4.6/zabbix-4.4.6.tar.gz |
具体步骤
1.下载并解压软件包并安装依赖包(此处如果不安装依赖包,会报错)
1 2 3 4 |
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX Latest Stable/4.4.6/zabbix-4.4.6.tar.gz tar xvzf zabbix-4.4.6.tar.gz yum install libxml2-devel net-snmp-devel libevent-devel curl-devel pcre* |
2. 创建用户
1 2 |
groupadd zabbix useradd -g zabbix zabbix |
3. 配置源代码(说明:–with-mysql,指定 mysql_config 的路径;可以通过 find / -name “mysql_config” 命令查找)
1 2 3 4 5 |
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --enable-server:安装zabbix服务端 --enable-agent :安装zabbix客户端 --enable-proxy :安装zabbix分布式采集端 |
4.安装
1 |
make install |
5. copy命令到系统命令存放处(方便调用)
1 2 |
cp /usr/local/zabbix/sbin/* /usr/sbin/ cp /usr/local/zabbix/bin/* /usr/bin/ |
6. 导入数据库(首先需要先创建数据库)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all on zabbix.* to zabbix@localhost identified by '123456'; mysql> flush privileges; #pwd /root/zabbix-4.0.6/database/mysql #ls data.sql images.sql Makefile Makefile.am Makefile.in schema.sql # mysql -u zabbix -p123456 -h localhost zabbix < schema.sql # mysql -u zabbix -p123456 -h localhost zabbix < images.sql # mysql -u zabbix -p123456 -h localhost zabbix < data.sql #注意如果数据库是MGR集群的话,对于没有主键的表要加主键,否则导入会出错 |
7. 编辑配置文件
1 2 3 4 5 6 7 8 9 10 11 12 |
vim /usr/local/zabbix/etc/zabbix_server.conf LogFile=/usr/local/zabbix/log/zabbix_server.log //日志文件存放的路径 PidFile=/var/run/zabbix_server.pid //pid文件存放的路径 最好放这里777 DBHost=localhost //数据库服务器地址 DBName=zabbix //数据库名字 DBUser=zabbix //连接数据库的用户名 DBPassword=123456 //连接数据库用户的密码 DBSocket=/var/lib/mysql/mysql.sock //指定连接mysql的socket,mysql配置的client sock文件路径 DBPort=3306 //数据库端口 Timeout=4 //超时时间 LogSlowQueries=3000 //慢查询记录的时间 |
8. 启动zabbix_server (需要将安装目录权限设置为zabbix,因为配置文件中定义的zabbix用户启动,并指定的sock文件存放这个目录所以需要设置为指定的用户的权限)
1 2 3 4 5 6 7 8 9 10 |
mkdir /usr/local/zabbix/log chown zabbix.zabbix /usr/local/zabbix/log chown zabbix.zabbix /usr/local/zabbix/ /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf # netstat -nlutp |grep zabbix_server tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 17003/zabbix_server # kill zabbix服务 ps -ef | grep zabbix | grep -v grep | awk '{print $2}' | xargs kill -9 |
启动时错误:
解决办法 看这里
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
解决办法: 字面意思就是打不到共享库文件libmysqlclient.so.20. 先查找一下本地有没有这个文件: [root@localhost mysql]# find / -name 'libmysqlclient*' /root/ruanjian/mysql-5.7.28/packaging/deb-in/libmysqlclient-dev.install.in /root/ruanjian/mysql-5.7.28/packaging/deb-in/libmysqlclient-dev.lintian-overrides.in /root/ruanjian/mysql-5.7.28/packaging/deb-in/libmysqlclient20-dbgsym.install.in /root/ruanjian/mysql-5.7.28/packaging/deb-in/libmysqlclient20.install.in /root/ruanjian/mysql-5.7.28/packaging/deb-in/libmysqlclient20.lintian-overrides.in /usr/lib64/mysql/libmysqlclient.so.18 /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/local/lib/libmysqlclient.so.20 /usr/local/mysql/mysql-5.7.28/libmysql/libmysqlclient.so.20.3.15 /usr/local/mysql/mysql-5.7.28/libmysql/libmysqlclient.so.20 /usr/local/mysql/mysql-5.7.28/libmysql/libmysqlclient.so /usr/local/mysql/mysql-5.7.28/packaging/deb-in/libmysqlclient-dev.install.in /usr/local/mysql/mysql-5.7.28/packaging/deb-in/libmysqlclient-dev.lintian-overrides.in /usr/local/mysql/mysql-5.7.28/packaging/deb-in/libmysqlclient20-dbgsym.install.in /usr/local/mysql/mysql-5.7.28/packaging/deb-in/libmysqlclient20.install.in /usr/local/mysql/mysql-5.7.28/packaging/deb-in/libmysqlclient20.lintian-overrides.in /usr/local/mysql/mysql-5.7.28/archive_output_directory/libmysqlclient.a /usr/local/mysql/lib/libmysqlclient.a /usr/local/mysql/lib/libmysqlclient.so.20.3.15 /usr/local/mysql/lib/libmysqlclient.so.20 /usr/local/mysql/lib/libmysqlclient.so 在/usr/loca/mysql/lib下面有这个文件,解决方法是先建立一个软链接到/usr/local/lib ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/local/lib/libmysqlclient.so.20 接着在/etc/ld.so.cnf中加入/usr/loca/lib这一行 [root@localhost mysql]# vim /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/local/lib 执行ldconfig -v更新下配置就可以了 [root@localhost mysql]# /sbin/ldconfig -v |
解决后启动
1 |
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf |
设置启动脚本
1 |
vim /usr/lib/systemd/system/zabbix_server.service |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[Unit] Description=Zabbix Server After=syslog.target After=network.target [Service] Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf" EnvironmentFile=-/etc/sysconfig/zabbix-server User=zabbix Group=zabbix Type=forking Restart=on-failure PIDFile=/tmp/zabbix_server.pid KillMode=control-group ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s TimeoutSec=0 [Install] WantedBy=multi-user.target |
更新配置
1 2 |
systemctl daemon-reload systemctl restart zabbix_server |
设置开机启动
1 |
systemctl enable zabbix_server.service |
安装php + nginx (配置zabbix web端界面)
1.安装php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
1.下载php源码,解压编译安装 wget https://www.php.net/distributions/php-7.2.31.tar.gz tar zxvf php-7.2.31.tar.gz yum install libpng libpng-devel libjpeg-devel freetype-devel cd php-7.2.31 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-zlib-dir=/usr/local/zlib --with-mcrypt=/usr/local/libmcrypt --with-libxml-dir=/usr/local/libxml2/ --with-iconv-dir=/usr/local/libiconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring=all --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --enable-ctype --enable-shared --with-gd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd 没有出错的话你会看到 Thank you for using PHP #相关依赖缺失错误参考https://www.cnblogs.com/mityaya/p/4436525.html 注意:有3个插件7.0版本以上已经失效,可能会报无效插件之类不用管 |
make && make install
安装完成后来修改配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
1.修改/usr/local/php/etc/php-fpm.conf.default 为 php-fpm.conf cd /usr/local/php/etc/ mv php-fpm.conf.default php-fpm.conf 2.创建配置文件(进入源码包复制) php.ini-development (开发环境用) php.ini-production(生产环境用) cp php.ini-development /usr/local/php/etc/php.ini cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf cp sapi/fpm/php-fpm /usr/local/bin 3.修改php.ini文件 cgi.fix_pathinfo=0 修改为 cgi.fix_pathinfo=1 4.在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。 vim /usr/local/etc/php-fpm.d/www.conf user = www-data group = www-data 4.测试php-fpm /usr/local/php/sbin/php-fpm -t /usr/local/php/etc/php-fpm.conf test is successful ok 5.启动php-fpm /usr/local/bin/php-fpm |
设置php-fpm启动脚本
1 |
vim /usr/lib/systemd/system/php-fpm.service |
1 2 3 4 5 6 7 8 9 10 11 12 |
[Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=simple PIDFile=/usr/local/php/var/run/php-fpm.pid ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID [Install] WantedBy=multi-user.target |
重载配置
1 2 |
systemctl daemon-reload systemctl restart php-fpm |
设置开机启动
1 |
systemctl enable php-fpm.service |
配置nginx
nginx安装 请看这里
1.开始配置web界面(先将解压目录里面的 frontends/php 目录下的所有文件 copy 到指定的 网站目录)
1 |
cp -rf /root/zabbix-4.4.6/frontends/php/* /www/www.test.com/ |
2.改为网站 网站运行的用户(根据php中配置的用户来www-data www)
1 |
chown -R www:www /www/www.test.com |
3.编辑nginx配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
server { listen 80; server_name www.zabbix.com; autoindex off; access_log /usr/local/nginx/logs/zabbix.log; index index.html index.php index.html; root /www/www.test.com/; location ~ \.php$ { fastcgi_split_path_info ^(.+.php)(.*)$; include fastcgi.conf; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param PATH_INFO $fastcgi_path_info; } location ~ /status { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } |
配置完成后访问域名登陆
1 2 |
默认账号密码 账号:Admin 密码:zabbix |
启动客户端
1 2 |
启动zabbix_agent客户端,让他先采集到自己的信息 /usr/local/zabbix/sbin/zabbix_agentd[回车启动客户端] |
添加第二台服务器监控
1 2 3 4 5 6 |
将原来的安装包,拷贝到其他机器(还是先前的安装包). 只安装客户端 cd /root/ruanjian/zabbix-4.4.6 ./configure --prefix=/usr/local/zabbix_agent --enable-agent make && make install |
创建用户
1 2 |
groupadd zabbix useradd -g zabbix zabbix |
客户端配置文件
1 |
vim /usr/local/zabbix_agent/etc/zabbix_agentd.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
修改: #pid目录(可选 这里最好放tmp吧其他目录没权限) PidFile=/tmp/zabbix_agentd.pid #日志目录(可选) LogFile=/usr/local/zabbix_agent/log/zabbix_agentd.log #服务器端地址 Server=服务器端地址 192.168.66.20 #修改默认监听端口(你也可以保持默认) ListenPort=xxxx #指定SeverActive ServerActive=同样是指向服务器端ip地址 #指定Hostname,你可以写个本机地址,也可以是解析到本机的域名 Hostname=本机ip/或者是解析到本机的域名 保存 退出 |
8. 启动zabbix_agent (需要将安装目录权限设置为zabbix,因为配置文件中定义的zabbix用户启动,并指定的sock文件存放这个目录所以需要设置为指定的用户的权限)
1 2 3 4 |
mkdir /usr/local/zabbix_agent/log chown zabbix.zabbix /usr/local/zabbix_agent/log chown zabbix.zabbix /usr/local/zabbix_agent/ |
启动
1 2 3 4 |
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf [root@xjjh-test1 zabbix_agent]# netstat -nlutp |grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 18025/zabbix_agentd |
设置客户端启动脚本
1 |
vim /usr/lib/systemd/system/zabbix_agent.service |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[Unit] Description=Zabbix Agent After=syslog.target After=network.target [Service] Environment="CONFFILE=/usr/local/zabbix_agent/etc/zabbix_agentd.conf" EnvironmentFile=-/etc/sysconfig/zabbix_agentd Type=forking Restart=on-failure PIDFile=/tmp/zabbix_agentd.pid KillMode=control-group ExecStart=/usr/local/zabbix_agent/sbin/zabbix_agentd -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s TimeoutSec=0 [Install] WantedBy=multi-user.target |
更新配置(启动)
1 2 3 |
systemctl daemon-reload systemctl start zabbix_agent systemctl restart zabbix_agent |
设置开机启动
1 |
systemctl enable zabbix_agent |
可能会遇到的启动错误:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Job for zabbix_agent.service failed because a configured resource limit was exceeded. See "systemctl status zabbix_agent.service" and "journalctl -xe" for details 等等报错 详细的可以通过systemctl status zabbix_agentd 或者查看zabbix_agent.log 查看 不外乎有以下几点原因 1.kernel.sem参数设置过小,查看设置 cat /proc/sys/kernel/sem 250 32000 100 128 然后 vim /etc/sysctl.conf 添加一行 kernel.sem=500 64000 64 256 sysctl -p 使之生效 重启zabbix_agentd 发现已经起来了。 kernel.sem这个可以根据需求在适当的调大一些 |
接下来去web端界面配置监听客户端机器(可以一台可以多台,自己玩)
1 2 3 4 5 6 7 8 |
点击导航栏>配置->主机->创建主机 1.主机名称 自己定义(zabbix主服务器) 主机名称必须是一个英文字体 2.可见名称:zabbix服务器 #这里的可见名称就是在监控页面上给我们显示的名称 3.群组:将zabbix servers加入进来(这里的群组也可以自己在下面创建,只是分组没什么其他含义) 5.agent代理程序的接口:ip:也就是我们主机ip地址,端口是10050 然后提交保存即可 |
然后为这台主机配置模板(就是你要监控哪些数据,你需要选择一些监控模板)
1 2 3 4 5 6 7 |
点击模板 > 选择 1.选择你要监控的模块模板 例如:apache服务啊 ping 服务啊 os linux 选择之后点添加,一定要点添加 |
添加完模板后,可以根据自己情况添加资产管理,或者环境变量(宏)
1 2 3 |
主机资产记录:资产清单,如果你有几千台服务器,你监控的这台服务器是干嘛的,你需要详细记录,否则是记不住的(一般公司会有专人记录),所以就需要资产清单,你的服务器就是你的资产,清单列明他们都做哪些用处. 宏:是设置一些变量的,给当前监控主机使用的。可以理解为环境变量 |
添加完后点,更新,接下来看面板状态都有哪些含义
面板状态
1 2 3 4 5 6 7 8 9 |
面板状态: 应用集:相当于在这台服务器当中我设置了很多的监控项目,有cpu,有内存,有磁盘。这些都要归到一个组里 归为一个应用集合,我可以继续添加更多监控项目,但都属于这个应用集。 触发器:如果cpu到100%的时候,要怎么办 图形:将监控的数据,以图表的形式展现出来 自动发现:自动发现主机规则,按这个规则发现主机后,自动加入到监控集中来 web检测: 模拟一个用户通过浏览器访问服务器,模拟客户端访问 可用性:哪些组件可用 |
然后我们返回到后台主界面,发现已经有两台机器在监控中了
关于图表字体问题 ,请看这篇最后的解决办法 传送门
- 本文固定链接: https://www.yoyoask.com/?p=3396
- 转载请注明: shooter 于 SHOOTER 发表