zoukankan      html  css  js  c++  java
  • centos7编译安装Zabbix-4.2.4及设置邮件告警教程(超详细每步都有截图)

    Zabbix-4.2.4安装及配置

    此安装基于centos7LNMP环境下,如未安装LNMP还可参考本人其他随笔

    第一步:上传下载

    1、前往https://www.zabbix.com/download_sources下载4.2.4

     

    2、下载完成后上传至服务器

    yum -y install lrzsz

    rz

    选择压缩包,点击确定

    3、解压:

    tar zxvf zabbix-4.2.4.tar.gz -C /root/

    4、进入、创建用户、用户组

    cd zabbix-4.2.4/

    groupadd zabbix

    useradd -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

    第二步:数据库创建zabbix库

    1、进入数据库:

    mysql -uroot -p

    use mysql;

    2、创建数据库:

    create database zabbix character set utf8 collate utf8_bin;

    3、创建用户:

    create user zabbix@localhost identified by 'zabbix1';

    4、导入数据:

    source /root/zabbix-4.2.4/database/mysql/schema.sql

    source /root/zabbix-4.2.4/database/mysql/images.sql

    source /root/zabbix-4.2.4/database/mysql/data.sql

    5、授权用户:

    grant all privileges on zabbix.* to zabbix@localhost;

    6、刷新权限:

    flush privileges;

    7、查看是否创建成功:

    show databases;

     

    8、quit  退出

    第三步:开始安装

    1、检查环境:

    ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-libcurl --with-libxml2

    报错1:找不到libevent

     

    安装libevent libevent-devel

    yum -y install libevent libevent-devel

    安装完毕后重新检查环境,检查完毕!

     

    2、编译安装:

    make && make install

    第三步:zabbix_service配置

    1、将zabbix服务放至nginx下的html目录下,并更名为zabbix

    cp -R /root/zabbix-4.2.4/frontends/php /usr/local/nginx/html/zabbix

    2、复制启动脚本

    cd /root/zabbix-4.2.4/misc/init.d/fedora/core

    cp -a zabbix_server /etc/init.d/

    cp -a zabbix_agent /etc/init.d/

    3、修改zabbix_server启动脚本

    vim /etc/init.d/zabbix_server         修改路径为如图所示

     

    vim /etc/init.d/zabbix_agent  

    做与zabbix_server相同的修改

    4、对zabbix_server.conf与zabbix_agent.conf做修改

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

     

    将数据库的主机地址、用户名、密码等填写正确

     

    DBSocket可以注释掉不管,如启服务时报sock的错,可进行修改为在即mysql的sock文件所在路径,之后wq保存退出。

    再来编辑zabbix_agent.conf

    vim /usr/local/zabbix/etc/zabbix_agentd.conf

    修改server、ServerActive和hostname

     

    其中hostname要与本机主机名相同,主机名查看方法:shell中输入hostname

     

    5、启动服务

    service zabbix_server start

    启动服务报错:没有找到这个libmysqlclient.so.21这个函数库

     

    查找一下这个库在哪里:

    locate libmysqlclient.so.21

     

    将这个路径添加到 /etc/ld.so.conf文件中:

    echo "/usr/local/mysql/lib" >> /etc/ld.so.conf

    更新函数库:

    ldconfig

    6、重新进行启动服务

    service zabbix_server start

    service zabbix_agent start

    netstat -tunlp (查看是否启动成功)

     

    添加开机自启

    chkconfig --add zabbix_server

    chkconfig --add zabbix_agentd

    chkconfig --level 2345 zabbix_server on

    chkconfig --level 2345 zabbix_agentd on

    chkconfig --list

     

    ok,设置完毕后,打开浏览器,进入zabbix的安装界面

    浏览器输入:

    [本机ip]/zabbix             然后回车

    进入后进行web页安装:

    第一步:Next

     

    第二步:

     

    配置错误的参数:

    根据它的提示修改便可,后边也给出了推荐值,将配置文件中的选项改成其推荐值即可

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

    1、

     

    2、

     

    3、

     

    修改后发现还是不起作用,以为自己改错了,反复核对没有问题,终于找到了答案。。

    执行php -i | grep 'php.ini'

     

    查看你所执行的php.ini文件是哪个路径下的php.ini

    发现果然修改错了,将php.ini文件移动到/usr.local.php/lib/下:

    cd /usr/local/php/etc/

    mv php.ini ../lib/

    重启nginx和php:

    service php-fpm restart

    service nginx restart

     

    重新打开网页,全部成绿色,开始Next

     

    第三步:输入之前创建的mysql账号密码,Next,发现报错(一共报错两个,第二个未截图)

    第一个:Error connecting to database: No nush file or directory

    第二个:The server requested authentication method unknown to the client

     

    第三步的这个报错困扰了我一天,百度一天都没有结果,在我都快要放弃重新安装的时候,希望的曙光来临了!

    终于查到了一个资料,原来,是由于新版本mysql账号密码解锁的机制不一致导致的,新版本中mysql解锁机制为caching_sha2_password,而旧版本中是mysql_native_password影响了服务器与和客户端的兼容性问题,所以我们先将验证方式更改为以前的mysql_native_password即可。

    解决方法:

    1、删除之前创建的用户:

    delete from user where user='zabbix' and host='localhost';

    2、进入mysql的配置文件

    vim /etc/my.cnf,加入下行:

    default_authentication_plugin=mysql_native_password

     

    3、重启mysql服务,再重新进入mysql创建zabbix用户

    mysql -uroot -p   输入密码

    mysql中操作:

    use mysql;

    create user zabbix@localhost identified by 'zabbix1';  创建用户

    grant all privileges on zabbix.* to zabbix@localhost;  授权

    4、设置zabbix用户和root用户可以远程连接

    update user set host='%' where user='root';

    update user set host='%' where user='zabbix';

    flush privileges;  刷新权限

    select host, user, authentication_string, plugin from user;  查看是否设置成功

     

    这样就代表成功了,执行quit   退出

    5、mysql重新创建完之后还要注意修改一下zabbix_server.conf

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

     

    将这几个选项相对的填写正确,其中DBSocket的路径需要修改以下填写自己的,其实DBSocket并无大碍,前几个都设置好后,如果能够正常Next,就不用设置DBSocket。

    再将默认路径下的zabbix中conf目录及以下的文件权限设定为777

    chmod -R 777 conf

     

    6、最后再重启以下mysql和php-fpm。

    再重新进入web页测试,将此步骤中中的database host更改为127.0.0.1

    点击Next step,ok成功

    第四步:额。。忘记截图了,不过不重要,只是将自己的服务名字写上去就好,我填的zabbix_server

    第五步:完成安装

     

    点击Finish

    默认账户Admin

    密码:zabbix    进行登录

     

    第六步:进行汉化

    1、进入html/zabbix/include/locales.inc.php文件中,后边为ture就为支持

     

    2、点击右上角小人,选择中文,点击Update。完后汉化

     

    3、更改后,如果发现有的地方是乱码,或者是没更改过来,可进行以下操作:

    随便选择一个自己喜欢的字体

     

    vim /usr/local/nginx/html/zabbix/includedefines.inc.php

    查看此保存字体的目录在哪

    然后在windows下选择一个自己喜欢的字体传到此目录下

    将文件的ZBX_GRAPH_FONT_NAME更改为你上传的字体名字,保存,重启zabbix即可

     

    第七步:添加监控项、邮件告警等

     

    1、添加主机

     

     

     

     

    2、配置邮件告警,这里以VSFTP服务为例

    yum install -y vsftpd vim /etc/vsftpd/vsftpd.conf listen=YES         # 修改该条 listen_ipv6=YES    # 删除该条 systemctl start vsftpd

    编写邮件告警脚本:

    vim /usr/local/zabbix/share/zabbix/alertscripts/sendmail.py

     

    将以下内容复制:(我用的qq邮箱,如用其他邮箱做发件人,请根据注释修改)

    #!/usr/bin/env python

    # _*_ coding:utf-8 _*_

    import smtplib

    from email.mime.text import MIMEText

    import sys

    # configure your own parameters here

    #下面邮件地址的smtp地址 mail_host = 'smtp.163.com'

    #用来发邮件的邮箱,在发件人抬头显示(不然你的邮件会被当成是垃圾邮件)

    mail_user = '****@qq.com'

    # 客户端授权码

    mail_auth = '******'

    # 发送方显示的名称

    send_name = mail_user

    # 接收方显示的名称

    recv_name = mail_user

    def excute(to, title, content):

      msg = MIMEText(content, 'plain', 'utf-8')

      msg['From'] = send_name    msg['To'] = recv_name

      msg['Subject'] = title    server = smtplib.SMTP(mail_host, 25)

      server.login(mail_user,mail_auth)

      server.sendmail(mail_user,to,msg.as_string())

      server.quit()

    if __name__ == '__main__':

      excute(sys.argv[1], sys.argv[2], sys.argv[3])

      #                  $1           $2           $3

    然后赋予执行权限chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.py

    3、创建报警媒介及动作

     

     

    添加完成:

     

    选择

     

     

     

     

     

     

     

     

     

    然后点击添加按钮,其他两个模块也修改为与以上相同的

     

     

    添加完成

     

    4、将vsftp服务停掉,测试是否可以收到邮件了

     

    此项说明邮件已送达,下一步打开邮箱看一下

     

    ok,收到邮件,nice,再恢复服务看能不能收到邮件

     

    也收到了   ok!

     

     如有转载请标明出处 谢谢

  • 相关阅读:
    安装Django、Nginx和uWSGI
    创建Orcale数据库链接访问外部数据库
    ER图,以及转化成关系模式
    eclipse中的Java项目导出成为一个可以直接双击运行的jar文件
    电脑添加新的字体
    JDBC 的编程步骤
    转转基础服务性能压测实战
    公司起诉CTO拖延研发进度,索赔90万
    详解MQ消息队列及四大主流MQ的优缺点
    晒一波程序员的杯子,逼格超级高
  • 原文地址:https://www.cnblogs.com/v-fan/p/11701372.html
Copyright © 2011-2022 走看看