Zabbix 5 4 and 3 LTS安装入门教程
目录
站内资源
zabbix server
pre
lnmp 这些是官网官方安装文档,记得一定要看
https://www.zabbix.com/documentation/5.0/zh/manual/installation/install
https://www.zabbix.com/documentation/3.0/manual/installation/install
https://www.zabbix.org/wiki/InstallOnCentOS_RHEL
wget -c https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.13.tar.gz #https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.8/zabbix-3.0.8.tar.gz #wget -c http://tenet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.13/zabbix-2.2.13.tar.gz
#配置php变量
vi /etc/php.ini 如果是php7.3 find / -name php.ini /etc/php/7.3/cli/php.ini /etc/php/7.3/fpm/php.ini date.timezone = Asia/Shanghai post_max_size = 32M max_execution_time = 300 max_input_time = 300 注:更改完之后需要重启nginx和php
#安装zabbix所需的组件
yum -y install net-snmp-devel curl-devel #yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI php-gd php-xml php-bcmath groupadd zabbix && useradd -g zabbix zabbix #if debian10 apt install libmariadb-dev-compat libmariadb-dev libxml2-dev libsnmp-dev snmp libxml++2.6-dev libevent-dev libcurl4-openssl-dev tar xvf zabbix-3.0.8.tar.gz && cd zabbix-3.0.8 #tar xvf zabbix-2.2.13.tar.gz && cd zabbix-2.2.13 #./configure –enable-server –enable-agent –with-mysql –enable-ipv6 –with-net-snmp –with-libcurl –with-libxml2 ##或者默认安装路径 make是不用的 ./configure --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 && make install #2021 5.0 lst 官方 不要忘记了make install #使用Zabbix自带模板监控MySQL时,Zabbix Server编译时需要使用“--with-libxml2”加入“libxml2”库 ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 && make install #如果要配置 Zabbix server 和 Zabbix proxy 的源代码,您可以运行以下内容: ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
添加zabbix服务对应的端口(可以省略,但是官方建议有)
cat >>/etc/services<< EOF zabbix-agent 10050/tcp #Zabbix Agent zabbix-agent 10050/udp #Zabbix Agent zabbix-trapper 10051/tcp #Zabbix Trapper zabbix-trapper 10051/udp #Zabbix Trapper EOF
配置文件
##好像是这个起效果的呢 –sysconfdir=/etc/zabbix 有这个,不用下面的命令了 #vim /usr/local/etc/zabbix_server.conf #cd zabbix-2.0.7 #mkdir /etc/zabbix #cp conf/*.conf /etc/zabbix mkdir /var/log/zabbix ;chown zabbix:zabbix /var/log/zabbix; #zabbix web代码 3.0 mkdir -p /data/www/zabbix; cp -r frontends/php/* /data/www/zabbix #5.0 web 参考 debian lnmp [https://wiki.linuxchina.net/index.php/Lnmp debina lnmp] cp -a ui/* /var/www/html/z.cn 记得要先下面的db 导入 http://z.cn/setup.php #最后跑起来后 要下载配置文件的 有如mediawiki find / -name php.ini /etc/php/7.3/cli/php.ini /etc/php/7.3/fpm/php.ini 修改zabbix连接的数据库的用户名和密码 vi /etc/zabbix/zabbix_server.conf DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix DBPassword='123' DBPort=3306 #如果数据库是用sock文件的方式,这里可以是sock文件的路径 添加数据库Lib文件位置到/etc/ld.so.conf中,并使其生效 echo ‘/usr/local/mysql/lib/mysql/’ >> /etc/ld.so.conf ldconfig 为zabbix的启动、关闭和重启的脚本文件做链接,方便系统可以找得到 给zabbix服务端程序做软链接 我用默认的config 应该是不用的 cd /usr/local/zabbix/bin/ for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done cd /usr/local/zabbix/sbin/ for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done 拷贝zabbix服务端和客户端启动脚本到/etc/init.d目录下. cp misc/init.d/debian/{zabbix_agentd,zabbix_server} /etc/init.d/;chmod o+x /etc/init.d/zabbix_* /etc/init.d/zabbix_server start /etc/init.d/zabbix_server status #这些老的 cd misc/init.d/ cp fedora/core/zabbix_server /etc/init.d/ cp fedora/core/zabbix_agentd /etc/init.d/ chmod +x /etc/init.d/zabbix_agentd chmod +x /etc/init.d/zabbix_server 成功说明 config.status: executing depfiles commands configure: WARNING: unrecognized options: --with-libxml Libraries: -lmariadb -lnetsnmp -lz -lpthread -levent -lcurl -lm -ldl -lresolv -lpcre Configuration file: /usr/local/etc/zabbix_server.conf External scripts: /usr/local/share/zabbix/externalscripts Alert scripts: /usr/local/share/zabbix/alertscripts Modules: /usr/local/lib/modules Enable proxy: no Enable agent: yes Agent details: TLS: no Linker flags: -rdynamic Libraries: -lz -lpthread -lcurl -lm -ldl -lresolv -lpcre Configuration file: /usr/local/etc/zabbix_agentd.conf Modules: /usr/local/lib/modules
3 Create Zabbix database
SQL scripts are provided for creating database schema and inserting the dataset #https://www.zabbix.com/documentation/3.0/manual/appendix/install/db_scripts #https://www.zabbix.com/documentation/2.2/manual/appendix/install/db_scripts mysql>create database zabbix character set utf8 collate utf8_bin;;grant all on zabbix.* to zabbix@localhost identified by '123';flush privileges; 将zabbix源码包中的数据导入到新建的zabbix数据库 ##这个和老的版本有点不同 第一个是zabbix的数据库表结构,要先导入。 . /etc/profile cd ../.. cd zabbix-5.0.13/database/mysql mysql -uroot -p'evan' zabbix< database/mysql/schema.sql mysql -uroot -p'evan' zabbix< database/mysql/images.sql mysql -uroot -p'evan' zabbix< database/mysql/data.sql vi /etc/init.d/zabbix_server # 的可以不改,修改一下变量的值 因为我是默认用 configure # base zabbix dir BASEDIR=/usr/local # binary file ZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server
fping的安装和使用详解
http://rickie622.blog.163.com/blog/static/2123881120121121111720941/ http://netsecurity.51cto.com/art/201101/242200.htm #当然 下载zip包也是可以的 git clone https://github.com/schweikert/fping.git cd fping ./autogen.sh ./configure make -j2 && make install #修改一下配置文件 vim /etc/zabbix_server.conf #vim /usr/local/etc/zabbix_server.conf FpingLocation=/usr/local/sbin/fping
启动zabbix,并且添加开机自启动
service zabbix_server start service zabbix_agentd start #启动服务 chkconfig zabbix_server on chkconfig zabbix_agentd on #开机自启动 在Nginx服务中添加zabbix虚拟主机 #vim /usr/local/nginx/conf/vhosts/monitor.conf 这些都不要,不然没有web安装向导的 #cd zabbix/conf #cp zabbix.conf.php.example zabbix.conf.php ; #chmod 777 zabbix.conf.php iptables -I INPUT -p tcp –dport 80 -j ACCEPT zabbix server is not running Zabbix Server is not running: the information displayed may not be current http://song49.blog.51cto.com/4480450/1200151
web config
Alternatively, you can install it manually: Download the configuration file Save it as "/var/www/za.com/conf/zabbix.conf.php" 用户 Admin 密码zabbix vim /usr/local/etc/zabbix_server.conf #add LogFile=/tmp/zabbix_server.log DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=123456
(4)设置zabbix服务IP和端口,name可以忽略
ps: post_max_size = 16M PHP option “max_execution_time” 30 300 Fail PHP option “max_input_time” 60 300 Fail PHP option “date.timezone” unknown Fai date.timezone = Asia/Shanghai PHP option “always_populate_raw_post_data” must be set to “-1” port 10051 Zabbix frontend is ready! The default user name is Admin, password zabbix.
超级用户密码修改
2.2 用户名第一个字母要大写 也就是Admin 默认的用户名:admin 密码:zabbix 哪里改登录用户和密码呢 use zabbix; select userid,alias,passwd from users; #查看 +--------+------------+----------------------------------+ | userid | alias | passwd | +--------+------------+----------------------------------+ | 1 | Admin | 5fce1b3e34b520afeffb37ce08c7cd66 | #如果为zabbix 3.0 直接这样就行了 update users set passwd=MD5('12345') where userid=1; #zabbix 2.x 重新开个终端,生成一个MD5加密的密码,这里密码设置的是redhat [root@localhost ~]# echo -n 12345678 |openssl md5 #-n就表示不输入回车符,不加-n,否则就不是这个结果了。 (stdin)= 25d55ad283aa400af464c76d713c07ad 接着上面的为admin用户设定一个密码 mysql> update users set passwd='25d55ad283aa400af464c76d713c07ad' where userid = '1'; #或者直接使用update users set passwd=md5(“12345678”) where userid=’1′; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye zabbix登陆账户admin密码修改 http://pvbutler.blog.51cto.com/7662323/1734003 yum install ntp ntpdate -y chkconfig ntpd on /etc/init.d/ntpd start */30 * * * * /usr/sbin/ntpdate pool.ntp.org 在29行这后添加 sed -i ’29a user=mysql’ /etc/my.cnf sed -i ’29a character-set-server=utf8′ /etc/my.cnf sed -i ’29ainnodb_file_per_table=1′ /etc/my.cnf 重启mysqld
防火墙设置
这个要看一下先,尽量用严格些的防火墙设置 #on zabbix-agent iptables -A INPUT -s zabbixserverip -p tcp -m tcp --dport 10050 -m comment --comment "zabbix_server listen " -j ACCEPT #iptables -A INPUT -s zabbixserverip -p tcp -m tcp --dport 10050 -m comment --comment "zabbix_agentd listen " -j ACCEPT #这下面的防火墙rule 不要用 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 10050 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 10051 -j ACCEPT /etc/init.d/iptables restart 中文在右上角的用户里面哦 Starting php_fpm /usr/local/php/bin/php-cgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory failed by default install the daemon binaries (zabbix_server, zabbix_agentd, zabbix_proxy) in /usr/local/sbin and the client binaries (zabbix_get, zabbix_sender) in /usr/local/bin.
4.0 5.2 图像显示字体乱码的解决方法
另外一种思路 不改配置文件 而是把新的字体起和原来一样的名 #NB root@myxps:/var/www/za.com/assets/fonts# mv DejaVuSans.ttf DejaVuSans.ttfbak root@myxps:/var/www/za.com/assets/fonts# ln -s wqy-microhei.ttc DejaVuSans.ttf 1.替换支持中文的字体 #传输字体 #50fbe46d4c5c zabbix/zabbix-web-nginx-pgsql:alpine-5.2-latest docker cp simkai.ttf 50fbe46d4c5c:/usr/share/zabbix/assets/fonts cp /root/STKAITI.TTF /usr/share/zabbix/assets/fonts 2.修改字体配置 php文件 #修改 指定的字体 或者直接把你的家体改成和默认同名,而默认的那个先删除 连重启都不用 反正在docker grep -rn BX_GRAPH_FONT_NAM /usr/share/zabbix/include/defines.inc.php 67:define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name 修改 sed -i 's!DejaVuSans!simkai!' include/defines.inc.php define('ZBX_GRAPH_FONT_NAME', 'simkai'); 5.1 jul 10 2021 cp /home/evan/data/fonts/wqy-microhei.ttc /var/www/za.com/assets/fonts/ vim include/defines.inc.php #zabbixweb
zabbix-get
root@zabbix-server ~]#zabbix_get -s 10.3.10.139 -k "system.hostname" dev-hello-market 不过使用zabbix_get时必须开启客户端被动模式,要求暴露客户端监听端口。
第二 agent
#4.0 #centos7 快速安装和自动配置 2019年 8月23日 星期五 11时45分01秒 CST #国外 rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #国内 https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm 手工直接添加 repo文件 ,如果有时 不小心 像上次删除了 reop文件 一样 ,搞半天 cat <<EOF > /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - \$basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-non-supported] name=Zabbix Official Repository non-supported - \$basearch baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1 EOF curl https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 \ -o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 curl https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX \ -o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX yum install zabbix-agent -y yum install ntp -y timedatectl set-ntp true HOSTNAME=prod-java-02 #config sed -i "s/^Server=127.0.0.1/Server=172.16.1.9/ " /etc/zabbix/zabbix_agentd.conf sed -i "s/^ServerActive=127.0.0.1/ServerActive=172.16.1.9/" /etc/zabbix/zabbix_agentd.conf sed -i "s/^Hostname=Zabbix server/Hostname=test-market/" /etc/zabbix/zabbix_agentd.conf #这个用了HOSTNAME 变量 而上面的要指定hostname sed -i 's/127.0.0.1/23.67.81.95/g' /etc/zabbix/zabbix_agentd.conf sed -i "s/Hostname=Zabbix server/Hostname=${HOSTNAME}/g" /etc/zabbix/zabbix_agentd.conf grep "^\s*[^# \t].*$" /etc/zabbix/zabbix_agentd.conf systemctl enable zabbix-agent.service systemctl restart zabbix-agent 2021 添加配置后 模板选择 templa /operate / of linux by zabbix agent or active 可用性 ZBX变为绿才行 下面是老的信息 和解说 cat /etc/zabbix/zabbix_agentd.conf Hostname=主机名 Server=zabbix server ip LogFile= 可以不改 # failed to accept an incoming connection: connection from 127.0.0.1 ##最好这样3个 如果是server 加上 ,127.0.0.1 Server=10.6.1.181 ServerActive=10.6.1.181 Hostname=zabbix-client-1 #rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm #rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm #http://repo.zabbix.com/zabbix/2.0/rhel/5/x86_64/zabbix-release-2.0-1.el5.noarch.rpm rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
agent on debian
#用系统的源 apt-get install zabbix-agent #config 其实和yum的也一样 只是启动不一样而已 HOSTNAME=wiki sed -i "s/^Server=127.0.0.1/Server=207.148.106.229/ " /etc/zabbix/zabbix_agentd.conf sed -i "s/^ServerActive=127.0.0.1/ServerActive=207.148.106.229/" /etc/zabbix/zabbix_agentd.conf sed -i "s/^Hostname=Zabbix server/Hostname=wiki/" /etc/zabbix/zabbix_agentd.conf grep "^\s*[^# \t].*$" /etc/zabbix/zabbix_agentd.conf service zabbix-agent start zabbix_get -s 138.68.59.0 -k "system.hostname" #用zbx的源 https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+buster_all.deb dpkg -i zabbix-release_stretch_all.deb # apt-get update
国内zabbix源总结
https://www.cnblogs.com/caidingyu/p/11423089.html
https://blog.cactifans.com/2019/01/21/Zabbix%E5%9B%BD%E5%86%85%E6%BA%90%E4%BD%BF%E7%94%A8/
docker zabbix 5.0
zbx dbmysql
https://github.com/evan886/zabbix/tree/main/docker-compose-zabbix/dbmysql
#不能超过os内存 最终解决办法是os内存要超过4G cannot initialize configuration cache: cannot get private shared memory of size 4294967296 for configuration cache: [12] Out of memory - ZBX_CACHESIZE=2096M #- ZBX_CACHESIZE=4096M
我的没有 zabbix web ui 明天搞一下 暴露端口 8888 用于访问页面,10051 用于和 Zabbix-agent 通信;
zbx pgsql
debian10 zabbix5
Debian 10 Buster上安装和配置Zabbix 5.0
Usage
5.0查看 Latest data -->右边 Graph
添加主机要添加 模板 不然 在监控--主机那 图形没东西
https://www.zabbix.com/documentation/current/manual/quickstart/host
查看hostid
http://z.cn/hosts.php?form=update&hostid=10084 一种简单的zabbix客户端 主机hostid查看方法
添加用户 和用户组
添加用户前 要添加用户组 然后在里面指定用户是哪个组 看到哪些项目
Zabbix配置Telegram告警
https://www.zabbix.com/cn/integrations/telegram#tab:official1
故障及回顾
问题1. zabbix server 没有打开 10051端口 前端图形没显示 版本zabbix 2.2 没有看到 10051 是因为 DBPassword=‘123’ 改为 DBPassword=123 日志查看 tail /tmp/zabbix_server.log 14659:20170525:171042.257 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES) 正确如下 [root@ zabbix]# netstat -nlpt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:10051
经常报Zabbix agent on Zabbix server is unreachable for 5 minutes
我上次的处理是 重启 zbx server 就好了
zabbix-compilation-dependencies
解决Zabbix使用一段时间后总报Zabbix Agent不可到达的问题
防火墙导致 zabbix监控大批量报警zabbix agent on **** unreachable for 5 minute
zabbix server is running | No.解决方法
zabbix 5 根据日志报错排查 cat /var/log/zabbix/zabbix_server.log zabbix进程查看 ps aux |grep zabbix 查看监听zabbix server---------zabbix agent 10050---10051端口 netstat -nplut |grep zabbix 登陆报错解决 zabbix server is running | No. 解决方法1 setsebool -P httpd_can_network_connect on selinux 允许它通过httpd服务 关闭selinux 永久关闭vi /etc/selinux/config #SELINUX=disabled #SELINUXTYPE=targeted 临时关闭 setenforce 0 关闭防火墙 永久关闭 chkconfig iptables off 临时生效 iptables -F 解决方法2 cd /etc/zabbix/web/ 修改配置文件 vi zabbix.conf.php 修改lochlhost为 自己服务器的IP地址 修改$DB['SERVER'] = '192.168.30.6'; 修改$ZBX_SERVER = '192.168.30.6'; 重启服务 service httpd restart service zabbix-agent restart service zabbix-server restart
参考
使用Docker Compose启动Zabbix 5.0的步骤
Install Zabbix Monitoring Server and Agent on Debian
Zabbix监控系统 (3) 之 添加自定义监控项目、配置邮件告警、测试告警
http://blog.linuxchina.net/?p=1711