Site updated: 2022-10-18 10:31:32

This commit is contained in:
qinglong
2022-10-18 10:31:33 +08:00
parent c67e4f8532
commit ed571e359c
66 changed files with 817 additions and 70 deletions

257
atom.xml
View File

@ -8,7 +8,7 @@
<author>
<name>Hito li</name>
</author>
<updated>2022-10-17T06:07:00.000Z</updated>
<updated>2022-10-18T01:39:00.000Z</updated>
<category term="hito" />
<category term="無言" />
<category term="博客" />
@ -16,6 +16,261 @@
<category term="笔记" />
<category term="心得体会" />
<category term="踩坑" />
<entry>
<id>https://blog.jingxiyuan.cn/2022/10/18/nagios%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/</id>
<title>搭建nagios监控</title>
<link rel="alternate" href="https://blog.jingxiyuan.cn/2022/10/18/nagios%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE/"/>
<content type="html">&lt;h4 id=&#34;监控端服务安装与配置&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#监控端服务安装与配置&#34;&gt;#&lt;/a&gt; 监控端服务安装与配置&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;nagios 需要安装主程序和 nrpenagios 和各被监控主机都必须安装)。如需使用自研前端可通过安装 ndoutils (用于把 nagios 监控信息写入数据库) 和 mysql 实现。具体安装见&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly9zdXBwb3J0Lm5hZ2lvcy5jb20va2Iv&#34;&gt;官网&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;nagios 默认监控命令脚本放置在 libexec 中,自定义脚本后也放到此处&lt;/li&gt;
&lt;li&gt;etc/objects/commands.cfg 用于保存 nagios 默认监控命令&lt;/li&gt;
&lt;li&gt;etc/nrpe.cfg 文件中需要添加用于被监控执行命令项(各被监控主机中都需要添加)&lt;br /&gt;
&lt;img data-src=&#34;https://file.jingxiyuan.cn/images/2022/10/18/image.png&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;li&gt;etc/objects/hosts 目录下配置需要被监控的主机信息&lt;br /&gt;
&lt;img data-src=&#34;https://file.jingxiyuan.cn/images/2022/10/18/image2.png&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;li&gt;etc/objects/servers 目录下配置需要在被监控主机上执行的监控命令(第 4 项中的命令)&lt;br /&gt;
&lt;img data-src=&#34;https://file.jingxiyuan.cn/images/2022/10/18/image3.png&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;被监控端服务安装与配置&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#被监控端服务安装与配置&#34;&gt;#&lt;/a&gt; 被监控端服务安装与配置&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;被监控端需要安装 nrpe&lt;/li&gt;
&lt;li&gt;被监控端需要把监控端的命令写入到 nrpe 的配置文件中&lt;/li&gt;
&lt;li&gt;被监控端需要把命令执行脚本放入 libexec 目录中&lt;/li&gt;
&lt;li&gt;被监控端自动安装脚本(可借鉴)&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;1、请先修改脚本中的服务端IP。
2、如被监控端不支持let计算命令请执行sudo dpkg-reconfigure dash命令弹出选择窗口后选择no。
3、需要在脚本同目录下创建CentOS、Ubuntu、sh和conf目录目录下分别放置nrpe的tar安装包、监控脚本和nrpe配置文件。
#!/bin/bash
#服务端ip
SERVER_IP=10.10.10.121
#安装目录
INSTALL_HOME=`pwd`
#安装ubuntu版本
INSTALL_UBUNTU()
&amp;#123;
sudo apt-get update
sudo apt-get install -y autoconf automake gcc libc6 libmcrypt-dev make libssl-dev wget openssl
cd /tmp
#wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-4.0.3.tar.gz
cp $INSTALL_HOME/Ubuntu/nrpe.tar.gz ./
tar xzf nrpe.tar.gz
cd /tmp/nrpe-nrpe-4.0.3/
sudo ./configure --enable-command-args --with-ssl-lib=/usr/lib/x86_64-linux-gnu/
sudo make all
sudo make install-groups-users
sudo make install
sudo make install-config
sudo sh -c &amp;quot;echo &amp;gt;&amp;gt; /etc/services&amp;quot;
sudo sh -c &amp;quot;sudo echo &#39;# Nagios services&#39; &amp;gt;&amp;gt; /etc/services&amp;quot;
sudo sh -c &amp;quot;sudo echo &#39;nrpe 5666/tcp&#39; &amp;gt;&amp;gt; /etc/services&amp;quot;
#判断系统是高版本还是低版本
VERSION=`lsb_release -r --short`
IS_LOW_VERSION=`echo &amp;quot;$VERSION &amp;lt; 15&amp;quot; | bc`
if [ $IS_LOW_VERSION = 1 ]; then
#低版本
sudo make install-init
else
#高版本
sudo make install-init
sudo systemctl enable nrpe.service
fi
sudo mkdir -p /etc/ufw/applications.d
sudo sh -c &amp;quot;echo &#39;[NRPE]&#39; &amp;gt; /etc/ufw/applications.d/nagios&amp;quot;
sudo sh -c &amp;quot;echo &#39;title=Nagios Remote Plugin Executor&#39; &amp;gt;&amp;gt; /etc/ufw/applications.d/nagios&amp;quot;
sudo sh -c &amp;quot;echo &#39;description=Allows remote execution of Nagios plugins&#39; &amp;gt;&amp;gt; /etc/ufw/applications.d/nagios&amp;quot;
sudo sh -c &amp;quot;echo &#39;ports=5666/tcp&#39; &amp;gt;&amp;gt; /etc/ufw/applications.d/nagios&amp;quot;
sudo ufw allow NRPE
sudo ufw reload
sudo sh -c &amp;quot;sed -i &#39;/^allowed_hosts=/s/$/,$SERVER_IP/&#39; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;sed -i &#39;s/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g&#39; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
cd $INSTALL_HOME
sudo cp ./sh/* /usr/local/nagios/libexec/
sudo chmod +xr /usr/local/nagios/libexec/*
sudo sh -c &amp;quot;echo &#39;command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_mem]=/usr/local/nagios/libexec/check_mem.sh&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_disk]=/usr/local/nagios/libexec/check_disk.sh&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \$ARG1\$&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
NETWORK_INDEX=1
for NETWORK_NAME in `cat /proc/net/dev | awk &#39;&amp;#123;i++; if(i&amp;gt;2)&amp;#123;print $1&amp;#125;&amp;#125;&#39; | sed &#39;s/^[\t]*//g&#39; | sed &#39;s/[:]*$//g&#39;`;do
if [ $NETWORK_NAME != &#39;lo&#39; ]; then
sudo sh -c &amp;quot;echo &#39;command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
NETWORK_INDEX=`expr $NETWORK_INDEX + 1 `
fi
done
if [ $IS_LOW_VERSION = 1 ]; then
#低版本
sudo start nrpe
else
#高版本
sudo systemctl start nrpe.service
fi
&amp;#125;
#安装centos版本
INSTALL_CENTOS()
&amp;#123;
yum install -y gcc glibc glibc-common openssl openssl-devel perl wget
cd /tmp
#wget --no-check-certificate -O nrpe.tar.gz https://github.com/NagiosEnterprises/nrpe/archive/nrpe-4.0.3.tar.gz
cp $INSTALL_HOME/CentOS/nrpe.tar.gz ./
tar xzf nrpe.tar.gz
cd /tmp/nrpe-nrpe-4.0.3/
./configure --enable-command-args
make all
make install-groups-users
make install
make install-config
echo &amp;gt;&amp;gt; /etc/services
echo &#39;# Nagios services&#39; &amp;gt;&amp;gt; /etc/services
echo &#39;nrpe 5666/tcp&#39; &amp;gt;&amp;gt; /etc/services
#判断系统是高版本还是低版本
VERSION=`rpm -q centos-release|cut -d- -f3`
#安装bc命令
yum -y install bc
IS_LOW_VERSION=`echo &amp;quot;$VERSION &amp;lt; 7&amp;quot; | bc`
if [ $IS_LOW_VERSION = 1 ]; then
#低版本
make install-init
iptables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
service iptables save
ip6tables -I INPUT -p tcp --destination-port 5666 -j ACCEPT
service ip6tables save
else
#高版本
make install-init
systemctl enable nrpe.service
firewall-cmd --zone=public --add-port=5666/tcp
firewall-cmd --zone=public --add-port=5666/tcp --permanent
fi
sudo sh -c &amp;quot;sed -i &#39;/^allowed_hosts=/s/$/,$SERVER_IP/&#39; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;sed -i &#39;s/^dont_blame_nrpe=.*/dont_blame_nrpe=1/g&#39; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
cd $INSTALL_HOME
sudo cp ./sh/* /usr/local/nagios/libexec/
sudo chmod +xr /usr/local/nagios/libexec/*
sudo sh -c &amp;quot;echo &#39;command[check_ping]=/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0,80% -c 5000.0,100% -p 5&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_mem]=/usr/local/nagios/libexec/check_mem.sh&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_disk]=/usr/local/nagios/libexec/check_disk.sh&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_my_service]=/usr/local/nagios/libexec/check_my_service.sh \$ARG1\$&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
sudo sh -c &amp;quot;echo &#39;command[check_system_info]=/usr/local/nagios/libexec/check_system_info.sh&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
NETWORK_INDEX=1
for NETWORK_NAME in `cat /proc/net/dev | awk &#39;&amp;#123;i++; if(i&amp;gt;2)&amp;#123;print $1&amp;#125;&amp;#125;&#39; | sed &#39;s/^[\t]*//g&#39; | sed &#39;s/[:]*$//g&#39;`;do
if [ $NETWORK_NAME != &#39;lo&#39; ]; then
sudo sh -c &amp;quot;echo &#39;command[check_network$NETWORK_INDEX]=/usr/local/nagios/libexec/check_network.sh $NETWORK_NAME&#39; &amp;gt;&amp;gt; /usr/local/nagios/etc/nrpe.cfg&amp;quot;
NETWORK_INDEX=`expr $NETWORK_INDEX + 1 `
fi
done
if [ $IS_LOW_VERSION = 1 ]; then
#低版本
if [ $(echo &amp;quot;$VERSION &amp;lt; 6&amp;quot; | bc) -eq 1 ]; then
service nrpe start
else
start nrpe
fi
else
#高版本
systemctl start nrpe.service
fi
&amp;#125;
#安装其它版本
INSTALL_OTHER()
&amp;#123;
echo &amp;quot;Not supported at the moment.&amp;quot;
&amp;#125;
#根据不同系统安装不同版本
INSTALL()
&amp;#123;
if grep -Eqii &amp;quot;CentOS&amp;quot; /etc/issue || grep -Eq &amp;quot;CentOS&amp;quot; /etc/*-release; then
DISTRO=&#39;CentOS&#39;
PM=&#39;yum&#39;
INSTALL_CENTOS
elif grep -Eqi &amp;quot;Red Hat Enterprise Linux Server&amp;quot; /etc/issue || grep -Eq &amp;quot;Red Hat Enterprise Linux Server&amp;quot; /etc/*-release; then
DISTRO=&#39;RHEL&#39;
PM=&#39;yum&#39;
INSTALL_OTHER
elif grep -Eqi &amp;quot;Aliyun&amp;quot; /etc/issue || grep -Eq &amp;quot;Aliyun&amp;quot; /etc/*-release; then
DISTRO=&#39;Aliyun&#39;
PM=&#39;yum&#39;
INSTALL_OTHER
elif grep -Eqi &amp;quot;Fedora&amp;quot; /etc/issue || grep -Eq &amp;quot;Fedora&amp;quot; /etc/*-release; then
DISTRO=&#39;Fedora&#39;
PM=&#39;yum&#39;
INSTALL_OTHER
elif grep -Eqi &amp;quot;Debian&amp;quot; /etc/issue || grep -Eq &amp;quot;Debian&amp;quot; /etc/*-release; then
DISTRO=&#39;Debian&#39;
PM=&#39;apt&#39;
INSTALL_OTHER
elif grep -Eqi &amp;quot;Ubuntu&amp;quot; /etc/issue || grep -Eq &amp;quot;Ubuntu&amp;quot; /etc/*-release; then
DISTRO=&#39;Ubuntu&#39;
PM=&#39;apt&#39;
INSTALL_UBUNTU
elif grep -Eqi &amp;quot;Raspbian&amp;quot; /etc/issue || grep -Eq &amp;quot;Raspbian&amp;quot; /etc/*-release; then
DISTRO=&#39;Raspbian&#39;
PM=&#39;apt&#39;
INSTALL_OTHER
else
echo &amp;quot;unknow linux.&amp;quot;
exit 1
fi
echo $DISTRO
&amp;#125;
INSTALL
exit 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;常见问题&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#常见问题&#34;&gt;#&lt;/a&gt; 常见问题&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;监控日志未写入 mysql可能是 ndoutils 服务不正常导致)。采用以下脚本命令解决&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;#!/bin/bash
sudo rm -f /usr/local/nagios/var/ndo2db.pid
sudo rm -f /usr/local/nagios/var/ndo.sock
sudo systemctl restart ndo2db.service
sudo systemctl status ndo2db.service
&lt;/code&gt;&lt;/pre&gt;
</content>
<category term="技术分享" scheme="https://blog.jingxiyuan.cn/categories/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/" />
<category term="经验分享" scheme="https://blog.jingxiyuan.cn/categories/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/" />
<category term="心得体会" scheme="https://blog.jingxiyuan.cn/categories/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/%E5%BF%83%E5%BE%97%E4%BD%93%E4%BC%9A/" />
<category term="nagios" scheme="https://blog.jingxiyuan.cn/tags/nagios/" />
<category term="服务监控" scheme="https://blog.jingxiyuan.cn/tags/%E6%9C%8D%E5%8A%A1%E7%9B%91%E6%8E%A7/" />
<updated>2022-10-18T01:39:00.000Z</updated>
</entry>
<entry>
<id>https://blog.jingxiyuan.cn/2022/10/17/redis%E4%B8%BB%E4%BB%8E%E5%9F%BA%E7%A1%80%E9%85%8D%E7%BD%AE%E8%AE%B0%E5%BD%95/</id>
<title>redis主从基础配置</title>