
قسمت چهارم از سری آموزش های کانفیگ سیستم مانیتورینگ توسط Prometheus را شروع میکنیم.
در این بخش قصد داریم تا Alertmanager را کانفیگ کنیم، تا هر زمانی که مقدار دیتایی که در حال مانیتور کردن آن هستیم از حد مشخصی فاصله گرفت به سرعت با خبر شویم.
چون قابلیت شخصی سازی بسیار زیادی دارد و تقریبا میتوان گفت کنترل همه چیز در دستان شماست!
میتوانید تنظیم کنید برایتان ایمیل ارسال شود یا از طریق تلگرام، Slack و ... شما را مطلع سازد، همچنین قابلیت ارسال Alert از طریق وب هوک به دیگر سیستمها را نیز دارا میباشد.
برای یادگیری بهتر این آموزش لازم است تا قسمتهای قبلی آن را دیده باشید:
برای شروع باید فایل docker-compose.yml را ویرایش کنیم و کانتینر مربوط به Alertmanager را اضافه کنیم:
alertmanager:
image: quay.io/prometheus/alertmanager:latest
volumes:
- ./alertmanager_volume/alertmanager.yml:/etc/prometheus/alertmanager.yml
- ./alertmanager_volume/data:/data
command:
- '--config.file=/etc/prometheus/alertmanager.yml'
- '--storage.path=/data'
ports:
- 9093:9093
سپس یک دایرکتوری به نام alertmanager_volume ایجاد کرده و فایل alertmanager.yml را داخل آن ایجاد میکنیم، محتویات این فایل به صورت زیر است:
global: # The smarthost and SMTP sender used for mail notifications. smtp_smarthost: 'smtp.google.com:587' smtp_from: '[email protected]' smtp_auth_username: '[email protected]' smtp_auth_password: 'your-password' route: group_by: ['alertname', 'cluster', 'service'] group_wait: 30s group_interval: 5m repeat_interval: 3h receiver: 'support-team-email' receivers: - name: 'support-team-email' email_configs: - to: '[email protected]' send_resolved: true
حال باید فایل prometheus.yml را که در قسمت اول ساختیم ویرایش نماییم و تنظیمات زیر را به آن اضافه نماییم:alerting:
alertmanagers: - static_configs: - targets: - alertmanager:9093 rule_files: - "prometheus.rules.yml"
حال در کنار فایل prometheus.yml یک فایل جدید ایجاد میکنیم و نام آن را prometheus.rules.yml میگذاریم و محتویات آن نیز به صورت زیر مینویسیم:
groups: - name: nginx1 rules: - alert: Active Connection expr: nginx_server_connections{instance="xxx.xxx.xxx.xxx:port", status="active"} > 1000 for: 5m labels: severity: 2 annotations: summary: "Value: {{ $value }}, Limit: 100" description: "This is a decscription."
برای توضیح کد بالا میتوان گفت اگر کانکشن های active سرور مشخص شده برای ۵ دقیقه بیشتر از ۱۰۰۰ عدد بود برای ما alert ارسال شود.
به همین صورت میتوانید برای مقادیر مورد نظر خود rule نوشته و از alertmanager استفاده نمایید.
قسمت چهارم از سری آموزش کانفیگ سیستم مانیتورینگ به پایان رسید.